Publipostage en PDF et envoi de chaque PDF par e-mail : macro ou sans code
Oui, vous pouvez faire un publipostage en PDF, mais Word seul ne vous donne qu’un PDF qui contient tous les enregistrements. Il ne sait pas enregistrer chaque enregistrement dans un PDF distinct, et son publipostage par e-mail ne peut pas joindre un PDF à chaque message. Pour envoyer à chaque destinataire son propre PDF, il vous faut l’une de ces trois solutions : une macro VBA (Word pour Windows avec Outlook classique), un complément payant, ou un outil qui réalise le publipostage, le PDF et l’e-mail en une seule étape.
Ce guide montre ce que Word sait faire nativement, vous donne une courte macro à adapter et explique la méthode sans code, pour le cas où vous préférez ne pas maintenir de code.

Ce que Word sait faire seul, et ce qu’il ne sait pas faire
Un publipostage Word (onglet Publipostage, puis Démarrer la fusion et le publipostage, Sélection des destinataires et Insérer un champ de fusion) se termine par Terminer et fusionner, qui propose trois sorties :
- Modifier des documents individuels crée un long document Word avec tous les enregistrements à la suite, séparés par des sauts de section. Enregistrez-le en PDF et vous obtenez un gros PDF, pas un fichier par personne.
- Imprimer les documents envoie tous les enregistrements à une imprimante. Choisir une imprimante PDF vous donne là encore un seul fichier regroupé.
- Envoyer des messages électroniques transforme chaque lettre fusionnée en corps d’e-mail et l’envoie via Outlook, qui doit être votre programme de messagerie par défaut. La lettre est le message lui-même : Word ne la convertit pas en PDF, et il n’existe aucun champ pour joindre un fichier par destinataire.
Deux autres limites sont bonnes à connaître avant de prévoir quoi que ce soit. Word pour le web n’a pas de publipostage du tout : tout cela nécessite donc Word pour ordinateur. Et Word pour Mac a le même onglet Publipostage, mais la macro ci-dessous s’appuie sur les chemins Windows et sur l’interface d’automatisation d’Outlook pour Windows.
Il manque donc toujours les deux mêmes étapes : découper le résultat en un PDF par enregistrement, et joindre chaque PDF à un e-mail adressé à la bonne personne.
Préparez d’abord vos données Excel et votre modèle Word
Quelle que soit la méthode choisie, la préparation est la même :
- Une ligne par destinataire dans Excel, avec les en-têtes sur la première ligne et aucune ligne vide entre les deux.
- Une colonne d’adresses e-mail (par exemple
Email) avec une adresse par cellule. - Une colonne pour le nom de fichier, comme un numéro client ou un nom de famille. Évitez les en-têtes avec des espaces ou de la ponctuation : il est plus simple de les référencer dans une macro.
- Des champs de fusion dans le modèle Word, insérés avec Publipostage, Insérer un champ de fusion. Vérifiez quelques enregistrements avec Aperçu des résultats avant d’automatiser quoi que ce soit.
Si des montants ou des dates s’affichent mal dans l’aperçu (trop de décimales, une date dans l’ordre américain), corrigez-le maintenant avec des commutateurs de champ ; voir comment mettre en forme les champs de fusion dans Word.
La méthode par macro : un PDF par enregistrement, envoyé via Outlook
Une macro VBA automatise ce que vous feriez sinon à la main. Elle parcourt la liste des destinataires et, pour chaque enregistrement :
- limite le publipostage à ce seul enregistrement,
- exécute le publipostage dans un nouveau document temporaire,
- enregistre ce document en PDF sous un nom tiré des données,
- ferme le document temporaire sans l’enregistrer,
- crée un message Outlook à l’adresse de cet enregistrement et y joint le PDF.
Le code ci-dessous est destiné à Word pour Windows avec Outlook classique installé. Il utilise la liaison tardive : vous n’avez donc pas besoin d’ajouter une référence à Outlook. Remplacez Email et Nom par les noms de colonnes de votre feuille.
' Word pour Windows uniquement. Enregistrez d'abord le document principal :
' les PDF sont écrits dans le même dossier. Reliez la liste de destinataires
' et supprimez tout filtre.
Sub MergeEachRecordToPdfAndEmail()
Dim mainDoc As Document, outDoc As Document
Dim olApp As Object, i As Long, lastRecord As Long
Dim pdfPath As String, emailTo As String
Set mainDoc = ActiveDocument
Set olApp = CreateObject("Outlook.Application")
With mainDoc.MailMerge
.Destination = wdSendToNewDocument
.DataSource.ActiveRecord = wdLastRecord
lastRecord = .DataSource.ActiveRecord
For i = 1 To lastRecord
.DataSource.ActiveRecord = i
.DataSource.FirstRecord = i
.DataSource.LastRecord = i
emailTo = .DataSource.DataFields("Email").Value
pdfPath = mainDoc.Path & "\" & i & "_" & _
.DataSource.DataFields("Nom").Value & ".pdf"
.Execute Pause:=False
Set outDoc = ActiveDocument
outDoc.ExportAsFixedFormat OutputFileName:=pdfPath, _
ExportFormat:=wdExportFormatPDF
outDoc.Close SaveChanges:=wdDoNotSaveChanges
With olApp.CreateItem(0)
.To = emailTo
.Subject = "Votre document"
.Body = "Veuillez trouver votre document en pièce jointe."
.Attachments.Add pdfPath
.Display ' remplacer par .Send après un test réussi
End With
Next i
End With
End Sub
Pour l’exécuter sans risque :
- Appuyez sur Alt+F11 dans Word, choisissez Insertion, Module, puis collez le code.
- Pour un premier test, remplacez temporairement
lastRecordpar3dans la ligneFor. La macro crée alors trois PDF et ouvre trois brouillons d’e-mail sans rien envoyer. - Vérifiez les PDF et les brouillons. Seulement ensuite, remplacez
.Displaypar.Sendet remettezlastRecord. - Enregistrez le modèle comme document prenant en charge les macros (.docm) si vous voulez y conserver la macro.
Ce qui coince le plus souvent avec cette méthode :
- Outlook classique uniquement. Le nouvel Outlook pour Windows ne prend pas en charge ce type d’automatisation, et Outlook peut afficher un avertissement de sécurité lorsqu’une macro envoie des e-mails.
- Noms de fichiers. Une valeur contenant une barre oblique, deux-points ou un point d’interrogation dans la colonne du nom fait échouer l’export PDF. Utilisez un identifiant ou une colonne nettoyée pour les noms de fichiers.
- Filtres et lignes exclues. La boucle simple parcourt les enregistrements par numéro. Supprimez d’abord les filtres et les destinataires décochés, ou retirez ces lignes de la feuille.
- Aucun journal. Si quelque chose échoue à mi-parcours, c’est à vous de retrouver quels e-mails sont déjà partis. Les envois plus importants nécessitent une gestion des erreurs et un fichier journal.
Pour une introduction plus douce à l’éditeur VBA et aux macros dans un publipostage, consultez Comment combiner le publipostage et les macros Word.
Compléments et autres outils
Si vous préférez ne pas toucher au code, plusieurs compléments payants ajoutent à Word ou à Outlook une option « un PDF par enregistrement, joint à chaque e-mail ». Ils diffèrent par le prix, les licences et la façon d’envoyer : consultez donc la documentation à jour de l’éditeur.
- Les compléments de publipostage pour Outlook, comme Mail Merge Toolkit de MAPILab, ajoutent des options de pièce jointe à l’étape Envoyer des messages électroniques de Word.
- Adobe Acrobat sous Windows ajoute à Word un onglet Acrobat dont la fonction de publipostage convertit un publipostage Word en fichiers PDF. Il nécessite une licence Acrobat payante et Word pour ordinateur.
- AutoMailMerge, un module externe Acrobat d’EverMap, fonctionne dans l’autre sens : il remplit un formulaire PDF plutôt qu’un document Word.
- Power Automate peut remplir un modèle Word, le convertir en PDF et l’envoyer avec Outlook, ligne par ligne. Le connecteur Word est un connecteur premium et fonctionne avec des contrôles de contenu, pas avec des champs de fusion : en général, vous devez donc refaire le modèle.
Si votre modèle est déjà un formulaire PDF et non un document Word, la question n’est plus « publipostage en PDF » mais « remplir un PDF à partir d’Excel » ; voir le remplissage automatique de formulaires PDF.
La méthode sans code : un modèle Word en entrée, un PDF par destinataire en sortie
MailMergic réalise le publipostage, la conversion en PDF et l’envoi au même endroit, dans le navigateur. Rien à installer : ni complément Word, ni Outlook, ni réglages de sécurité des macros.
- Importez votre modèle Word (.docx). Votre mise en page, vos polices et votre en-tête restent tels quels.
- Ajoutez votre liste de destinataires depuis Excel (.xlsx ou .xls), un CSV ou Google Sheets. Une colonne contient l’adresse e-mail.
- Placez vos champs de fusion et affichez l’aperçu de quelques lignes.
- Générez un PDF (ou un fichier Word) par ligne, nommé à partir de vos données, par exemple
Facture_{Numero}.pdf. Téléchargez-les dans un fichier ZIP si vous n’avez besoin que des fichiers. - Rédigez l’e-mail. L’objet et le corps acceptent eux aussi des champs de fusion, et le document de chaque destinataire est joint à son message. Vous pouvez envoyer depuis votre propre domaine vérifié, ou depuis votre adresse sans aucune configuration.
- Suivez le résultat. La remise, les rejets et les ouvertures sont enregistrés pour chaque ligne : une adresse erronée apparaît donc au lieu de disparaître en silence.
Vous pouvez aussi joindre un fichier fixe que tout le monde reçoit (conditions générales, plan d’accès) en plus du fichier personnel, et protéger chaque PDF par un mot de passe tiré d’une colonne. Les détails se trouvent sur la page publipostage avec pièces jointes.
L’offre gratuite vous permet de générer 100 documents par mois (avec un filigrane), sans carte bancaire : vous pouvez ainsi vérifier le résultat avec votre propre modèle avant d’envoyer quoi que ce soit. L’envoi de documents par e-mail fait partie des offres payantes.
Importez votre modèle Word et créez un PDF par destinataire
Quelle méthode choisir
- Macro : gratuite et entièrement sous votre contrôle, si vous travaillez sous Windows avec Outlook classique et que vous êtes à l’aise pour tester et maintenir du VBA.
- Complément : pas de code, mais lié à Word ou à Acrobat pour ordinateur sur une seule machine, avec une licence par utilisateur.
- Outil dans le navigateur : pas de code et rien à installer, fonctionne sur n’importe quel ordinateur et ajoute un suivi par destinataire. Vos données sont importées sur le service pour réaliser le publipostage.
Quelle que soit votre option, faites d’abord un test avec trois ou quatre de vos propres adresses. Une erreur dans un publipostage part chez tout le monde à la fois, et un test ne prend qu’une minute.
Charger DOCX · Recevoir DOCX ou PDF