Faire un publipostage Outlook depuis une liste Excel
Envoie à chaque ligne de ta liste Excel son propre e-mail avec le publipostage de Word, ou prépare avec notre macro gratuite un brouillon Outlook par ligne, pièce jointe comprise.
C’est Word, et non Excel, qui envoie un publipostage Outlook depuis ta liste, un message par adresse sans pièce jointe. Ce publipostage demande Outlook classique, tout comme notre macro VBA, qui joint à chaque client sa facture. Telle que tu la copies, elle ne fait que des brouillons, et n’envoie que si tu écris envoi sur sa ligne modeEnvoi.
Faire un publipostage mail avec Word et Excel
Pour faire un publipostage mail, tu prépares la liste des destinataires dans Excel, puis tu écris le message dans Word. Word y glisse les colonnes de la liste, puis remet chaque e-mail à Outlook classique, puisqu’Excel n’a aucune commande qui envoie un message par ligne.
Toute la page suit l’exemple de Camille, qui doit envoyer sept factures depuis l’onglet Clients de son classeur. Chaque facture a son PDF, rangé dans le même dossier que le classeur. Le publipostage de Word lui suffit pour rappeler une échéance à tous ses clients, mais il ne joint à personne sa propre facture, ce que fait la macro présentée plus bas.
Préparer la liste Excel du publipostage
Une liste prête pour le publipostage tient sur le premier onglet du classeur, avec ses en-têtes en ligne 1 et une ligne par destinataire. C’est ce que demande l’aide de Microsoft, et la colonne Email y porte l’adresse de chacun. Chaque autre colonne devient un champ que Word, puis la macro, sauront glisser dans le message.
L’onglet Clients, premier onglet du classeur de Camille
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Prénom | Facture | Montant | Échéance | Pièce jointe | Statut | |
| 2 | Julie | julie.martin@example.com | F-2026-101 | 1 250,00 € | 15/10/2026 | F-2026-101.pdf | |
| 3 | Karim | karim.benali@example.com | F-2026-102 | 380,50 € | 15/10/2026 | F-2026-102.pdf | |
| 4 | Sophie | sophie.durand@example | F-2026-103 | 2 100,00 € | 20/10/2026 | F-2026-103.pdf | |
| 5 | Thomas | thomas.petit@example.com | F-2026-104 | 95,00 € | 20/10/2026 | F-2026-104.pdf | |
| 6 | Léa | lea.moreau@example.com | F-2026-105 | 640,00 € | 31/10/2026 | ||
| 7 | Marc | marc.leroy@example.com | F-2026-106 | 1 780,00 € | 31/10/2026 | F-2026-106.pdf | Brouillon créé le 21/09/2026 16:02 |
| 8 | Nadia | nadia.roux@example.com; compta@example.com | F-2026-107 | 312,00 € | 31/10/2026 | F-2026-107.pdf |
La colonne Statut ne sert qu’à la macro, qui y inscrit ce qu’elle a fait, et Word ne s’en sert que si tu l’insères dans le message. Microsoft conseille aussi de mettre en forme les montants, les pourcentages et les codes postaux dans la feuille, pour que Word lise correctement leurs valeurs. Il recommande enfin de garder le classeur sur ton ordinateur plutôt que dans un dossier en ligne. Si ta liste arrive en désordre, l’exercice qui apprend à préparer une base de publipostage reprend ce rangement pas à pas, de la casse des noms aux champs de fusion.
Relier Word à la liste et insérer les champs de fusion
Dans Word, tout se passe dans l’onglet Publipostage, qui transforme un document vide en courrier et le relie à ta liste. Tu écris d’abord le message comme un courrier ordinaire, puis tu insères un champ partout où le prénom ou le montant changent.
- 01
Dans un document Word vide, ouvre l’onglet Publipostage, clique sur Démarrer la fusion et le publipostage, puis choisis Courriers.
- 02
Clique sur Sélection des destinataires, puis sur Utiliser une liste existante, ouvre le classeur de la liste et choisis la feuille Clients.
- 03
Tape le message, puis place le curseur après Bonjour et choisis Prénom dans Insérer un champ de fusion. Fais de même pour la facture, le montant et l’échéance.
- 04
Clique sur Aperçu des résultats pour lire le message de Julie, puis passe d’un client à l’autre avec les boutons Suivant et Précédent.
L’aperçu sert surtout à relire les montants et les dates de chaque client, ceux-là mêmes que Microsoft recommande de bien mettre en forme. Si l’un d’eux ne ressemble pas à ce qu’affiche Excel, corrige-le dans le classeur, puis relie de nouveau la liste à Word.
Envoyer les courriers par Outlook depuis Word
Une fois l’aperçu relu, Word envoie un message individuel à chaque adresse de la colonne Email, en passant par Outlook classique. Une seule fenêtre règle l’envoi de toute la liste, avec la colonne des adresses, l’objet commun et le format du message.
- 01
Clique sur Terminer & fusionner, puis sur Envoyer des courriers.
- 02
Dans la fenêtre Fusionner avec un courrier, choisis Email dans la liste À, puis tape l’objet dans Objet du message.
- 03
Laisse HTML dans Format des messages et Tous sous Envoyer des enregistrements, puis valide par OK pour lancer l’envoi à toute la liste.
Même bien réglé, ce publipostage bute sur trois limites, dont deux sont écrites dans l’aide de Microsoft et la troisième se voit dans la fenêtre. Tu ne peux mettre personne en copie ni en copie cachée, et tu ne peux joindre aucun fichier existant, comme le PDF d’une facture. L’objet tapé dans la fenêtre vaut en outre pour tous les messages, quel que soit le client.
Le seul fichier que Word sait joindre est le courrier fusionné lui-même, envoyé sans texte dans le message, d’après l’aide de Microsoft. Et si Word n’envoie rien du tout, c’est d’abord l’Outlook du poste qu’il faut regarder.
Pourquoi le publipostage Word vers Outlook ne fonctionne pas
Quand le publipostage de Word vers Outlook ne fonctionne pas, regarde d’abord quel Outlook sert de messagerie sur le poste. L’aide de Microsoft demande en effet un programme de messagerie compatible MAPI, comme Outlook classique. Les réponses de son support, sur le forum de Microsoft, précisent que le nouvel Outlook, bâti sur Outlook sur le web, n’offre pas ce lien à Word.
Microsoft range d’ailleurs les macros VBA parmi ce que le nouvel Outlook ne prend pas en charge, dans sa comparaison des deux versions d’avril 2026. Notre macro, qui pilote Outlook par son modèle objet, demande donc elle aussi Outlook classique, installé et relié à ta boîte. Le nouvel Outlook a bien son propre publipostage, que la même comparaison donne pour partiellement disponible, mais ni Word ni notre macro ne s’en servent.
Repasser à Outlook classique pour le publipostage
Pour repasser à Outlook classique, ouvre-le lui-même, puisque les deux versions tournent côte à côte sur un poste qui les a toutes les deux, d’après Microsoft. Dans le menu Démarrer, son raccourci garde son nom anglais, Outlook (classic), même sur un Windows en français.
D’après Microsoft, Outlook classique porte en haut à droite un bouton qui fait passer au nouvel Outlook. Le retour reste possible tant que la bascule n’est pas imposée, et Microsoft s’engage à prendre en charge les installations existantes d’Outlook classique au moins jusqu’en 2029.
Ajouter une pièce jointe différente à chaque mail d’un publipostage Outlook
Pour joindre une pièce jointe différente à chaque mail d’un publipostage Outlook, il faut une macro VBA ou un complément, souvent payant. Notre macro Publipostage_Outlook part de la même liste et prépare dans Outlook classique un brouillon par ligne, avec son objet, son message et son PDF.
Telle que tu la copies, elle n’envoie rien, puisque chaque message reste un brouillon, que tu relis puis envoies toi-même depuis Outlook. Elle n’envoie directement que si tu écris envoi sur sa ligne modeEnvoi, un réglage à choisir exprès, une fois ta liste éprouvée. Elle demande enfin Outlook classique, installé et configuré sur le poste, puisque le nouvel Outlook ne se pilote pas par macro.
Créer un brouillon Outlook par ligne de la liste Excel
Lancée sur l’onglet Clients, la macro parcourt chaque ligne visible jusqu’à la dernière adresse de la colonne Email. Elle contrôle la forme de l’adresse et la présence de la pièce jointe, prépare le message, puis écrit ce qu’elle a fait dans la colonne Statut. L’aperçu montre son mode essai, à lancer en premier, qui écrit l’objet de chaque message dans ce statut sans ouvrir Outlook.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Prénom | Facture | Montant | Échéance | Pièce jointe | Statut | |
| 2 | Julie | julie.martin@example.com | F-2026-101 | 1 250,00 € | 15/10/2026 | F-2026-101.pdf | Prêt (essai) : Facture F-2026-101 de 1 250,00 € |
| 3 | Karim | karim.benali@example.com | F-2026-102 | 380,50 € | 15/10/2026 | F-2026-102.pdf | Prêt (essai) : Facture F-2026-102 de 380,50 € |
| 4 | Sophie | sophie.durand@example | F-2026-103 | 2 100,00 € | 20/10/2026 | F-2026-103.pdf | Adresse invalide : sophie.durand@example |
| 5 | Thomas | thomas.petit@example.com | F-2026-104 | 95,00 € | 20/10/2026 | F-2026-104.pdf | Pièce jointe introuvable : F-2026-104.pdf |
| 6 | Léa | lea.moreau@example.com | F-2026-105 | 640,00 € | 31/10/2026 | Prêt (essai) : Facture F-2026-105 de 640,00 € | |
| 7 | Marc | marc.leroy@example.com | F-2026-106 | 1 780,00 € | 31/10/2026 | F-2026-106.pdf | Brouillon créé le 21/09/2026 16:02 |
| 8 | Nadia | nadia.roux@example.com; compta@example.com | F-2026-107 | 312,00 € | 31/10/2026 | F-2026-107.pdf | Prêt (essai) : Facture F-2026-107 de 312,00 € |
Julie, Karim, Léa et Nadia sont prêts, Léa sans pièce jointe puisque sa case est vide, et Nadia avec ses deux adresses. Sophie a une adresse tronquée, et le PDF de Thomas manque dans le dossier. Leurs lignes n’auront donc aucun message tant que tu ne les auras pas corrigées. Marc, lui, est sauté, parce que son brouillon a été créé la veille, et la barre d’état le compte à part.
En mode brouillon, chaque ligne prête reçoit « Brouillon créé le » suivi de la date et de l’heure, et son message rejoint le dossier Brouillons de ta boîte par défaut. Chaque brouillon y porte son destinataire, son objet, son texte et ses pièces jointes, au format et dans la police des nouveaux messages d’Outlook, sans la signature qu’il ajoute d’ordinaire. Une relance saute ensuite ces lignes, si bien que tu peux corriger Sophie et Thomas puis relancer la macro sans créer de doublon.
Personnaliser l’objet et le message avec les colonnes Excel
L’objet et le message du modèle vivent dans deux cellules d’un onglet Message du classeur. Chaque nom de colonne écrit entre accolades, comme {Prénom} ou {Montant}, y prend la valeur de la ligne. L’objet change donc d’un client à l’autre, ce que la fenêtre de Word ne permet pas. Dans sa cellule, le message s’écrit sur plusieurs lignes avec Alt+Entrée, et la macro garde ces sauts de ligne.
L’onglet Message, avec l’objet en B1 et le message en B2, écrit sur plusieurs lignes
| A | B | |
|---|---|---|
| 1 | Objet | Facture {Facture} de {Montant} |
| 2 | Message | Bonjour {Prénom}, Vous trouverez ci-joint la facture {Facture} d’un montant de {Montant}, à régler avant le {Échéance}. Bonne journée, Camille, service comptabilité |
Chaque champ reçoit le texte que la cellule affiche, si bien que le montant de Julie arrive en 1 250,00 € et son échéance en 15/10/2026. Une colonne masquée, ou si étroite qu’elle n’affiche que des dièses, donne le même texte que si elle était visible.
Les majuscules d’un champ ne comptent pas, mais les accents si. Un champ qu’aucun en-tête ne porte, comme {Prenom} écrit sans accent, arrête donc tout avant le premier message, et la barre d’état donne son nom. Une cellule vide, elle, laisse un trou dans la phrase, d’où l’intérêt de remplir ces cases ou de filtrer la liste avant de lancer la macro.
Nommer le PDF de chaque e-mail dans la colonne Pièce jointe
La colonne Pièce jointe donne le fichier de chaque ligne, cherché dans le dossier du classeur quand la case ne porte que son nom. Pour un fichier rangé ailleurs, écris son chemin complet, qui est pris tel quel. Pour plusieurs fichiers dans un même message, sépare leurs noms par des points-virgules.
Un fichier introuvable, ou le nom d’un dossier écrit à la place d’un fichier, bloque la ligne, qui reçoit « Pièce jointe introuvable » suivi du nom. Si tous tes PDF vivent dans un autre dossier que le classeur, la ligne dossierPiecesJointes de la macro en donne le chemin.
Un classeur ouvert depuis OneDrive ou SharePoint peut avoir pour emplacement une adresse web, où la macro ne cherche pas les fichiers. Dans ce cas, écris le chemin complet de chaque PDF, ou celui de leur dossier sur la ligne dossierPiecesJointes.
Régler l’envoi direct, la copie et le compte d’envoi
Les réglages de la macro tiennent sur les lignes marquées À MODIFIER, en haut du code, où tu changes la valeur entre guillemets avant de la lancer. Le premier choisit le mode, et les autres ne servent que si ta liste, ton modèle ou ta boîte d’envoi diffèrent de ceux de Camille.
modeEnvoi = "brouillon"Le mode, livré sur brouillon, qui prépare un brouillon par ligne sans rien envoyer. Écris essai pour vérifier la liste sans ouvrir Outlook, et envoi seulement pour envoyer chaque message sans l’afficher.celluleObjet = "Message!B1"La cellule de l’objet du modèle, et celluleMessage, juste en dessous, celle du message.colonneEmail = "Email"L’en-tête de la colonne des adresses, seule colonne obligatoire. colonnePieceJointe, colonneCopie et colonneStatut donnent de même les en-têtes Pièce jointe, Copie et Statut, la colonne Statut étant créée après la dernière colonne si elle manque.dossierPiecesJointes = ""Le dossier où chercher les pièces jointes écrites sans chemin, celui du classeur quand la ligne reste vide.compteEnvoi = ""Le compte d’envoi, écrit tel qu’Outlook affiche son nom, le compte par défaut quand la ligne reste vide.feuilleListe = ""La feuille de la liste, la feuille active quand la ligne reste vide.
Si ta liste a une colonne Copie, les adresses de sa case passent en copie du message de la même ligne, séparées par des points-virgules. Une adresse mal formée y bloque la ligne, exactement comme dans la colonne des destinataires. Quand Outlook gère plusieurs boîtes, compteEnvoi choisit celle d’où part chaque message, et les brouillons vont alors dans les Brouillons de cette boîte-là plutôt que dans ceux de la boîte par défaut. Si aucun compte ne porte ce nom, la macro s’arrête avant le premier message, sans en préparer un seul.
Le mode envoi remet chaque message à Outlook sans l’afficher, et Outlook peut alors t’interrompre à chaque message. D’après Microsoft, il affiche l’avertissement « Un programme tente d’envoyer un courrier en votre nom », avec les boutons Autoriser et Refuser. Cela arrive quand ton antivirus est inactif ou périmé, ou quand le réglage Accès par programme d’Outlook demande de toujours avertir.
Le mode brouillon, lui, écrit chaque message et l’enregistre sans jamais le relire ni l’envoyer, et Outlook laisse alors la macro travailler sans rien afficher. Ce sont en effet la lecture des adresses ou du texte d’un message et son envoi qui déclenchent cet avertissement, d’après la documentation de Microsoft.
Une fois les brouillons relus, envoie-les un par un depuis Outlook plutôt que de relancer la macro en mode envoi. Dans ce mode, une ligne marquée « Brouillon créé » part en effet comme un nouveau message, et son brouillon reste dans le dossier Brouillons, à supprimer à la main. Seules les lignes marquées « Envoyé » sont toujours sautées, si bien que la macro ne renvoie jamais un message qu’elle a déjà envoyé.
Installer la macro de publipostage Outlook
Ouvre l’éditeur VBA avec Alt+F11 et colle le code dans un module neuf (menu Insertion, Module). Écris essai sur la ligne modeEnvoi, reviens à l’onglet Clients et lance Publipostage_Outlook avec Alt+F8, puis remets brouillon et relance-la une fois les statuts relus.
Connaître les limites du publipostage par macro
Outlook classique est obligatoire, installé et configuré avec ta boîte. Le nouvel Outlook et Outlook sur le web ne se pilotent pas par macro, et la macro est réservée à Excel pour Windows.
Ctrl+Z ne rend ni les statuts ni les brouillons. Un brouillon en trop se supprime à la main dans le dossier Brouillons, et un statut se vide pour refaire sa ligne.
Une ligne masquée, par un filtre ou à la main, est sautée sans statut, alors qu’une ligne sans adresse au milieu de la liste reçoit « Adresse manquante ».
La macro s’arrête à la dernière adresse de la colonne Email, si bien qu’une ligne de total placée dessous reste intacte.
Une feuille protégée arrête la macro avant le premier message, puisque la colonne Statut ne pourrait pas s’y écrire.
Le contrôle d’une adresse ne porte que sur sa forme, une arobase, un point après elle et aucune espace, jamais sur l’existence de la boîte.
Le mode envoi reste soumis aux limites de ta boîte, que Microsoft fixe par exemple à 30 messages par minute et 10 000 destinataires par jour pour un compte Microsoft 365 professionnel.
Envoyer un mail à partir d’une liste Excel sans Word
Sans Word ni macro, une formule écrit sur chaque ligne de la liste un lien mailto, qui ouvre au clic un nouveau message déjà adressé. Le lien s’ouvre dans ta messagerie par défaut, quelle qu’elle soit, mais il demande un clic et un envoi pour chaque ligne.
=LIEN_HYPERTEXTE("mailto:"&B2&"?subject="&URLENCODAGE("Facture "&C2)&"&body="&URLENCODAGE("Bonjour "&A2&",");"Écrire à "&A2)Écrite dans une colonne libre de la ligne de Julie, elle affiche Écrire à Julie, et son lien porte l’adresse julie.martin@example.com, l’objet Facture F-2026-101 et le texte Bonjour Julie suivi d’une virgule.
URLENCODAGE, apparue avec Excel 2013, change les espaces, les accents et la ponctuation en codes qu’un lien accepte, comme %20 pour une espace. LIEN_HYPERTEXTE fait ensuite du tout un lien cliquable, affiché sous le nom de chaque client. Ce lien ne doit pas dépasser 255 caractères, faute de quoi la formule renvoie #VALEUR!, ce qui réserve le texte du message à une phrase ou deux.
Pour une seule cellule, la fenêtre Insérer un lien hypertexte, qu’ouvre Ctrl+K, propose aussi une Adresse de courrier dans sa colonne Lier à. Elle ne sert pourtant qu’à une cellule à la fois, là où la formule se recopie sur toute la liste.

Aucune de ces deux méthodes ne joint de fichier, et chaque message reste à envoyer à la main. Pour automatiser l’envoi sans macro, Microsoft oriente vers Power Automate, dont un tutoriel envoie des rappels par e-mail d’après les données d’une feuille.
Quelle méthode choisir pour envoyer des mails en masse depuis Excel
Pour envoyer des mails en masse depuis Excel, le choix dépend surtout de la pièce jointe et de l’Outlook installé sur le poste. Pour une annonce identique à tous les clients, le publipostage de Word suffit, et la macro prend le relais dès qu’une facture diffère d’un client à l’autre. Le lien mailto reste l’outil d’une petite liste, quand tu préfères envoyer chaque message toi-même.
| Méthode | Pièce jointe par destinataire | Objet personnalisé | Messagerie | Relecture avant l’envoi |
|---|---|---|---|---|
| Publipostage de Word | Non, sauf le courrier fusionné lui-même | Non, le même pour tous | Outlook classique | Aperçu des résultats dans Word |
| Macro de cette page | Oui, un ou plusieurs fichiers | Oui, avec les colonnes | Outlook classique | Chaque brouillon, avant l’envoi |
| Lien mailto par formule | Non | Oui, avec les colonnes | La messagerie par défaut | Chaque message, envoyé à la main |
Tu as peut-être encore une question
Un publipostage produit un message par ligne d’une liste, envoyé depuis ta propre boîte et ton propre logiciel, alors qu’un mailing, ou emailing, passe par un service d’envoi en nombre qui gère les désinscriptions, les statistiques d’ouverture et la réputation de l’expéditeur. Le premier sert aux factures et aux relances, le second à la prospection et aux lettres d’information.
Outlook n’envoie pas 1 000 mails d’un coup, puisque Microsoft limite un compte Microsoft 365 professionnel à 30 messages par minute et 10 000 destinataires par jour, si bien qu’un publipostage de Word ou notre macro en mode envoi met, d’après ces limites, une bonne demi-heure à les faire partir. Un compte Outlook.com d’abonné Microsoft 365 s’arrête, lui, à 5 000 destinataires par jour, et la prospection relève d’un service d’emailing.
Plutôt que de créer une liste de distribution dans Outlook, la formule =JOINDRE.TEXTE(";";VRAI;B2:B8), disponible depuis Excel 2019 et dans Microsoft 365, réunit les adresses d’une colonne en une seule suite séparée par des points-virgules, que tu colles dans le champ À, ou Cci, d’un nouveau message. Tout le monde reçoit alors le même message, là où le publipostage en écrit un par personne.
Sur Mac, le publipostage vers Outlook se fait depuis Word pour Mac, qui envoie les messages par Outlook pour Mac à condition qu’il soit ta messagerie par défaut, comme l’explique l’aide de Microsoft, alors que notre macro VBA, qui pilote Outlook classique, est réservée à Excel pour Windows. Word pour Mac peut joindre le document fusionné au message, qui part alors sans texte.
Word envoie un message à l’adresse de chaque ligne sans aucune copie, et l’aide de Microsoft ne dit pas s’il accepte deux adresses dans une même case, alors que notre macro accepte dans la colonne Email plusieurs adresses séparées par des points-virgules ou des virgules, et met en copie celles d’une colonne Copie. Chaque adresse doit en avoir la forme, avec une arobase et un point après elle, sans quoi sa ligne est bloquée sans message.
Pour aller plus loin
Tout ce dont tu as besoin pour faire tourner tes macros et progresser sur Excel se trouve ici.

Télécharge notre cours Excel complet en PDF
Télécharger
Ton cours Excel gratuit
3 chapitres pour apprendre les bases et découvrir l'automatisation.
Voir le cours
Entraîne-toi sur nos 63 exercices corrigés
S’entraîner
Les macros Excel et le VBA expliqués simplement
Lire le guide
Activer les macros quand Excel les bloque
Voir comment