XL 2016 VBA Insérer une date dans le nom de fichiers PDF publipostés via WORD à partir d"excel

  • Initiateur de la discussion Initiateur de la discussion PHIL37
  • Date de début Date de début

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 !

PHIL37

XLDnaute Nouveau
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
 
Dernière édition:
Solution
Bonjour,
Merci à fanch55, votre code a fonctionné. J'ai quand-même du faire un changement de format pour que votre code fonctionne.
A l'origine sur mon formulaire word, j'avais modifié le format "mergefield ...." en "dd MMMM yyyy" pour avoir "03 mars 2025". Comme ça, ça n'a pas fonctionné.
J'ai supposé que le problème pouvait venir de là, j'ai donc inséré dans le formulaire un autre champs de fusion "date", que j'ai mis en forme "transparent" pour qu'il ne se voit pas et que j'ai laissé au format de base de mon fichier excel "dd/MM/yy" 03/03/25.
Et là votre code a fonctionné parfaitement.

Merci encore pour votre aide, vous n'imaginez pas le temps que vous me faites gagner !

Bonne continuation à toutes et à tous.

Philippe
Bonjour,
Merci à fanch55, votre code a fonctionné. J'ai quand-même du faire un changement de format pour que votre code fonctionne.
A l'origine sur mon formulaire word, j'avais modifié le format "mergefield ...." en "dd MMMM yyyy" pour avoir "03 mars 2025". Comme ça, ça n'a pas fonctionné.
J'ai supposé que le problème pouvait venir de là, j'ai donc inséré dans le formulaire un autre champs de fusion "date", que j'ai mis en forme "transparent" pour qu'il ne se voit pas et que j'ai laissé au format de base de mon fichier excel "dd/MM/yy" 03/03/25.
Et là votre code a fonctionné parfaitement.

Merci encore pour votre aide, vous n'imaginez pas le temps que vous me faites gagner !

Bonne continuation à toutes et à tous.

Philippe
 
- 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
2
Affichages
415
Retour