Macro publipostage enregistrement PDF séparé

Résolu
Marie7831 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
 FRN -
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, peux-tu nous en dire plus?
2
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Marie7831 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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