Enregistrer sous .pdf

Bonjour,

J'effectue du publipostage via une macro.

Une fois que le publipostage se fait, il l'imprime sur l'imprimante par défaut.

J'utilisais alors une imprimante pdf virtuelle pour pouvoir enregistrer mes publipostage (.Destination = wdSendToPrinter)

J'aimerais enregistrer automatiquement le publipostage dans un répertoire sans passé par l'imprimante virtuelle.

Voici le code

Private Sub commandButton1_Click()
    '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 = "E:\ftp\dp.xls"

    Application.ScreenUpdating = False
    Set appWord = New Word.Application
    appWord.Visible = True
    'Ouverture du document principal Word
    Set docWord = appWord.Documents.Open("E:\ap\mp.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 (*.xls)};" & _
            "DBQ=" & NomBase & "; ReadOnly=True;", _
            SQLStatement:="SELECT * FROM [Rapport 1$]"
        'Spécifie la fusion vers l'imprimante
        .Destination = wdSendToPrinter
        .suppressBlankLines = True
            'Prend en compte l'ensemble des enregistrements
            With .DataSource
                .firstRecord = wdDefaultFirstRecord
                .lastRecord = wdDefaultLastRecord
            End With
        'Exécute l'opération de publipostage
        .Execute Pause:=False
    End With

    Application.ScreenUpdating = True

    'Fermeture du document Word
    docWord.Close False
    appWord.Quit
End Sub

En espérant que vous allez pouvoir m'aider.

Bien à vous.

Bonjour

une solution :

remplacer

        .Destination = wdSendToPrinter

par

        .Destination = wdSendToNewDocument

sachant que

    wdSendToNewDocument = 0

il faut mettre quelque chose comme :

    'mise en mémoire du nom du fichier a sauvegarder
    nom_fichier = cheminW & Sheets(1).Range("A2") & ".pdf" 'chemin d'enregistrement et nom du fichier pdf... a modifier en conséquence
        With appWord.ActiveDocument
        'export du fichier au format pdf
        .ExportAsFixedFormat (nom_fichier), wdExportFormatPDF
        'fermeture du fichier fusionné sans enregister le docx
        .Close False
        End With

sachant que wdExportFormatPDF

    wdExportFormatPDF = 17

Donc inserer le code ci-dessus après le

  End With

et avant le

    Application.ScreenUpdating = True

Fred

Rechercher des sujets similaires à "enregistrer pdf"