Posez votre question Signaler

Macro VBA word [Résolu]

manu7762323 11Messages postés 25 juin 2007Date d'inscription - Dernière réponse le 30 jan 2008 à 21:38
Bonjour,
Je suis débutant en macro word.
On m'a demandé, à partir d'un document word avec beaucoup de texte et d'images, de développer une macro permettant de sauvegarder toutes les images du document dans un dossier et de les zipper, puis de remplacer dans le texte chaque image par un code du type %ATTACH%/image00x.jpg avec x le n° des images du document dans l'ordre.
Explication : il s'agit de migrer des documents word sur un TWiki. Pour cela, il faut uploader les images en zip sur le wiki. Elles seront nommés par exemple image001.jpg, image002.jpg, image003.jp, etc... et dans le document, le code wiki pour afficher ces images dans l'ordre sera %ATTACH%/image001.jpg, puis %ATTACH%/image002.jpg, etc...
J'espère avoir été assez clair.
Merci d'avance pour votre aide.
Lire la suite 

Macro VBA word »

3 réponses
Réponse
+0
moins plus
c'est un projet assez ambitieux. je vais donc pas te fournir un programme. seulement autant : les images se trouvent dans word dans un objet InlineShape.

ajoutes qq images dans un doc word avant éxécution

Sub GetImages()

Dim SH As InlineShape

MsgBox ActiveDocument.InlineShapes.Count

For Each SH In ActiveDocument.InlineShapes
MsgBox SH.Type
Next

End Sub
Ajouter un commentaire
Réponse
+0
moins plus
Ok merci...

Donc la si je comprends bien, ce code permet de trouver les images dans le document. J'ai écris un petit quelque chose pour remplacer les images trouvées par du texte mais je pense que je m'y prend très mal vu que je n'y connais rien...

Sub GetImagesAndReplaceWithText()

Dim SH As InlineShape

MsgBox ActiveDocument.InlineShapes.Count

For Each SH In ActiveDocument.InlineShapes
MsgBox SH.Type

With Selection.Find
.ActiveDocument.InlineShapes
.Replacement.Text = "TEST de remplacement"
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

Next

End Sub


Quelqu'un pourrait m'aiguiller ?merci d'avance !
Ajouter un commentaire
Réponse
+0
moins plus
Sub GetImagesAndReplaceWithText()

Dim SH As InlineShape

MsgBox ActiveDocument.InlineShapes.Count

For Each SH In ActiveDocument.InlineShapes
'MsgBox SH.Type pas besoin, c'était juste pour faire qq chose dans la boucle

With Selection.Find ' tu n'as pas fait Select, donc rien n'est sélectionné
.ActiveDocument.InlineShapes ' superflu car tu vas déjà chercher toutes les images
.Replacement.Text = "TEST de remplacement"
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

Next

End Sub
Ajouter un commentaire
Ce document intitulé « macro VBA word » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook