![Comment envoyer des emails avec pièce jointe en automatique avec Gmail](https://dmo-formation.com/wp-content/uploads/2023/05/envoyer-email-macro-vba-1.png)
Comment envoyer des emails avec Excel en automatique avec pièces jointes 🧠 (code VBA)
![Envoyer des emails code VBA Excel](https://dmo-formation.com/wp-content/uploads/2023/05/EnvoyerEmail_VFinale-1024x587.jpg)
Sommaire
Envoyer des emails en automatique : quelles applications ?
C’est fou ce qu’on peut faire avec une macro Excel.
On peut automatiser l’envoi de ses emails avec Excel à partir de son tableau de gestion et grâce à une macro en VBA.
Concrètement, tu peux gagner 45 min par jour en automatisant tes envois.
Excel peut te permettre de faire par exemple les choses suivantes :
– Relancer par email 35 clients en retards en 1 clic
– Envoyer ton fichier de suivi par email en 1 clic
– Personnaliser l’envoie d’un email et envoyer en masse des courriers électroniques
Bon, je sais ce que tu penses.
“Moi, je sais pas coder en VBA”
“Je suis nul en VBA, j’y connais rien”
Et bien bonne nouvelle, dans cet article je te donne le code de la macro VBA pour envoyer un email à copier coller.
Je te guide pas à pas même si tu n’as jamais fait çà pour personnaliser ce code source.
Si tu appliques ce code VBA dans Excel, tu pourras crier victoire en gagnant un temps énorme grâce à l’envoie de mails automatisé avec Excel.
Si tu es allergique au code, pas de soucis…
![](https://dmo-formation.com/wp-content/uploads/2023/05/bouche-bee.gif)
Tu peux aussi envoyer un email SANS CODER en VBA grâce à l’article suivant :
Envoyer un email avec Excel sans VBA
Sinon la suite va te plaire et répondre à ce que tu cherches pour envoyer des emails grâce à Excel et le code VBA à copier plus bas.
1. Les pré requis avant d'envoyer des emails dans Excel
Afin d’envoyer des emails grâce à Excel, il te faut vérifier des prérequis et des détails techniques pour envoyer des e-mails depuis Excel avec Outlook, à la fois sous Windows et sous Mac OS.
-
- Avoir Microsoft Excel : Assure-toi d'avoir Microsoft Excel installé sur ton ordinateur. Si tu utilises une version récente de Windows, il y a de fortes chances que tu aies déjà Excel.
- Vérifier la version d'Outlook : Vérifie si tu as Outlook installé sur ton ordinateur. Ouvre Outlook et assure-toi qu'il fonctionne correctement. Si tu ne l'as pas installé, tu devras d'abord l'installer pour pouvoir envoyer des e-mails depuis Excel.
- Paramètres de compte : Dans Outlook, vérifie que tu as configuré un compte de messagerie valide et que tu peux envoyer des e-mails depuis ce compte. Assure-toi d'avoir les informations d'identification (adresse e-mail et mot de passe) pour ce compte.
- Activer les références VBA : Dans Excel, va à l'éditeur VBA en appuyant sur Alt + F11.Clique ensuite sur "Outils" dans la barre de menus, puis sur "Références". Assure-toi que la référence "Microsoft Outlook Object Library" est cochée. Si ce n'est pas le cas, cherche-la dans la liste et coche-la. Cela permettra à Excel de reconnaître les objets d'Outlook dans le code VBA.
1 Avoir Microsoft Excel pour Mac :
Tout d'abord, assure-toi d'avoir Microsoft Excel pour Mac installé sur ton ordinateur.
Vérifie si tu as déjà Excel en le recherchant dans le dossier "Applications".
2. Vérifier la version d'Outlook pour Mac :
Si tu as installé Outlook pour Mac, ouvre-le et assure-toi qu'il fonctionne correctement. Si tu ne l'as pas installé, tu devras d'abord l'installer pour pouvoir envoyer des e-mails depuis Excel.
3. Paramètres de compte :
Dans Outlook pour Mac, vérifie que tu as configuré un compte de messagerie valide et que tu peux envoyer des e-mails depuis ce compte.
Assure-toi d'avoir les informations d'identification (adresse e-mail et mot de passe) pour ce compte.
4. Vérifier les limitations de VBA sur Mac :
Il est important de noter qu'il existe certaines limitations avec VBA sur Mac. Toutes les fonctionnalités disponibles sur Excel pour Windows peuvent ne pas être disponibles sur Excel pour Mac. Vérifie si les fonctionnalités d'envoi d'e-mails depuis Excel avec Outlook sont prises en charge dans la version d'Excel que tu utilises sur ton Mac.
En résumé,
✓ assure-toi d’avoir Microsoft Excel et Outlook installés et fonctionnant correctement,
✓ configure un compte de messagerie valide dans Outlook,
✓ active les références VBA nécessaires dans Excel pour Windows,
✓ vérifie les limitations éventuelles de VBA sur Excel pour Mac.
Pense aussi à enregistrer ton fichier excel avec l’extension qui gère les macros Excel .xlsm et à activer l’option suivante si tu es sur Windows “Microsoft Outllok X.X Object Library”
![Envoyer un email avec Outlook grâce à Excel](https://dmo-formation.com/wp-content/uploads/2023/05/envoyer-un-mail-outlook-configuration.png)
Si tout est en ordre, tu devrais être prêt à envoyer des emails depuis Excel avec Outlook ! Et automatiser ton travail en 1 clic.
Tout en UN
TOUS mes tutoriels en 1 seul fichier Excel
Tout est là
TOUS mes tutos classés par thème avec lien du fichier de démonstration et lien youtube +3 ans de travail
2. Envoyer des emails avec le code VBA
Envoyer un email grâce à une macro Excel permet d’éviter de créer un nouveau message à la main, d’attacher le fichier et de l’envoyer manuellement.
Le code suivant permet d’envoyer le contenu de la feuille Excel par Email, par l’application Outlook.
Tu peux copier coller ce code source VB pour envoyer un email avec Excel grâce à la macro suivante.
📌 Méthode d'envoi Excel VBA Explications
Ce code source VBA suivant réalise les tâches suivantes :
– copie le contenu de la feuille Excel actuelle dans le Presse-papiers,
– crée un fichier temporaire au format Excel,
– colle le contenu dans ce fichier,
– l’attache à l’e-mail et l’envoie.
Ensuite, il ferme le fichier temporaire et le supprime.
Pour Windows
'Code source dmo-formation.com
Sub EnvoyerFeuilleExcelParEmail()
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim Destinataire As String
Dim Sujet As String
Dim Corps As String
Dim Feuille As Worksheet
Dim Plage As Range
Dim FichierTemp As String
'Paramètres de l e-mail
Destinataire = "adresse@email.com"
Sujet = "Feuille Excel"
Corps = "Voici le contenu de la feuille Excel."
' Définir la feuille Excel actuelle
Set Feuille = ActiveSheet
' Copier le contenu de la feuille dans le Presse-papiers
Feuille.Copy
Set Plage = ActiveSheet.UsedRange
Plage.Copy
' Créer un fichier temporaire pour coller le contenu
FichierTemp = Environ$("temp") & "\" & Format(Now, "dd-mm-yyyy hh-mm-ss") & ".xlsx"
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
' Enregistrer le fichier temporaire
ActiveWorkbook.SaveAs FichierTemp
' Créer une instance de l'application Outlook
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
' Paramètres de l'e-mail
.To = Destinataire
.Subject = Sujet
.Body = Corps
' Attacher le fichier temporaire
.Attachments.Add FichierTemp
' Envoyer l'e-mail
.Send
End With
' Fermer le fichier temporaire et supprimer le fichier
ActiveWorkbook.Close SaveChanges:=False
Kill FichierTemp
' Libérer les objets OutlookMail et OutlookApp
Set OutlookMail = Nothing
Set OutlookApp = Nothing
' Message de confirmation
MsgBox "L'e-mail a été envoyé avec succès !"
End Sub
🔔 Et si ce code VBA ne marche pas pour toi...
Assures toi de remplacer “adresse@email.com” par l’adresse e-mail du destinataire souhaité.
C’est logique mais tu as peut être oublié de le modifier.
Tu peux également personnaliser le sujet et le corps de l’e-mail en modifiant les variables
Sujet
et Corps
dans le code.
Note que ce code utilise l’application Outlook pour envoyer l’e-mail.
Assures toi que tu as Outlook installé et configuré sur ton ordinateur pour que cela fonctionne correctement. (revoir les pré requis au début de cet article)
Si tu veux un fichier qui marche directement sans perdre ton temps, télécharge mon fichier Excel sur le bouton plus haut.
Pour Mac
'Code source dmo-formation.com
Sub EnvoyerFeuilleExcelParEmailSurMac()
Dim MailApp As Object
Dim MailItem As Object
Dim Destinataire As String
Dim Sujet As String
Dim Corps As String
Dim Feuille As Worksheet
Dim Plage As Range
Dim FichierTemp As String
' Paramètres de l'e-mail
Destinataire = "adresse@email.com"
Sujet = "Feuille Excel"
Corps = "Voici le contenu de la feuille Excel."
' Définir la feuille Excel actuelle
Set Feuille = ActiveSheet
' Copier le contenu de la feuille dans le Presse-papiers
Feuille.Copy
Set Plage = ActiveSheet.UsedRange
Plage.Copy
' Créer un fichier temporaire pour coller le contenu
FichierTemp = Environ$("TMP") & "/FeuilleExcel_" & Format(Now, "dd-mm-yyyy_hh-mm-ss") & ".xlsx"
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
' Enregistrer le fichier temporaire
ActiveWorkbook.SaveAs FichierTemp
' Créer une instance de l'application Mail
Set MailApp = CreateObject("Mail.Application")
Set MailItem = MailApp.CreateItem(0)
With MailItem
' Paramètres de l'e-mail
.To = Destinataire
.Subject = Sujet
.Body = Corps
' Attacher le fichier temporaire
.Attachments.Add FichierTemp
' Envoyer l'e-mail
.Display ' Utilise .Send à la place de .Display pour envoyer automatiquement l'e-mail
' Libérer les objets MailItem et MailApp
Set MailItem = Nothing
Set MailApp = Nothing
End With
' Supprimer le fichier temporaire
Kill FichierTemp
' Message de confirmation
MsgBox "L'e-mail a été envoyé avec succès !"
End Sub
Dans cette version, j’utilise l’application Mail pour Mac au lieu d’Outlook.
📌 Code VBA pour ajouter une image dans un email
Voici une variante intéressante pour ajouter une image dans un email.
Ce code crée un e-mail avec Outlook, insère du texte dans le corps de l’e-mail, ajoute l’image en tant que fichier attaché et utilise une balise HTML pour afficher l’image dans le corps de l’e-mail.
L’e-mail s’affiche ensuite à l’écran avec le contenu et l’image.
Utilise .Send à la place de .Display si tu souhaites envoyer automatiquement l’e-mail sans affichage préalable.
Tu trouveras le code VBA pour Windows mais aussi pour Mac.
Voir plus bas.
Pour Windows
'Code source dmo-formation.com
Sub EnvoyerEmailAvecImage()
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim Destinataire As String
Dim Sujet As String
Dim Corps As String
Dim ImagePath As String
' Paramètres de l'e-mail
Destinataire = "adresse@email.com"
Sujet = "E-mail avec image"
Corps = "Voici une image :"
ImagePath = "C:\chemin\vers\l\image.jpg" ' Remplace avec le chemin d'accès à ton image
' Créer une instance de l'application Outlook
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
' Paramètres de l'e-mail
.To = Destinataire
.Subject = Sujet
.HTMLBody = "" & Corps & "
" & "
"
' Attacher l'image en tant que fichier
.Attachments.Add ImagePath
' Envoyer l'e-mail
.Display ' Utilise .Send à la place de .Display pour envoyer automatiquement l'e-mail
' Libérer les objets OutlookMail et OutlookApp
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End With
End Sub
🔔 Et si ce code VBA ne marche pas pour toi...
→ Assure-toi également que la référence “Microsoft Outlook Object Library” est activée dans les références VBA d’Excel.
Le code VBA que j’ai fourni précédemment est spécifique à Windows et utilise l’application Outlook pour envoyer l’e-mail.
Malheureusement, ce code ne fonctionnera pas directement sur Mac, car il utilise des objets spécifiques à Outlook sur Windows.
Pour Mac
Sur Mac, Excel utilise généralement l’application Mail par défaut pour envoyer des e-mails.
![Application Mail sous Mac](https://dmo-formation.com/wp-content/uploads/2023/05/Capture-decran-2023-05-30-a-01.14.12-1024x402.png)
Par conséquent, le code VBA doit être adapté pour fonctionner avec Mail au lieu d’Outlook.
Voici un exemple de code adapté pour Mac :
'Code source dmmo-formation.com
Sub EnvoyerEmailAvecImageSurMac()
Dim MailApp As Object
Dim MailItem As Object
Dim Destinataire As String
Dim Sujet As String
Dim Corps As String
Dim ImagePath As String
' Paramètres de l'e-mail
Destinataire = "adresse@email.com"
Sujet = "E-mail avec image"
Corps = "Voici une image :"
ImagePath = "Macintosh HD:chemin:vers:l:image.jpg" ' Remplace avec le chemin d'accès à ton image
' Créer une instance de l'application Mail
Set MailApp = CreateObject("Mail.Application")
Set MailItem = MailApp.CreateItem(0)
With MailItem
' Paramètres de l'e-mail
.To = Destinataire
.Subject = Sujet
.HTMLBody = "" & Corps & "
" & "
"
' Attacher l'image en tant que fichier
.Attachments.Add ImagePath
' Envoyer l'e-mail
.Display ' Utilise .Send à la place de .Display pour envoyer automatiquement l'e-mail
' Libérer les objets MailItem et MailApp
Set MailItem = Nothing
Set MailApp = Nothing
End With
End Sub
🔔 Et si ce code ne marche pas pour toi ?
→ Note que certaines fonctionnalités spécifiques à Outlook peuvent ne pas être disponibles dans Mail. Par conséquent, les résultats peuvent varier selon les versions d’Excel et de Mail que tu utilises sur ton Mac.
→N’oublie pas de remplacer “Macintosh HD:chemin:vers:l:image.jpg” par le chemin d’accès réel de ton image.
💡 Besoin d'aide pour aller plus loin ?
Rejoindre le groupe d’entraide Excel et participer à la vie de la communauté pour progresser ensemble.
Auteur
David
David MONTET Tutoriel Excel est un youtubeur passionné par Excel. Ingénieur en informatique de métier, il cumule +20 ans d'expérience professionnelle. Ingénieur en développement, c'est un gars sérieux 👔 qui ne se prend pas au sérieux 😜. Il aime par dessous tout t'aider à aller plus haut. Avec lui, tu es sûr de viser l'excellence.
Commentaires
-
-
David
La vidéo s’appuie sur la démonstration du fichier complet à télécharger. Le code fourni dans cet article ne donne pas tout. Combien de mails souhaites tu envoyer par gmail ?
-
Louault
Tu spécifie dans ta vidéo que gmail est aussi utilisé mais les codes vba sont uniquement pour Outlook.