Difficulté avec l'actualisation d'un publipostage

Fermé
CamCam56 Messages postés 1 Date d'inscription jeudi 18 juin 2020 Statut Membre Dernière intervention 18 juin 2020 - 18 juin 2020 à 12:25
m@rina Messages postés 20011 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 16 avril 2024 - 18 juin 2020 à 16:52
Bonjour,

Je vous explique ma difficulté : j'ai une base Excel d'environ 500 produits, et je veux créer, à l'aide d'un publipostage, des fiches produit.

Sur mon modèle, on retrouve donc différentes informations relatives au produit, et également une image du produit, importée grâce au publipostage.

J'ai créé, grâce aux explications d'une internaute, une macro pour que mon publipostage génère autant de fichiers qu'il y a de produits, en PDF.

Le soucis, est que mon image n'apparaît pas. Pour qu'elle apparaisse, il faut que j'actualise mon Word (Ctrl A, puis F9).

Voici ma macro :

'Publipostage > Word, enregistrement individuel en PDF

Sub TestPublipostPdf()
' Déclaration des variables
Dim iR As Integer
Dim i As Integer
Dim oDoc As Document
Dim DocName As String
Dim oDS As MailMergeDataSource

' Affectation des objets
Set oDoc = ActiveDocument
Set oDS = oDoc.MailMerge.DataSource

iR = oDoc.MailMerge.DataSource.RecordCount
Debug.Print iR
For i = 1 To iR
With oDoc.MailMerge
'Définition du premier et dernier enregistrement
.DataSource.FirstRecord = i
.DataSource.LastRecord = i
' Envoi des données dans un nouveau document
.Destination = wdSendToNewDocument
' Exécution du publipostage
.Execute
' Actualisation de l'enregistrement pour la sauvegarde
.DataSource.ActiveRecord = i

'Utilisation de deux champs pour obtenir le nom du document ; remplacer le chiffre de la colonne
'si c'est pour un envoi sur outlook avec la macro en individuel ou par le n° de col qui servira de nom ) votre pdf
DocName = .DataSource.DataFields(2).Value
'Si vous souhaitez utiliser deux champs pour nommer votre document retirez la quote devant la ligne qui suit et remplacer le n° de colonne
'DocName = DocName & "-" & .DataSource.DataFields(3).Value
Debug.Print DocName; i
End With
' Chemin de Sauvegarde du document publiposté ; modifier le chemin avec les guillemets sans oublier de mettre un \ à la fin
With ActiveDocument
'N'oubliez pas de rajouter un \ après le nom de votre dossier et avant la fermeture des guillemets
.SaveAs "U:\02. FICHES PRODUIT\" & DocName & ".pdf", wdExportFormatPDF
.Close False

End With
Next i
End Sub

Quelqu'un a-t-il une astuce ?

Merci d'avance,

Camille

Configuration: Windows / Chrome 83.0.4103.106
A voir également:

1 réponse

m@rina Messages postés 20011 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 16 avril 2024 11 268
18 juin 2020 à 16:52
Bonjour,

On ne sait pas comment tu est fait ton doc principal de fusion concernant l'insertion des images... Je doute que ce soit fait correctement car tu verrais au moins une image qui apparaîtrait mais qui serait la même partout.
https://faqword.com/index.php/word/publipostage/93-publimage

En effet, si c'est fait correctement avec un champ INCLUDEPICTURE, il faut obligatoirement une mise à jour de ce champ pour que chaque image soit affichée.

Donc, je ne vois pas de solution de publipostage direct vers des PDF. Je pense qu'il va falloir faire un publipostage vers un document Word, mettre les champs à jour, puis utiliser une macro pour convertir en PDF.
https://faqword.com/index.php/word/environnement/1035-comment-exporter-un-fichier-word-en-autant-de-fichiers-pdf-qu-il-y-a-de-sections

m@rina
0