WORD - Publipostage Enregistrement PDF

Résolu/Fermé
Susuwatari Messages postés 4 Date d'inscription mercredi 29 juillet 2020 Statut Membre Dernière intervention 31 juillet 2020 - 29 juil. 2020 à 09:23
Susuwatari Messages postés 4 Date d'inscription mercredi 29 juillet 2020 Statut Membre Dernière intervention 31 juillet 2020 - 31 juil. 2020 à 09:21
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
A voir également:

3 réponses

yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 Ambassadeur 1 551
29 juil. 2020 à 14:10
bonjour, que se passe-t'il alors avec le premier?
serait-il possible de partager des fichiers qui permettent de tester tout cela?
0
Susuwatari Messages postés 4 Date d'inscription mercredi 29 juillet 2020 Statut Membre Dernière intervention 31 juillet 2020
30 juil. 2020 à 08:26
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
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551
30 juil. 2020 à 12:55
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?
0
Susuwatari Messages postés 4 Date d'inscription mercredi 29 juillet 2020 Statut Membre Dernière intervention 31 juillet 2020
31 juil. 2020 à 09:21
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 ?
0