Une amie m'a demandé de l'aide pour mettre au point un publipostage générant plusieurs fichiers pdf pour chaque ligne d'un fichier excel.
J'ai corrigé le fichier excel et publipostage sous word.
J'ai trouvé quelques macro permettant le publipostage en multiples fichiers pdf.
Citation :
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 & "\Sortie\" & 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 & "\Sortie\" & nom & ".pdf", ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False
End With
Next i
End Sub
|
Au début je ne voyais pas comment sauvegarder en chemin relatif, mais j'ai trouvé.
Les fichiers se génèrent bien au bon endroit, mais j'obtiens un message d'erreur :
C'est manifestement lié à la ligne :
Citation :
.ExportAsFixedFormat OutputFileName:=path & "\Sortie\" & nom & ".pdf", ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False
|
Je ne vois pas ce qui peut coincer.
Message édité par Erasme le 12-04-2021 à 17:28:35