Macro publipostage enregistrement PDF séparé

Résolu/Fermé
Marie7831 Messages postés 12 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 12 juillet 2019 - 10 juil. 2019 à 09:47
 FRN - 23 juin 2020 à 09:57
Bonjour à tous,

Je recherche désespéramment une macro pouvant m'enregistrer chaque feuille d'un publipostage en un PDF séparé, en prenant comme nom de fichier un champ du publipostage (<<Ville>>).
J'ai testé plusieurs macros sans jamais réussir à obtenir ce dont j'avais besoin.
Si quelqu'un a une idée :)

Merci par avance,

bonne journée,

Marie
A voir également:

3 réponses

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
10 juil. 2019 à 10:47
bonjour, peux-tu nous en dire plus?
2
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > Marie7831 Messages postés 12 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 12 juillet 2019
Modifié le 10 juil. 2019 à 12:01
tu as testé plusieurs macros: où cela coince-t-il? l'enregistrement de chaque page, le nom du fichier, ...?
à tout hasard:
ActiveDocument.ExportAsFixedFormat OutputFileName:= _
"D:StuffBusinessTempPDFName.pdf", _ 
ExportFormat:=wdExportFormatPDF, _ 
Range:=wdExportFromTo, From:=1, To:=1 
0
Marie7831 Messages postés 12 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 12 juillet 2019
10 juil. 2019 à 12:12
Erreur d'exécution 5852 : L'objet demandé n'est pas disponible.
Et en mode débogage c'est ceci qui bloque en premier :
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord

Voici la macro :
Sub SavePubliAsPDF()
Dim LastRec As Integer
Dim Path As String, Id As String

Application.ScreenUpdating = False

'Choix du dossier d'enregistrement des fichiers
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Sélectionnez un dossier où enregistrer vos fichiers"
.Show
If Not (.SelectedItems.Count = 0) Then
Path = .SelectedItems(1)
Else
Exit Sub
End If
End With

'Décompte du nombre d'enregistrements dans le publipostage
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord
LastRec = ActiveDocument.MailMerge.DataSource.ActiveRecord
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord

'Enregistrement des fichiers
ActiveDocument.MailMerge.ViewMailMergeFieldCodes = False
For i = 1 To LastRec Step 1
Id = ActiveDocument.MailMerge.DataSource.DataFields(1).Value
ActiveDocument.SaveAs2 Path & "\Courrier " & Id & ".pdf", wdFormatPDF
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
Next i

MsgBox "L'enregistrement de votre publipostage est terminé." & vbLf & vbLf & LastRec & " fichiers ont été enregistrés dans le dossier : " & Path, vbOKOnly + vbInformation, "Enregistrement du publipostage terminé"

Application.ScreenUpdating = True
End Sub
0