Word VBA (Insérer un image )

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

José Alain

XLDnaute Nouveau
Bonjour à tous,
J'ai un tableau (formulaire) qui sera remplis automatiquement par publipostage(Excel- Word)
Je veux que quand le valeur qui se trouve la cellule ou se trouve le code "1_ABK_050_1" change, il récupère l'image dans mon dossier local qui a le même nom que ce code et l'afficher après dans la ligne 3 du tableau.

Merci bien,
 

Pièces jointes

Solution
Je pense qu'il vous faut créer une boucle une fois vos documents édités pour intégrer vos photos.
En partant directement de votre fichier Excel et en générant pour chaque item un fichier Doc depuis un modèle .dotm, vous pourriez utiliser directement ce code.
Bonjour,

Sauf de générer vos documents Word directement depuis Excel, pas certain que vous puissiez lancer une macro pendant le publipostage.

Sinon, si vous générez vos fichiers depuis Excel, essayez ceci :
VB:
Option Explicit

Sub LancerInsererLimage()

    InsererLimage ActiveDocument.Path & "\", ActiveDocument
    
End Sub

Sub InsererLimage(ByVal CheminImage As String, ByVal WdDoc As Document)


    With WdDoc
         CheminImage = .Path & "\"
         With .Tables(1)
              With .Cell(2, 2).Range
                   CheminImage = CheminImage & Mid(.Text, 1, Len(.Text) - 2) & ".JPG" ' Extension à adapter
              End With
              If VerifierLeChemin(CheminImage) Then
                 With .Cell(3, 1).Range  ' S'arranger pour que la cellule contienne 1 ligne par défaut
                      If .InlineShapes.Count > 0 Then .InlineShapes(1).Delete
                      .InlineShapes.AddPicture FileName:=CheminImage, LinkToFile:=False, SaveWithDocument:=True
                      With .InlineShapes(1)
                           .LockAspectRatio = msoTrue
                           .Height = 200 ' A adapter
                      End With
                      .ParagraphFormat.Alignment = wdAlignParagraphCenter
                 End With
              Else
                  MsgBox "Aucune image trouvée !", vbCritical
              End If
        End With
    End With
    
End Sub

Function VerifierLeChemin(ByVal Chemin2 As String) As Boolean

Dim Fso As Object
    
    VerifierLeChemin = False
    Set Fso = CreateObject("Scripting.FileSystemObject")
    VerifierLeChemin = Fso.FileExists(Chemin2)
    Set Fso = Nothing

End Function
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
182
Retour