Réaliser un mailing personnalisé avec Outlook

Simplifier et automatiser la mise à jour des données dans nos reportings est un bon moyen de ne pas perdre de temps avec une tâche répétitive et sans valeur ajoutée.
Mais il y a une autre tâche fastidieuse qu'il ne faut pas oublier : envoyer le reporting personnalisé à chaque personne. Selon le nombre de destinataires, cela peut être très long.
Alors si vous ne voulez pas perdre une demi-journée à envoyer des mails, vous devriez lire cet article !


 

Présentation du fichier

Ce tutoriel permet de réaliser un mailing personnalisé et avec pièce jointe via Outlook. Si vous utilisez IBM Notes comme programme de messagerie, consultez cet article pour une version adaptée au logiciel.

Pour le mailing via Outlook, téléchargez le fichier en cliquant ici ou sur le bouton ci-dessous.

logo telecharger fichier

Vous retrouvez l'ensemble des explications dans l'onglet Guide.

Le fichier est composé de 2 feuilles de calcul :

  • Mail : On y rédige l'objet et du corps du mail avec une structure commune pour tous les destinataires, les champs à personnaliser sont précisés ici
  • Destinataires : On liste les destinataires avec leurs noms et adresses mails ainsi que les fichiers à joindre

 

Rédiger le mail

Deux options sont possibles pour paramétrer le mail :

  • Editer dans Visual Basic Editor
  • Utiliser le formulaire dans la feuille Mail

Dans les deux cas, le mail est personnalisable pour chaque destinataire. On coche simplement l'option qui nous convient.

 

Utilisation du formulaire de la feuille Mail

Cette solution est la plus simple et la plus accessible.
L'objet et le corps du mail ont une structure commune à tous les destinataires. C'est ici que nous la renseignons, dans les deux champs prévus.

Personnalisation objet corps mail feuille calcul

Pour personnaliser le mail, on utilise les champs qui figurent dans le tableau des destinataires, dans la feuille du même nom.
On place le nom exact du champ, tel qu'il figure dans l'en-tête du tableau, entre des crochets doubles.

Champs personnalises mailing tableau destinataires

Les crochets doubles laissent la possibilité, si besoin, d'utiliser des crochets simples dans le texte du mail.
En revanche, dès qu'Excel rencontre '[[', il cherche une colonne qui porte le nom qui suit dans le tableau des destinataires. Si cette colonne n'existe pas, un message le signale et le mailing est annulé.

Controle champs personnalises mailing

Dans l'exemple, le nom du destinataire a été ajouté au début du mail.
Libre à vous d'ajouter d'autres champs au tableau si vous voulez compléter vos mails avec d'autres éléments.

Pour forcer un renvoi à la ligne au sein d'une cellule Excel, on utilise Alt+Entrée. La touche Entrée seule valide le contenu.

Mettre en forme le texte

Le texte saisi dans la cellule Excel est copié sans mise en forme dans le mail. L'envoi se fera donc comme texte brut.
Pour ajouter une mise en forme à votre mail, il faut alors le coder en HTML pour qu'Outlook puisse reconnaître le format.

Pour ce faire, vous pouvez entrer simplement le code dans la cellule Corps du mail. Cochez alors la case HTML pour qu'Outlook interprète ce code et le convertisse en mise en forme. Sans cela, les différentes balises seront considérées comme un texte brut et envoyées dans le corps du mail.

Personnalisation corps mail code HTML

Si vous ne connaisez pas le langage HTML, vous pouvez utiliser un éditeur en ligne pour vous aider à convertir votre mise en forme en code.

 

Edition du mail dans le code VBA

Ce mode d'édition s'adresse à ceux qui connaissent déjà le langage VBA et qui seront peut-être plus à l'aise dans cette interface.
Dans VBE, on modifie la procédure Mailing_Outlook située dans le Module1, l'ensemble du code y est disponible.
La partie concernant le contenu du mail se situe à partir de la ligne 69, avec une section pour l'objet (propriété .Subject) et une pour le corps (propriété .Body). Les deux sont entièrement modifiables.

Explications modifications code mailing

Le nom du destinataire est de nouveau placé dans le corps du mail.
Là encore, vous pouvez ajouter des champs au tableau. Ensuite, vous pouvez vous y référer, soit en utilisant leur nom, soit leur index au sein du tableau.

Si vous souhaitez consulter ou modifier le code VBA, vous pouvez commencer par lire notre tutoriel, cliquez ici pour retrouver la 1ère partie.

 

Ajouter un accusé de réception

La case Accusé de réception est plutôt parlante : cochez-la si vous souhaitez ajouter un accusé de réception aux mails que vous envoyez.
L'option fonctionne que vous ayez personnalisé le mail dans la feuille de calcul ou dans le code VBA.

Ajout accuse reception mailing
 

Créer le tableau des destinataires

Dans la feuille Destinataires figure un tableau avec un identifiant en point d'entrée.

Cet identifiant peut être assimilé à une personne : un matricule pour désigner un salarié, un numéro de zone pour un commercial...
Il peut aussi être assimilé à une entité : un code agence pour un point de vente, un code BU pour un service...

A vous de voir comment structurer le tableau en fonction de l'envoi que vous devez faire.

 

Adresses mail

Comme dans un mail classique, les trois champs A, Cc, Cci sont à votre disposition. Quelques consignes pour les compléter correctement.

  • Seul le champ A est obligatoire
  • Renseignez une ou plusieurs adresses dans chacun d'eux
  • Si vous renseignez plusieurs adresses, elles doivent être séparées un point-virgule ;

Tableau destinataires mailing

Avant envoi, le format des adresses est contrôlé selon la norme RFC 6530.
Si une adresse n'est pas à ce format, la ligne n'est pas traitée, le mail pas envoyé. Une notification d'erreur est affichée dans la colonne Envoi. En fin de procédure, vous pouvez ainsi corriger toutes les lignes avec le message 'Echec, adresse mail invalide'. Relancez alors la procédure une fois ces lignes modifiées.

La colonne Adresse de réponse vous permet d'ajouter une adresse de réponse différente de celle utilisée pour l'envoi du mail. Si vous laissez le champ vide, aucune adresse n'est ajoutée. En cas de réponse de votre destinataire, elle sera adressée directement à l'expéditeur.

 

Pièces jointes

L'utilitaire laisse la possibilité d'envoyer un mail sans pièce jointe. Dans ce cas, il suffit de laisser le champ vide.
En revanche, si on renseigne une adresse, un contrôle vérifie que le fichier existe bien à cette adresse. Si ce n'est pas le cas, une notification apparaît là aussi dans la colonne Envoi. Toutes les pièces jointes introuvables sont identifiées par le message 'Echec, adresse pièce jointe invalide'. Corrigez les adresses des fichiers et relancez l'envoi.

Comme pour les adresses mails, il est possible de renseigner plusieurs adresses de fichiers pour tous les ajouter en pièces jointes. Il suffit alors de séparer les différentes adresses par des points-virgules.

Vous pouvez utiliser une formule pour reproduire le même modèle d'adresse fichier et vous servir de l'identifiant, par exemple, pour distinguer les différentes versions. Regardez l'exemple dans le fichier joint.

Adresses pieces jointes formules
 

Autres champs

Nous pouvons donc aussi ajouter nos propres champs pour personnaliser le texte du mail. Le champ Nom du destinataire fait partie de ceux-ci, il est utilisé dans l'introduction du mail.

En revanche, les 5 champs dont nous avons parlé jusque-là (A, Cc, Cci, Adresse réponse et Pièce jointe) ne doivent être ni supprimés ni modifiés. Leur nom est utilisé dans la procédure d'envoi du mailing.
Si vous modifiez ces champs, il faudra corriger le code de la procédure également. Si vous ne les utilisez pas, ignorez-les simplement.

 

Lancer le mailing

Une fois toutes les options correctement réglées, on lance l'envoi en cliquant sur le bouton Envoi du mailing.

Bouton envoi mailing

Un message de confirmation avant envoi apparaît pour éviter tout lancement inopportun.

Message confirmation envoi mailing

Après validation, les lignes sont traitées une par une. Comme expliqué plus tôt, en cas d'erreur d'adresse, mail ou pièce jointe, l'envoi est bloqué et une notification est ajoutée dans la colonne Envoi.

Notification erreur envoi mailing

Comme vous le voyez ci-dessus, les lignes sans erreur avec succès affichent un simple 'Envoyé' dans la colonne Envoi.

Une fois l'ensemble des lignes traitées, utilisez donc cette colonne pour corriger les éventuelles lignes en erreur.
L'ensemble des mails envoyés se retrouve aussi dans le dossier Eléments envoyés de la boîte Outlook.

Mailing enregistrement elements envoyes Outlook
 

Quand utiliser cet utilitaire ?

En introduction, nous avons mentionné l'envoi de reportings Excel mais vous pouvez envisager bien d'autres applications dès lors que vous souhaitez un mail personnalisé pour chaque destinataire :

  • Envoi de mails d'informations sans pièce jointe (cf. section précédente pour personnaliser le corps du mail). Par exemple, notification de remboursement de notes de frais
  • Envoi de courriers individuels au format Word ou PDF. Par exemple, envoi de relevés de factures à vos clients

L'option du mail sans pièce jointe ressemble à ce qu'on peut faire via un publipostage dans Word. Les options de mise en forme seront plus riches si on procède ainsi mais cela nécessite une étape supplémentaire. Envoyer le mail directement via ce fichier sera donc plus rapide.
Si vous voulez apprendre à réaliser un publipostage dans Word, suivez ce lien.

Sinon, utilisez le fichier à chaque occasion où il pourra vous faire gagner du temps !
N'hésitez pas à nous dire si vous avez d'autres cas dans lesquels ce fichier vous est utile. Vous pouvez aussi nous dire si certains envois ne sont pas possibles en l'état. Nous verrons s'il est possible de modifier le fichier.

 

Abonnez-vous à la newsletter

Illustration couverture ebook 100 trucs et astuces pour Excel-ler au travail

Et recevez gratuitement l'ebook 100 trucs et astuces pour Excel-ler au travail (5€ sur Amazon)

Votre adresse mail ne sera pas communiquée et vous pourrez vous désabonner à tout moment.

Taggé , , , .Mettre en favori le Permaliens.

58 réponses à Réaliser un mailing personnalisé avec Outlook

  1. Laure dit :

    Bonjour, Je n’arrive pas à envoyer plusieurs pièces joints à une même adresse même en les séparant par « ; ». ce la a bien fonctionné pour les pièces jointes uniques, mais pas les multiples. J’ai une erreur d’exécution ’52’ qui apparaît que je n’arrive pas à déboguer.

    merci par avance pour votre retour

  2. Marcellin dit :

    Bonjour

    Votre outil est formidable et m’aider énormément pour avancer dans mes activités.
    J’aimerais toutefois savoir s’il est possible de préciser une adresse de l’expéditeur standard, différent de celle de la session utilisée

  3. Gaëlle PERICHON dit :

    Merci beaucoup pour tous vos partages et ce fichier extra !

  4. Camille Marsac dit :

    Bonjour,
    tout d’abord je dois vous dire que votre outil m’a littéralement fait économiser non seulement du temps, mais beaucoup d’argent, lors de nos envois de contrats de déneigement… MERCI !
    Mon souci à l’heure actuelle est que je viens d’être migrée sur Office 2016, et la macro ne fonctionne plus. Ça me renvoie une erreur d’exécution -2147467259 (80004005) disant : Nous avons besoin de connaître le destinataire. Vérifiez que vous avez entré au moins un nom.
    J’ai bien sûr entré un nom et un courriel valide. Si je vais dans le débogage VBA, ça m’amène à la ligne .SEND qui est surlignée.
    Que faire ??
    Merci d’avance !
    Camille

  5. Lynn dit :

    bonjour,

    merci pour votre application,

    pouvez vous m’aider, j’essaye d’envoyer une seule feuille en particulier de mon classeur pas l’ensemble du classeur.

    y’a t’il moyen d’extraire des feuilles en particulier? ( option 1)

    ou d’envoyer un tableau filtré ou trié ??? ( option 2)

    Merci d’avance

  6. Bearn.64 dit :

    Bonjour,
    En premier bravo pour votre programme super et que j’utilise tous les 15 jours.
    Depuis peu ma liste dépasse les 200 adresses et mon serveur de messagerie est limite a 200 à l’heure !!!
    Serait-il possible de rajouter une pause entre chaque email de 20 secondes.

    Merci

  7. Ludovic dit :

    Bonjour,
    Merci beaucoup pour cet outil. Malgré, les modifications de référence dans VBA, j’ai toujours l’erreur « DLL manquant ». Je suis sur Outlook 2013 (Outlook 15.0 Object Library). Avez-vous une solution ?

    Ludovic

  8. Patrick L dit :

    Bonjour,

    j’ai plusieurs boite mail, comment fair pour sélectionner une autre boite que @hotmail.com, si non l’application dans excel est génial
    Merci

  9. Tibo dit :

    Bonjour,
    Je suis en train de tester votre fichier qui est vraiment bien ! Chapeau !

    Je souhaiterais pouvoir définir l’objet du mail en fonction de mes destinataires.

    Par Exemple ajouter une colonne dans le tableau permettant d’intégrer les cellules de cette colonne dans l’objet.

    Est-ce que c’est faisable ?

    Merci

  10. ly dit :

    bonjour,

    merci pour votre fichier, ma spécificité est que l’objet du mail change aussi, comment adapter çà au code?

  11. Virginie dit :

    Bonjour,
    Un grand merci pour ce fichier / macros qui fonctionne à merveille ! Très utile et très sympa d’avoir partagé !
    Bonne continuation

  12. jean-marc dit :

    Bonjour
    votre formulaire est juste génial.
    y a t il une fonction qui permettrait d’importer dans le tableau des destinataires les données nécessaires pour l’envoi. Une sorte d’importation de données a partir d’un fichier texte avec une structure a respecter que l’on pourrait crée à partir d’un autre logiciel.
    Exemple j’ai une facturation, je génère les PDF de mes factures a envoyer et un fichier txt (par exemple) destinataire qui contient. LeS : nom du client, l’adresse du client, et fichier pdf de la facture associé … .
    Et dans votre formulaire la possibilité de vider le tableau en cours et d’importer ce fichier texte.
    Merci pour votre réponse
    Cordialement
    jm

    • JEAN-MARC dit :

      Voici le code pour Vider le tableau des destinatiares et remplir auto à partir d’un fichier texte delimited with TAB :

      Ligne enregistrement du fichier texte : PDF000.TXT

      « 1 », »B LA FONTAINE », »BOUCHERIE LA FONTAINE », »Livraison 20058595″, »c:\pdfs\pdf.pdf », »email1@bbox.fr »
      « 2 », »B LETO », »BOUCHERIE LETO », »Livraison 20058598″, »c:\pdfs\pdf_2.pdf », »email2@info.fr »
      « 3 » …

      Le code :
      Sub Vider()

      nombre_exemple = 0
      j = 0
      nombre_exemple = Range(« MailingList »).Rows.Count

      ‘Contrôle des adresses mails et pièces jointes avant envoi
      For j = 1 To Range(« MailingList »).Rows.Count Step 1

      strList = Range(« MailingList[Adresses Destinataire (A)] »).Cells(j).Value

      Range(« MailingList[Identifiant] »).Cells(j).Value =  »  »
      Range(« MailingList[Nom du destinataire] »).Cells(j).Value =  »  »
      Range(« MailingList[Adresses Destinataire (A)] »).Cells(j).Value = «  »
      Range(« MailingList[Adresses Copie (Cc)] »).Cells(j).Value = «  »
      Range(« MailingList[Adresses Copie cachée (Cci)] »).Cells(j).Value = «  »
      Range(« MailingList[Adresse de réponse] »).Cells(j).Value = «  »
      Range(« MailingList[Pièces jointes] »).Cells(j).Value =  »  »
      Range(« MailingList[Envoi] »).Cells(j).Value =  »  »

      ‘ MailingList.EntireRow.Delete ‘detruit toute les cellules de la ligne
      Next j

      Fichier = « C:\pdfs\PDF000.TXT »
      NbLignesParFeuille = 65536
      Separateur = « , »

      Dim Wb As Workbook
      Dim Counter As Double
      Dim Tableau() As String
      Dim i As Integer
      Dim ContenuLigne As String
      Dim zonetraite As String

      T1 = False
      T2 = False
      T3 = False
      T4 = False
      T5 = False
      T5 = False
      mk = 0

      Application.ScreenUpdating = False

      Counter = 1
      ‘ Set Wb = Workbooks.Add(1)

      ‘Ouverture du fichier txt
      Open Fichier For Input As #1
      Do While Not EOF(1)
      ‘ If Counter > NbLignesParFeuille Then
      ‘ Wb.Worksheets.Add
      ‘ Counter = 1
      ‘ End If

      Line Input #1, ContenuLigne
      ‘découpe la chaine en fonction des espaces  »  »
      ‘le résultat de la fonction Split est stocké dans un tableau
      Tableau = Split(ContenuLigne, Separateur)

      ‘boucle sur le tableau pour extraire les données

      For i = 0 To UBound(Tableau)
      ‘ ActiveSheet.Cells(Counter, i + 1) = Tableau(i)

      ‘ Range(« MailingList[Identifiant] »).Cells(i + 1).Value = Tableau(i)
      ‘ Range(« MailingList[Nom du destinataire] »).Cells(i + 1).Value = Tableau(i)
      ‘ Range(« MailingList[Adresses Copie (Cc)] »).Cells(i).Value = «  »
      ‘ Range(« MailingList[Adresses Copie cachée (Cci)] »).Cells(i).Value = «  »
      ‘ Range(« MailingList[Adresse de réponse] »).Cells(i).Value =  »  »
      ‘ Range(« MailingList[Pièces jointes] »).Cells(i).Value = « c:\pdfs\pdf1.pdf »
      ‘ Range(« MailingList[Envoi] »).Cells(i + 1).Value = Tableau(i)

      ‘ MsgBox Tableau(i)

      If T6 = False And T5 = False And T4 = False And T3 = False And T2 = False And T1 = False Then
      T1 = True
      mk = mk + 1
      ‘ MsgBox mk
      End If

      If T6 = True Then
      zonetraite = LTrim(Tableau(i))
      zonetraite = RTrim(zonetraite)
      zonetraite = Replace(zonetraite, Chr(9), «  ») ‘tabulation par rien
      zonetraite = Left(zonetraite, Len(zonetraite) – 1) ‘ ici je stock la zone du tableau dans « Zonetraite » en enlevant le dernier caractère  »
      Range(« MailingList[Adresses Destinataire (A)] »).Cells(mk).Value = Mid$(zonetraite, 2) ‘ ici je stock « zonetraite » dans le tableau affiché en enlevant le premier caractère  »
      T6 = False
      End If

      If T5 = True Then
      zonetraite = Left(Tableau(i), Len(Tableau(i)) – 1) ‘ ici je stock la zone du tableau dans « Zonetraite » en enlevant le dernier caractère  »
      Range(« MailingList[Pièces jointes] »).Cells(mk).Value = Mid$(zonetraite, 2) ‘ ici je stock « zonetraite » dans le tableau affiché en enlevant le premier caractère  »
      T5 = False
      T6 = True
      End If

      If T4 = True Then
      zonetraite = Left(Tableau(i), Len(Tableau(i)) – 1) ‘ ici je stock la zone du tableau dans « Zonetraite » en enlevant le dernier caractère  »
      Range(« MailingList[Envoi] »).Cells(mk).Value = Mid$(zonetraite, 2) ‘ ici je stock « zonetraite » dans le tableau affiché en enlevant le premier caractère  »

      T4 = False
      T5 = True
      End If

      If T3 = True Then
      zonetraite = Left(Tableau(i), Len(Tableau(i)) – 1) ‘ ici je stock la zone du tableau dans « Zonetraite » en enlevant le dernier caractère  »
      Range(« MailingList[Nom du destinataire] »).Cells(mk).Value = Mid$(zonetraite, 2) ‘ ici je stock « zonetraite » dans le tableau affiché en enlevant le premier caractère  »

      T3 = False
      T4 = True
      End If

      If T2 = True Then
      T2 = False
      T3 = True
      End If

      If T1 = True Then
      zonetraite = Left(CStr(Tableau(i)), Len(CStr(Tableau(i))) – 1) ‘ ici je stock la zone du tableau dans « Zonetraite » en enlevant le dernier caractère  »
      Range(« MailingList[Identifiant] »).Cells(mk).Value = Mid$(zonetraite, 2) ‘ ici je stock « zonetraite » dans le tableau affiché en enlevant le premier caractère  »
      T1 = False
      T2 = True
      End If

      Next i

      Counter = Counter + 1
      Loop
      Close #1

      Application.ScreenUpdating = True
      MsgBox « Importation des envois terminée »

      End Sub

  13. Aymeline dit :

    Bonjour,
    Je reviens à nouveau vers vous concernant ce fichier très pratique. Nous recevons bien les accusés réception mais malgré cela certains clients nous disent n’avoir pas reçu notre mailing. Cela serait dû à l’envoi de trop nombreux mails en même temps, ce qui pousserait les serveurs des destinataires à bloquer notre e-mail même si nous figurons dans leurs contacts. Oulook permet un envoi différé des e-mails, peut-on le configurer via la macro ? Le mieux serait de pouvoir choisir l’écart entre chaque e-mail &/ou le nombre d’emails max / minute.

    Merci d’avance

    Cordialement

  14. Bonsoir,
    Pour ma part, je rencontre un soucis. J’ai un message m’indiquant que la pièce jointe n’existe pas dans le chemin indiqué. Pourtant elle y sont bien. Je suis en réseau. C’est peut être le problème. Mon chemin commence par \\lenom de ma boite etc et non C:\…comme pour votre exemple. il y a t’il une solution?

    • Aymeline dit :

      Bonjour,
      Vous pouvez envoyer des fichiers depuis un serveur (c’est ce que je fais), à condition que vous y soyez bien connecté au moment de faire l’envoi du mailing et que les chemins soient exacts (un espace de travers et le fichier n’est pas reconnu).

      Pour copier le chemin d’un fichier, faire Maj (la flèche) + clic droit sur le fichier en question puis « Copier en tant que chemin d’accès », et là vous êtes sûr que le chemin fichier est le bon 😉

      Bonne année

  15. Céline dit :

    Bonjour,
    Merci pour votre outil.
    Une question :
    peut on mettre en pièce jointe un dossier et ainsi récupérer tous les fichiers du dossier.

    Merci

  16. Aymeline dit :

    Bonjour,
    Je reviens de nouveau vers vous à propos de ce fichier très pratique.
    Une adresse mail contient le signe « & » et est détectée en erreur par la macro. Elle est fonctionnelle. Pour envoyer le mailing on est obligés de la supprimer, y a t’il une solution ?

    En outre la liste des destinataires est manipulée par plusieurs personnes plus ou moins rigoureuses dans la saisie d’adresse e-mail (j’ai retrouvé des accents, des virgules à la place de points…). Est-il possible de supprimer automatiquement les lignes concernées par les adresses mails que la macro détecte en erreur, et d’envoyer un mail de rapport d’erreur contenant cette ligne pour le signaler à l’adresse figurant dans le champ « Répondre à », ou à défaut à l’expéditeur du mailing ?
    Quelque chose comme « La ligne suivante a été supprimée de la liste des destinataires car l’adresse e-mail est invalide »

    Merci encore

    • Jean-Rémy dit :

      Bonjour Aymeline,

      Je vous propose de télécharger à nouveau le fichier. Voici les modifications que j’y ai apportées :

      • Ajout de & à la liste des caractères autorisés
      • Ajout d’une colonne Envoi signalant les éventuelles erreurs en cours de procédure

      Une fois tout le tableau traité, utilisez cette colonne pour retrouver les mails partis sans erreur (‘Envoyé’) et ceux qui ont été bloqués (‘Echec’).
      Le commentaire précise pourquoi le mail n’a pas pu partir : erreur d’adresse mail ou de pièce jointe.

      Ainsi, les erreurs ne sont plus bloquantes pour le reste de la liste. Et elles ne sont pour autant pas supprimées, ce qui permet de les corriger facilement, au lieu de les recréer en cas de suppression.

      J’espère que cette solution vous convient.
      N’hésitez pas à me dire ce que vous en pensez.

      Bonne journée
      Jean-Rémy

      • Aymeline dit :

        Bonjour,
        Merci beaucoup pour ces modifications.
        C’est une bonne idée de ne pas supprimer les lignes invalides, mais la personne qui envoie le mailing étant différente des personnes qui gèrent la liste des destinataires, il est important d’avoir un rapport d’erreur envoyé par mail (à l’adresse de réponse si renseignée et à l’expéditeur du mailing). Je ne maitrise pas suffisamment l’envoi de mail en VBA pour le faire moi-même…

        Merci encore

        Bonne journée

      • Aymeline dit :

        Bonjour,
        Après avoir galéré un peu j’ai réussi à intégrer l’envoi d’un rapport d’alerte. En revanche, Est-ce qu’on peut intégrer des images dans le corps de l’e-mail (logo par exemple) ? Image intégrée à l’e-mail et non pas un simple lien.

        Merci

  17. Bonjour Jean-Rémy,
    Votre travail est exceptionnel. J’ai gagné tellement de temps en l’utilisant hier soir.

    J’ai toutefois remarqué que pour certaines adresses emails se terminant par .info, il est impossible d’envoyer d’emails à ces adresses. Le message d’erreur indique « adresse mail invalide ». J’ai été obligé de les retirer de ma liste.
    N’y a t-il pas un moyen d’intégrer ce type d’adresses e-mail?

    Merci infiniment pour votre réponse.

  18. Aymeline dit :

    Bonjour,
    Merci pour la macro et les solutions dans les commentaires, les premiers tests sont nickel. Peut-on ajouter un champ « Répondre à », afin que quelle que soit la personne qui envoie le mailing le destinataire réponde toujours à la personne qui gère son compte ? Si oui comment ?
    Je fais un peu de vba mais là ça dépasse mes maigres compétences…

    Encore merci, j’ai pas mal cherché pour trouver une solution de mailing qui convienne à notre système de fonctionnement !

    • Jean-Rémy dit :

      Bonjour Aymeline,

      Merci beaucoup pour votre message.
      Je comprends tout à fait votre besoin, aussi je vous propose de télécharger cette nouvelle version du fichier.
      J’ai ajouté au dernier tableau une colonne ‘Adresse de réponse’. Il vous suffit de renseigner l’adresse à laquelle la réponse sera adressée automatiquement. Si le champ reste vide, la réponse se fait simplement à celle d’expédition.

      J’espère que cela répond à votre demande.

      Au plaisir de vous revoir sur le site.
      Jean-Rémy

  19. coolmajesty dit :

    Bonjour, j’essaie d’indiquer plusieurs pièces jointes en format .pdf mais cela me donne toujours une « erreur de formule » en renvoyant vers votre première formule, avec le .pdf surligné. Comment faire ?
    Merci !

    • Jean-Rémy dit :

      Bonjour,

      Comme pour les adresses mails, vous pouvez renseigner plusieurs pièces jointes en séparant leurs adresses par des points-virgules.
      L’adresse des fichiers fait-elle appel à une formule ou s’agit-il de la même adresse pour tous les destinataires ?

      Dans l’exemple, la formule est utilisée pour prendre en compte l’id comme variable. Vous pouvez le remplacer par un autre champ mais il faut alors penser à laisser les guillemets pour la partie de l’adresse fixe.
      Sans cela, la formule générera une erreur.
      Le point-virgule de séparation entre les adresses doit donc lui aussi figurer à l’intérieur de guillemets, comme ci-dessous.

      Adresses pieces jointes multiples

      J’espère que c’est plus clair maintenant 🙂
      N’hésitez pas sinon.

      Jean-Rémy

      • coolmajesty dit :

        Merci ! À force d’essayer, j’avais réussi à trouver qu’il fallait mettre à l’intérieur des guillemets. J’ai un autre problème plus épineux. Une fois toutes mes données prêtes, je clique sur « Envoi du mailing » et ça génère une erreur dans le VBA à la ligne « Sub Mailing_Outlook() », qui devient jaune. Que faire ??

        • coolmajesty dit :

          Bon, je me suis débrouillée toute seule en faisant des recherches sur le net. Pour ceux que ça intéresse, lorsque le message « Projet ou bibliothèque manquante » apparaît dans VBA, il faut sortir du déboggeur, redémarrer VBA, aller dans Outils>Références, décocher les références manquantes et/ou les remplacer par les versions disponibles. YOUPI ça fonctionne !

  20. Clélia dit :

    Bonjour,
    J’ai finalement réussi à faire fonctionner la macro, elle est vraiment super !
    Une question cependant : est-il possible de demander des AR sur les mails ? Si oui, à quel endroit et quel code ?

    Merci d’avance

    • Jean-Rémy dit :

      Bonsoir Clélia,

      Merci pour vos messages et désolé pour ma réponse tardive. Je suis ravi que l’outil corresponde à vos attentes.

      Pour ce qui est de l’accusé de réception, je vous propose de télécharger à nouveau le fichier.
      Vous pouvez maintenant demander un accusé de réception, simplement en cochant la case dans l’onglet de paramétrage du mail.

      S’y trouve aussi l’option pour coder le mail en HTML que j’avais ajoutée suite à un précédent commentaire. Là encore, il suffit de laisser la case décochée pour ignorer cette option.

      J’espère que cette solution vous convient. N’hésitez pas à me dire sinon.

      Bonne soirée
      Jean-Rémy

      • Clélia dit :

        Bonjour,

        C’est parfait ! Merci beaucoup de mettre à disposition des outils aussi performant et permettant d’optimiser notre temps 🙂

        Cordialement,

  21. Clélia dit :

    Bonjour,

    Je suis en version Outlook 15.0 et je n’arrive pas à faire fonctionner cet outil qui a l’air super.
    Je ne sais pas comment changer la référence en 14.0 ?
    Soit le fichier m’indique « Projet ou bibliotheque introuvable au niveau de : dim oApp As Outlook.Application. « , soit ça mouline et ça ne donne rien.

    Pouvez-vous m’aider svp ?

    un grand merci d’avance

  22. Marion dit :

    Merci, cet outil est parfait !

  23. Spassky dit :

    Bonjour,

    Votre outil est formidable!
    Mais étant néophyte en VBA & co, je ne parviens pas à saisir une bonne adresse pour joindre un document. L’envoi est bloqué.
    Pouvez-vous svp me détailler ce qu’il faut exactement changer dans la formule pour que cela fonctionne?

    Merci d’avance!

    Anne

    • Jean-Rémy dit :

      Bonjour Anne,

      Merci pour votre message !

      Dans le champ Adresse il suffit de renseigner un chemin d’accès à un fichier. Vous le trouvez par exemple dans l’explorateur Windows, il ressemble à quelque chose comme ça : C:\Users\Utilisateur\Documents\Un fichier Word exemple.docx

      L’exemple fourni contient une formule pour éviter de renseigner les adresses une par une. Mais dans ce cas, les fichiers sont tous situés dans le même dossier et avec un nom similaire. On utilise alors les informations du tableau pour distinguer les fichiers entre eux, et joindre le bon à chaque mail.
      Prenons un exemple de formule : = »C:\Dossier pour mailing\Courrier à envoyer « &[@[Nom du destinataire]]& ».docx ».

      • Tous les fichiers à envoyer sont le dossier ‘C:\Dossier pour mailing\’ : ici vous mettez l’adresse du dossier où sont enregistrés vos fichiers à envoyer
      • Leurs noms commencent par ‘Courrier à envoyer ‘ : vous le remplacez par la partie commune de vos noms de fichiers
      • Le nom de la personne est ajouté pour différencier les fichiers [@[Nom du destinataire]] : vous pouvez utiliser une autre colonne du tableau et la sélectionner pour vous aider à identifier le fichier de chaque destinataire
      • L’extension ‘.docx’ termine le nom du fichier : vous pouvez compléter le nom des fichiers par un nouveau texte si besoin, modifiez ensuite l’extension pour qu’elle corresponde à votre type de fichier

      Si vos fichiers ont des noms complètement différents, vous pouvez aussi supprimer la formule et simplement copier les adresses une à une dans la colonne. Si vous n’avez pas beaucoup de mails à envoyer, ça reste une bonne option.

      En espérant que vous y voyez plus clair, n’hésitez pas à revenir vers moi si ce n’est pas le cas.
      Bonne journée
      Jean-Rémy

  24. SA dit :

    Bonjour

    C’est l’outil Références VBA qui faisait défaut. J’ai du changer la référence Outlook 16.0 Obkject Library par le 14.0.

    Super outil et puis le traducteur HTML c’est excellent

    Merci beaucoup

    Sylvie

    • Jean-Rémy dit :

      Bonsoir Sylvie,

      Désolé pour cette réponse tardive.
      Ravi de voir que vous avez trouvé une solution à votre problème et que l’outil vous plait.

      Merci en tout cas pour vos commentaires.
      N’hésitez pas à revenir vers moi si besoin.

      Bonne soirée
      Jean-Rémy

  25. ALAUX dit :

    Bonjour
    Cette outil est super mais je ne peux pas le tester. j’ai un message Projet ou bibliotheque introuvable au niveau de : dim oApp As Outlook.Application
    Est-ce un probleme de configuration Escel ?

    Merci
    Sylvie

  26. Dan C. dit :

    Bonjour. Merci bcp pour la modification avec html (je ne peux pas répondre sous votre réponse, je ne sais pas pkoi).
    Sinon, ou avez vous appris le VBA ?
    Avez vous un bon bouquin pour commencer svp ? avec des visuels lol ! :-).

    Merci.
    Daniel

  27. daniel couvidat dit :

    Bonjour.
    Et pour joindre deux pièces jointes ou plus par mail ? C’est possible ?

    Je suppose que pour un publipostage avec word, cela nécessite bcp de changement, n’est ce pas ?

    En tout cas, merci beaucoup !

    • Jean-Rémy dit :

      Bonjour Daniel,

      Merci pour votre commentaire !
      Comme précisé à Myriam ci-dessous, je viens de corriger le fichier. Téléchargez-le à nouveau et renseignez les adresses de fichiers en les séparant par des points-virgules dans la colonne appropriée. Ils seront alors tous joints au même mail.

      Pour le publipostage Word, je ne suis pas sûr de bien comprendre votre demande.

      • Si vous souhaitez simplement envoyer un document Word, pas de problème, tous les types de fichiers sont pris en compte dans les pièces jointes.
      • Si vous préférez envoyer un mail à partir d’un document Word publiposté, il existe une fonctionnalité pour le faire directement depuis Word. Nous l’avons évoqué dans l’article consacré aux publipostages.
      • Si vous souhaitez enregistrer les courriers publipostés puis les envoyer individuellement en pièce jointe par mail, peut-être que cet article peut vous convenir. Vous pourrez y télécharger un autre fichier pour enregistrer au format PDF tous les courriers individuels d’un publispostage. Il ne reste alors plus qu’à les lister dans la colonne ‘Pièces jointes’ de votre tableau !

      J’espère que l’une de ces solutions vous convient. N’hésitez pas à me dire si vous aviez autre chose en tête.

      Bonne soirée
      Jean-Rémy

      • daniel C. dit :

        Bonjour.
        L’avantage de Word, c’est pour la mise en page du mail.
        Il ne s’agit pas d’envoyer le mail en piece jointe, mais bel et bien d’avoir le mail fait sous word, et d’avoir par mail, une (ou plusieurs) piece(s) jointe(s) différentes. (comme avec le tableau excel).

        • Jean-Rémy dit :

          Bonsoir Daniel,

          Pour ajouter une mise en forme, il faut en réalité coder le mail en HTML. Si vous ne connaissez pas le langage, vous pouvez passer par un éditeur en ligne comme celui-ci. Après avoir entré et mis en forme votre texte, vous pouvez récupérer le code qui correspond. On pourrait imaginer que ce code vienne remplacer le texte simple dans le cadre ‘Corps du mail’.
          Il faudra ensuite faire une simple correction dans le fichier Excel pour intégrer le corps du message en HTML et non en texte brut.

          L’autre solution que je vois est de passer par un modèle de mail enregistré. Vous créez et mettez en forme le mail dans Outlook puis vous l’enregistrez comme modèle. Il faut ensuite modifier la macro pour qu’elle crée un mail à partir du modèle plutôt qu’un mail vierge. Cette approche me paraît plus lourde et moins pratique pour la personnalisation.

          Dites-moi quelle solution vous convient le mieux pour que je puisse modifier le fichier en conséquence.

          Bien à vous
          Jean-Rémy

          • Daniel C. dit :

            Bonjour

            la 1ere lol !
            Mais tout en laissant le choix. Soit on passe par l’éditeur en ligne, soit on passe par excel.

            oui, je sais, je suis chi…. pénible ! 🙂

          • Jean-Rémy dit :

            Bonsoir Daniel,

            Je vous propose de retélécharger le fichier.
            La seule modification par rapport à la version précédente est la case à cocher ‘HTML’ que j’ai rajoutée dans la feuille ‘Mail’. Si elle est cochée, le corps du mail est inséré en HTML sinon en texte brut.
            J’espère que cela vous convient.

            Bonne soirée
            Jean-Rémy

  28. Myriam dit :

    Bonjour,
    Merci beaucoup, c’est un super outil…
    Par contre, comment peut-on faire si on doit envoyer à chaque destinataire plusieurs pièces jointes (ex. courrier et tableau) ?

    • Jean-Rémy dit :

      Bonjour Myriam,

      Merci pour votre commentaire !
      Pour répondre à votre question, je vous invite à télécharger le fichier à nouveau. Je l’ai corrigé pour que vous ayez la possibilité d’envoyer plusieurs pièces jointes.
      Il suffit de saisir les adresses de fichiers dans le champ prévu en les séparant par des points-virgules, comme pour les adresses mails.

      J’espère que cela vous convient.

      Bonne soirée
      Jean-Rémy

  29. Nathalie dit :

    Bonjour et merci beaucoup pour ce partage !

    • Jean-Rémy dit :

      Bonjour et merci à vous pour votre commentaire 🙂
      Au plaisir de vous revoir sur le site !

      • auffret dit :

        Bonjour,
        merci pour votre outil, mais j’ai un message d’erreur lors du lancement de la macro :
        ERREUR DE COMPILATION
        PROJET OU BIBLIOTHEQUE INTROUVABLE
        sur la commande
        Dim objRegExp As New RegExp

        avez vous une idée d’où cela peut venir ?
        merci

        • Aymeline dit :

          Bonjour,
          La réponse se trouve parmi les commentaires : c’est lié à votre version d’Outlook différente de celle paramétrée dans le fichier :
          « Pour ceux que ça intéresse, lorsque le message « Projet ou bibliothèque manquante » apparaît dans VBA, il faut sortir du déboggeur, redémarrer VBA, aller dans Outils>Références, décocher les références manquantes et/ou les remplacer par les versions disponibles. YOUPI ça fonctionne ! »
          « J’ai du changer la référence Outlook 16.0 Obkject Library par le 14.0. »

          • Gusayn dit :

            Bonjour, j’ai exactement le même problème mais est-ce qu’il existe une solution pour éviter de « choisir au hasard » les références manquantes?

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.