VBA publipostage enregistrement pdf sous le nom d'un champ p
Bonjour
je réalise un publipostage WORD à partir d’excel .
Je rencontre 2 problèmes.
1.Lorsque le publipostage est effectué , à la fermeture de word , ce message s’affiche
Comment éviter ce message ?
2.le fichier pdf doit être enregistré sous le nom d'un champ publiposté c'est-à-dire qu’il doit reprendre la concaténation des cellules B2,E2,F2 ,H2 de la feuil 1.
Comment faire ?
Merci de toute aide
Sub test()
'Enregistre le fichier au format.pdf
'Nécessite d'activer la référence "Microsoft Word xx.x Object Library"
Dim docWord As Word.Document
Dim appWord As Word.Application
Dim NomBase As String
NomBase = "C:\test\Classeur1.xlsm"
Application.ScreenUpdating = False
Set appWord = New Word.Application
appWord.Visible = True
'Ouverture du document principal Word
Set docWord = appWord.Documents.Open("C:\test \Publipostage.docx")
'fonctionnalité de publipostage pour le document spécifié
With docWord.MailMerge
'Ouvre la base de données
.OpenDataSource Name:=NomBase, _
Connection:="Driver={Microsoft Excel Driver (*.xlsx)};" & _
"DBQ=" & NomBase & "; ReadOnly=True;", _
SQLStatement:="SELECT * FROM [Feuil1$]"
'Exécute l'opération de publipostage
.Execute Pause:=False
End With
' Sauvegarde du document publiposté
With appWord.ActiveDocument
.ExportAsFixedFormat OutputFileName:="C:\test\fiche.pdf", ExportFormat:= _
wdExportFormatPDF, OpenAfterExport:=False
End With
Application.ScreenUpdating = True
'Fermeture du document Word
docWord.Close False
appWord.Quit
End Sub
oups , j'ai omis de dire le message affiché .
"Voulez vous enregistrer les modifications apportés à lettres 1 ?"
Salut,
à la fin de ta macro tu fermes uniquement le word (d'origine, celui avec le publipostage). Ensuite tu demandes de fermer word.
Mais si tu regardes bien, il y a un fichier word qui s'est créé, c'est ton publipostage généré par le word d'origine. Tu dois le fermer également avant de quitter word. Rajoute la ligne en "gras"
docWord.Close False 'Fermeture du document Word
appWord.ActiveDocument.Close False 'Fermeture du publipostage
appWord.Quit 'Fermeture de word