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

Rechercher des sujets similaires à "vba publipostage enregistrement pdf nom champ"