Publipostage en format Word dans plusieurs dossier definis

Bonjour à tous les St-Bernard d'excel :-)

A nouveau, je suis devant une impasse.

Le code ci-dessous fait le travail que je veux mais en PDF, comment modifier ce code pour qu'il me fasse la même chose en Word.docx

Merci d'avance pour votre secours.

Amicalement

Andreas

Sub evaluation_environnementale_()
'--------------------------------------------------------------------------------
'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, cheminW, cheminP, fichier_source, DocName As String
Dim Nom_Fichier, Nomsourcebase As String
Dim fin, i As Integer

Application.ScreenUpdating = False

fichier_source = ActiveWorkbook.Name
'cheminW = chemin du fichier source Excel
cheminW = "N:\conformité"
'Nombase = mettre le chemin et le nom du fichier Excel source
NomBase = "N:\Conformité SWC West.xlsm"

Application.DisplayAlerts = False
Set appWord = New Word.Application
appWord.Visible = True
'Ouverture du document principal Word pour le publipostage
Set docWord = appWord.Documents.Open("N:\02 Évaluation des aspects environnementaux multi.docx")
With docWord.MailMerge
    'Ouvre la base de données le fichier excel doit avoir sa feuille nommée 'Eval environ'
    .OpenDataSource Name:=NomBase, Connection:="Driver={Microsoft Excel Driver (*.xlsx)};" & "DBQ=" & NomBase & "; ReadOnly=True;", SQLStatement:="SELECT * FROM [Eval environ$] WHERE Conformité = 'XOui' "
    fin = .DataSource.RecordCount
End With
'For = de la première ligne de la BD à la dernière
For i = 1 To fin
    'fonctionnalité de publipostage pour le document spécifié
    With docWord.MailMerge
        'Spécifie la fusion vers un nouveau doc
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
            'Prend en compte uniquement l'enregistrement i
            With .DataSource
                .FirstRecord = i
                .LastRecord = i
            End With
        'Exécute l'opération de publipostage
        .Execute Pause:=False
        'recupère le nom du fichier source excel
        .DataSource.ActiveRecord = i
        DocName = .DataSource.DataFields(5).Value & " Evaluation environnementaux 2020"
        cheminP = .DataSource.DataFields(68).Value 'Donne l'information de la colonne 68 en tant que lien du fichier de destination

End With
    Nom_Fichier = cheminP & DocName & ".pdf"
    With appWord.ActiveDocument
        'export pdf
        .ExportAsFixedFormat OutputFileName:=(Nom_Fichier), _
        ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
        Item:=wdExportDocumentContent, IncludeDocProps:=False, KeepIRM:=False, _
        CreateBookmarks:=wdExportCreateHeadingBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=False, UseISO19005_1:=False
        'fermeture du fichier W sans enregistrement
        .Close False
    End With
Next i
Application.ScreenUpdating = True
'Fermeture du document Word
docWord.Close False
appWord.Quit
MsgBox "Les documents ont été créees avec succès, action Terminée"
End Sub

Salut tous le monde,

Après des heures de tests, EUREKA!

Il suffisait de changer une partie du code:

    Nom_Fichier = cheminP & DocName & ".docx"
    With appWord.ActiveDocument
        .SaveAs Nom_Fichier

    End With

Merci a tous ceux qui ont lu, et profitez de cet Input pour vos utilitaires

Andreas

Re,

Et pour refermer le document de fusion:

    Nom_Fichier = cheminP & DocName & ".docx"
    With appWord.ActiveDocument
        .SaveAs Nom_Fichier 'enregistre le fichier de fusion en format Word
        appWord.ActiveDocument.Close True 'Fermeture du document de fusion
    End With

Profitez...

Cordialement

Andreas

Bonjour Andreas, bonjour le forum,

Ton code me plait bien, je suis en pleine réflexion pour automatiser mes fichiers ...
J'essaie de le mettre en œuvre début de semaine prochaine...

Pour enregistrer en word ET faire le pdf.

je pense qu'il y a tout dans ton code.
Merci de ce partage.

Agréable soirée à tous, prenez soin de vous !

Bonjour LucXIs,

Avec plaisir, mais ce code est juste une recomposition de ce que j'ai trouver sur ce forum.

Attention: si le fichier existe deja dans le dossier, il sera écrasé par le nouveau (Sans avertissement)

Enjoy

Bon weekend

Andreas

Rechercher des sujets similaires à "publipostage format word dossier definis"