WORD - Publipostage Enregistrement PDF [Résolu]

Signaler
Messages postés
4
Date d'inscription
mercredi 29 juillet 2020
Statut
Membre
Dernière intervention
31 juillet 2020
-
Messages postés
4
Date d'inscription
mercredi 29 juillet 2020
Statut
Membre
Dernière intervention
31 juillet 2020
-
Bonjour,

Après une semaine de recherche sur de multiples forum, je me lance dans un dernier élan d'espoir. Je vous explique.

Je souhaite enregistrer chaque feuille d'un publipostage en un PDF séparé, en prenant comme nom de fichier un champ du publipostage (Demande d'arrêté - <<Commune>>).

J'ai une macro qui me permet d'enregistrer sous format PDF cependant le nom du fichier est mauvais. En effet, la commune affichée est celle du publipostage précédant. Exemple :

Publipostage N°3 --> Paris
Publipostage N°4 --> Lyon
J'active ma macro en ayant le Word de Lyon sous les yeux, il s'enregistre sous format PDF cependant le nom du fichier est "Demande d'arrêté - Paris".

J'ai essayé plusieurs macro trouvé sur le net mais le problème revient à chaque fois...

Avez-vous une solution ?

Je laisse le code VBA ci-dessous :
 Sub Word_to_PDF()
'
' Word_to_PDF Macro
' Converti la DA au format PDF et l'enregistre sous un dossier
'

Dim chemin As String, nom As String
chemin = "C:\Users\CHEMIN DU DOSSIER"

With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
.LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
End With
.Execute Pause:=False
nom = .DataSource.DataFields(2).Value
End With

ActiveDocument.ExportAsFixedFormat OutputFileName:= _
chemin & "Demande d'arrêté - " & nom & ".pdf" _
, ExportFormat:=wdExportFormatPDF, openafterexport:=True, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False
End Sub


Merci d'avance,

Susuwatari

3 réponses

Messages postés
12310
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 septembre 2020
693
bonjour, que se passe-t'il alors avec le premier?
serait-il possible de partager des fichiers qui permettent de tester tout cela?
Messages postés
4
Date d'inscription
mercredi 29 juillet 2020
Statut
Membre
Dernière intervention
31 juillet 2020

Bonjour,

Le premier n'est tout simplement pas référencé...

Je vous joint la base de donné excel.

Appuyez simultanément sur ctrl+shift+a pour afficher le formulaire.
Choisissez un numéro et cliquez sur document pour créer le publipostage word. (il faudra changer le chemin dans la partie "Pour le bouton Document" du VBA)
Le word "TEST" s'affiche. Choisissez un numéro de publipostage et exécutez la macro "Word_to_PDF".

N'hésitez pas si vous avez des questions.

Cordialement

Base de données Excel : https://www.cjoint.com/c/JGEgx7T7jhp
Fichier Word : https://www.cjoint.com/c/JGEgzj4m6Sp
Messages postés
12310
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 septembre 2020
693
j'ai changé le chemin ainsi:
ActiveWorkbook.FollowHyperlink ThisWorkbook.Path + "\TEST.docx"
, c'est plus transportable
quand je cliques sur "document" dans le formulaire excel, Word me prévient qu'il va faire un SELECT, puis me demande un DataSource. Je suppose que ce DataSource a été créé quand tu as créé le publipostage, et je pense que le plus simple est que tu expliques comment créer le publipostage.
Par ailleurs, je ne vois pas de macro "Word_to_PDF". est-elle dans le fichier Word?
Messages postés
4
Date d'inscription
mercredi 29 juillet 2020
Statut
Membre
Dernière intervention
31 juillet 2020

Super, le nouveau chemin fonctionne. Quelle est la différence avec l'ancien ?

Effectivement, le DataSource provient du publipostage.
Pour créer ce dernier, j'ai utilisé une page word reprenant la mise en page souhaité.
J'ai sélectionné une liste de destinataire existante (Formulaire_DA puis 'Liste DA$').
J'ai ensuite inséré des champs de fusion. L'aperçus m'indique que le publipostage fonctionne.
Il est a noté que la première ligne de ma base de donnée (BDD) ne s'affiche pas. C'est pour cette raison que je garde une ligne vierge au début de ma BDD.

La macro "Word_to_PDF" est bien dans le fichier Word. cf image


J'ai refais la manipulation en parallèle et tout fonctionne parfaitement. Inexplicable mais Top!
Je n'ai plus de problème concernant l'affichage de la première ligne de la BDD sur mon publipostage. Et l'enregistrement PDF se fait avec le bon nom.

Petit hic : Lorsque je clique sur "Document" le publipostage ne s'ouvre pas sur la page correspondante à la commune sélectionnée dans le formulaire Excel...
Cela m'oblige à faire une recherche de destinataire pour trouver la bonne page à convertir en PDF.

Une petite idée sur l'origine de ce dysfonctionnement ?