Microsoft 365 Publipostage Word avec édition en pdf

MGSC

XLDnaute Nouveau
Bonjour à tous.

Je suis nouveau et néophyte :)
Pour faire un publipostage Word (version Office 365) avec paramétrage du nom d'enregistrement de chaque fichier, j'utilise la macro et le code suivant.
Le résultat du publipostage se fait donc en fichier Word.docx

Je cherche le code pour éditer chaque courrier en pdf unitaire avec le même nom que le fichier docx (j'utilise Adobe Acrobat ProDC).

En option, je cherche également le code pour envoyer par mail chaque fichier généré en pdf à 2 destinataires A et Cc dont les coordonnées A et Cc sont dans une BD Excel (\\C\Publipostage attestations\BD\). Sauf erreur de ma part, dans Word la fonction publipostage - envoi des courriers ne permet pas de paramétrer le destinataire Cc ni de paramétrer le nom du fichier.

J'ai testé plusieurs formules trouvées sur le web mais ca ne marche pas 😢.

Merci par avance de votre aide.



Sub Attestation_7401985204_Publipostage_page_par_page()

' Enregistrement_page_par_page Macro

' Déclaration des variables
Dim iR As Integer
Dim i As Integer
Dim oDoc As Document
Dim DocName As String
Dim oDS As MailMergeDataSource

' 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
DocName = .DataSource.DataFields(2).Value & " - " & .DataSource.DataFields(1) & " - " & .DataSource.DataFields(6)
DocName = DocName & " - Attestation " + Format(Now(), "YYYY")
'DocName = DocName & " - Attestation " + Format(Now(), "YYYY") & " " & .DataSource.DataFields(6)
Debug.Print DocName; i
End With

' Sauvegarde du document publiposté = il faut indiquer le chemin
With ActiveDocument
.SaveAs "\\C\Publipostage attestations\" & DocName & ".docx"
.Close
End With
 

jui42

XLDnaute Junior
Bonjour, sous word,

VB:
Sub Main()
    
    Dim Source_Folder_Path As String, Target_Folder_Path As String
    Dim File_Names As String
    Dim doc As Document
    
    '// Step 1. Assign Folder Paths
    Source_Folder_Path = "votre chemin ou se trouve les pdf"
    Target_Folder_Path = "votre chemin ou vous voulez que les word se crée"
    
    If Right(Source_Folder_Path, 1) <> "\" Then
        Source_Folder_Path = Source_Folder_Path & "\"
    End If
    
    If Right(Target_Folder_Path, 1) <> "\" Then
        Target_Folder_Path = Target_Folder_Path & "\"
    End If
    
    '// Step 2. Grad all the PDF files
    
    File_Names = Dir(Source_Folder_Path & "*.pdf")
    
    Application.DisplayAlerts = wdAlertsNone
    
    Do While File_Names <> ""
        
        Set doc = Documents.Open(Source_Folder_Path & File_Names, False)
        
        '// Convert the PDF file to Word Doc
        doc.SaveAs2 Target_Folder_Path & Replace(File_Names, ".pdf", ".docx"), wdFormatDocumentDefault
        doc.Close False
        
        Set doc = Nothing
        
        File_Names = Dir()
    Loop
    
    Application.DisplayAlerts = wdAlertsAll
    
    MsgBox "Conversion is finished"
End Sub

Cdt
 

Discussions similaires

Statistiques des forums

Discussions
315 089
Messages
2 116 098
Membres
112 661
dernier inscrit
ceucri