Le but : Insérer les images dont les adresses se trouvent dans une base de données Excel.
Dans EXCEL :
Les adresses des images doivent être introduites en tant que liens vers les fichiers image,
Les séparateurs de noms de répertoires doivent comporter deux "\\" et enfin, les adresses doivent être encadrées de guillemets. Ce qui donne dans la cellule :Dans WORD"c:\\Mes images\\cocorico.jpg"
1 - Afficher les codes de champs
Barre d'outils "Outils" -> Options -> Affichage -> Valider "Code de champs"
Pour se faciliter la tâche, on peut créer une macro et lui affecter des touches de fonction -> Personnaliser -> Commandes -> Macro -> Sélectionner la macro -> Bouton "Clavier"
La macro :2 - Insertion du champ "image" -> Insertion -> Champ -> IncludePicture (inclureImage)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub CodeChampVisiblePasVisible() if ActiveWindow.View.ShowFieldCodes then ActiveWindow.View.ShowFieldCodes = False else ActiveWindow.View.ShowFieldCodes = True Endif End Sub
Donne { INCLUDEPICTURE \* MERGEFORMAT }
3 - Insertion du champ de fusion
Se placer après le premier espace suivant { INCLUDEPICTURE (normalement suivi de trois espaces...)
Puis -> Barre d'outils "Publipostage" -> Icône "Insérer les champs de fusion" -> sélectionner le champ "Image" de la base de données. Le champ de fusion est inséré dans le précédent, c'est à dire dans le champ Image.
Donne {.INCLUDEPICTURE.{.MERGEFIELD."Champ Image".}..\*.MERGEFORMAT.}
où les points figurent les espaces et "Champ Image" le nom de champ.
4 - Dévalider l'affichage des codes de champs
Le message "Erreur°! Nom du fichier non spécifié." s'affiche.
Normal -> la fusion n'est pas encore réalisée.
5 - Lancer la fusion
6 - Mise à jour des champs
Dans la "lettre type" issue de la fusion, sélectionner tout le Texte (Ctrl + A) et frapper la touche F9. Les champs se mettent à jour, les images apparaissent !
Ou par macro
Pour la solution par macro, voir le post suivant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub FusionEtMiseAjour() With ActiveDocument.MailMerge .Destination = wdSendToNewDocument .SuppressBlankLines = True With .DataSource .FirstRecord = wdDefaultFirstRecord .LastRecord = wdDefaultLastRecord End With .Execute Pause:=False End With DoEvents Selection.WholeStory 'sélectionne tout le texte de la lettre type Selection.Fields.Update 'Met les champs à jour (affiche les images) End sub
Partager