Difficulté avec l'actualisation d'un publipostage
CamCam56
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
m@rina Messages postés 23882 Date d'inscription Statut Contributeur Dernière intervention -
m@rina Messages postés 23882 Date d'inscription Statut Contributeur Dernière intervention -
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
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:
- Actualiser publipostage word
- Word 2013 - Télécharger - Traitement de texte
- Publipostage mail - Accueil - Word
- Tableau word - Guide
- Espace insécable word - Guide
- Word et excel gratuit - Guide
1 réponse
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
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