Bonjour à toutes et à tous,
Je commence par remercier les intervenants réguliers du site grâce à qui j'ai déjà bien avancé sur mon "projet"
Classiquement je fait un publipostage via un formulaire WORD à partir d'un tableau EXCEL et vers le format PDF. J'obtiens bien x documents individuels PDF à partir de mon unique formulaire word. Si j'ai 10 lignes dans mon tableau excel, j'ai mes 10 fichiers individuels.
Grâce aux codes trouvé sur le site, j'y suis parvenu sans problème, il me reste un dernier détail à régler
Je souhaite nommer mes fichiers à partir du plusieurs champs. J'y suis très bien arrivé, j'ai réussi à renommer mes fichiers "Convoc-MACHIN-Philippe" à partir de trois champs différents.
Cela ne fonctionne plus si j'ajoute la date de convocation à la ligne, par acquis de conscience j'ai inséré le champs HEURE à la place et j'ai bien l'heure de la convoc qui s'affiche dans le nom du fichier. c'est donc bien la date qui pose soucis.
Le format de nom recherché est : "Convoc-MACHIN-Philippe-01-04-25" (avec les slash ça ne fonctionnera pas)
Ci-dessous le code . Lorsque je lance la macro, le débogage m'indique que c'est la ligne surlignée (activeDocumentExport........=False) qui semble poser problème.
Je reprécise que si par exemple, à la place de date j'entre le champs "HEURE", ça fonctionne parfaitement
J'ai modifié le format de la date dans le fichier excel, j'en ai essayé plusieurs, ça ne fonctionne pas.
J'ai également modifié le format du champs date dans le formulaire word, cela ne fonctionne pas, par contre ce n'est plus la même ligne que m'indique le débogage, cette fois c'est la ligne ".execute" sous la ligne nom.
Par avance merci !
Philippe
Sub publipostage()
Dim fusion As MailMerge
Dim x As Integer, nb As Integer
Dim chemin As String, nom As String
Set fusion = ActiveDocument.MailMerge
chemin = "C:\Users\philippe.doussat\Documents\Convocations\Convoc-"
nb = fusion.DataSource.RecordCount
For x = 0 To nb - 1
With fusion
.DataSource.FirstRecord = x + 1
.DataSource.LastRecord = x + 1
.Destination = wdSendToNewDocument
.DataSource.ActiveRecord = x + 1
nom = .DataSource.DataFields("NOM") & "-" & .DataSource.DataFields("PRENOM") & "-" & .DataSource.DataFields("DATE")
.Execute
End With
ActiveDocument.ExportAsFixedFormat OutputFileName:=chemin & nom & ".pdf", ExportFormat:=wdExportFormatPDF, openafterexport:=False
ActiveDocument.Close savechanges:=False
Next
End Sub
Je commence par remercier les intervenants réguliers du site grâce à qui j'ai déjà bien avancé sur mon "projet"
Classiquement je fait un publipostage via un formulaire WORD à partir d'un tableau EXCEL et vers le format PDF. J'obtiens bien x documents individuels PDF à partir de mon unique formulaire word. Si j'ai 10 lignes dans mon tableau excel, j'ai mes 10 fichiers individuels.
Grâce aux codes trouvé sur le site, j'y suis parvenu sans problème, il me reste un dernier détail à régler
Je souhaite nommer mes fichiers à partir du plusieurs champs. J'y suis très bien arrivé, j'ai réussi à renommer mes fichiers "Convoc-MACHIN-Philippe" à partir de trois champs différents.
Cela ne fonctionne plus si j'ajoute la date de convocation à la ligne, par acquis de conscience j'ai inséré le champs HEURE à la place et j'ai bien l'heure de la convoc qui s'affiche dans le nom du fichier. c'est donc bien la date qui pose soucis.
Le format de nom recherché est : "Convoc-MACHIN-Philippe-01-04-25" (avec les slash ça ne fonctionnera pas)
Ci-dessous le code . Lorsque je lance la macro, le débogage m'indique que c'est la ligne surlignée (activeDocumentExport........=False) qui semble poser problème.
Je reprécise que si par exemple, à la place de date j'entre le champs "HEURE", ça fonctionne parfaitement
J'ai modifié le format de la date dans le fichier excel, j'en ai essayé plusieurs, ça ne fonctionne pas.
J'ai également modifié le format du champs date dans le formulaire word, cela ne fonctionne pas, par contre ce n'est plus la même ligne que m'indique le débogage, cette fois c'est la ligne ".execute" sous la ligne nom.
Par avance merci !
Philippe
Sub publipostage()
Dim fusion As MailMerge
Dim x As Integer, nb As Integer
Dim chemin As String, nom As String
Set fusion = ActiveDocument.MailMerge
chemin = "C:\Users\philippe.doussat\Documents\Convocations\Convoc-"
nb = fusion.DataSource.RecordCount
For x = 0 To nb - 1
With fusion
.DataSource.FirstRecord = x + 1
.DataSource.LastRecord = x + 1
.Destination = wdSendToNewDocument
.DataSource.ActiveRecord = x + 1
nom = .DataSource.DataFields("NOM") & "-" & .DataSource.DataFields("PRENOM") & "-" & .DataSource.DataFields("DATE")
.Execute
End With
ActiveDocument.ExportAsFixedFormat OutputFileName:=chemin & nom & ".pdf", ExportFormat:=wdExportFormatPDF, openafterexport:=False
ActiveDocument.Close savechanges:=False
Next
End Sub
Dernière édition: