Macro publipostage enregistrement PDF séparé

DianaSVG Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonsoir à tous,

J'essaie de trouver une solution mais je n'arrive pas. Je suis en train d'essayer différents MACROS pour avoir un enregistrement PDF après un publipostage. Je viens de trouver ce MACRO (je vais le partager ci-dessous), lors de l'essai j'ai bien eu la confirmation que tous mes documents ont été enregistrés dans mon dossier... mais par contre, je n'ai qu'un seul document. Est-ce que quelqu'un connaît les raisons svp?

Merci d'avance,
Bonne soirée,
Dianna V

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
A voir également:

1 réponse

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
je me demande si ceci
Id = ActiveDocument.MailMerge.DataSource.DataFields(1).Value

ne devrait pas être plutôt:
Id = ActiveDocument.MailMerge.DataSource.DataFields(i).Value
0