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
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