Sub publipostagepdf()
' Déclaration des variables
Dim iR As Integer
Dim i As Integer
Dim oDoc As Document
Dim nom As String
Dim oDS As MailMergeDataSource
Dim path As String
path = Application.ActiveDocument.path
' Affectation des objets
Set oDoc = ActiveDocument
Set oDS = oDoc.MailMerge.DataSource
iR = oDoc.MailMerge.DataSource.RecordCount
Debug.Print iR
For i = 1 To iR
With oDoc.MailMerge
'Définition du premier et dernier enregistrement
.DataSource.FirstRecord = i
.DataSource.LastRecord = i
' Envoi des données dans un nouveau document
.Destination = wdSendToNewDocument
' Exécution du publipostage
.Execute
' Actualisation de l'enregistrement pour la sauvegarde
.DataSource.ActiveRecord = i
'Utilisation de deux champs pour obtenir le nom du document
nom = .DataSource.DataFields("NomFichier") 'Remplacer Nom" par le champ à utiliser
Debug.Print DocName; i
'Application.DisplayAlerts = False
With ActiveDocument
.SaveAs FileName:=path & "" & Format(Date, "yy") & Format(Date, "mm") & Format(Date, "dd") & Format(Time, "hhmm") & ".doc"
.Close
End With
End With
' Sauvegarde du document publiposté
With ActiveDocument
.ExportAsFixedFormat OutputFileName:=path & "" & nom & ".pdf", ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False
'.ActiveWindow.Close
End With
Next i
End Sub