Envoyer automatiquement un mail via Excel
Article mis à jour le 16 février 2024
Excel, l’outil de feuille de calcul le plus populaire au monde, est connu pour sa capacité à gérer et à analyser les données.
Cependant, saviez-vous qu’il peut également être utilisé pour automatiser l’envoi d’e-mails ? Oui, c’est vrai. Avec quelques configurations et ajustements, vous pouvez configurer Excel pour envoyer automatiquement des e-mails pour vous.
Voilà un résumé de ce que vous pourrez trouver dans cet article :
- Excel peut être utilisé pour automatiser l’envoi d’e-mails.
- Avant d’envoyer des e-mails automatiquement, il faut structurer les données dans Excel.
- Il est nécessaire d’ajouter les informations nécessaires comme l’adresse e-mail de l’expéditeur, le sujet et le corps de l’e-mail.
- Pour configurer Excel pour l’envoi automatique d’e-mails, il faut créer une macro.
- La macro définit les actions à effectuer pour l’envoi des e-mails.
- Utiliser VBA (Visual Basic for Applications) permet également d’envoyer des e-mails via Excel.
- VBA nécessite l’écriture d’un script pour créer un nouvel e-mail, définir ses propriétés et l’envoyer.
- Pour envoyer des e-mails avec des pièces jointes, le code VBA doit être modifié en ajoutant le chemin des pièces jointes.
- Il est important d’organiser les données dans Excel avec les adresses e-mail, le sujet, le corps de l’e-mail et le chemin des pièces jointes.
Des codes VBA déjà fait et expliqué sont placés dans l’article à vous de les trouver. Maintenant place à la lecture !
Pourquoi automatiser l’envoi d’e-mails avec Excel ?
L’automatisation de l’envoi d’e-mails avec Excel peut vous faire gagner beaucoup de temps et d’efforts.
Au lieu d’envoyer manuellement des e-mails à une liste de contacts, vous pouvez configurer Excel pour le faire automatiquement pour vous. Cela peut être particulièrement utile si vous avez une grande liste de contacts ou si vous devez envoyer des e-mails régulièrement.
Utilisation de VBA pour envoyer un e-mail via Excel
Si vous êtes à l’aise avec la programmation, vous pouvez également utiliser VBA (Visual Basic for Applications) pour envoyer un e-mail via Excel.
Pour utiliser VBA pour envoyer un e-mail via Outlook, vous devez d’abord écrire un script VBA. Ce script est essentiellement un ensemble d’instructions qui indiquent à Excel comment créer un nouvel e-mail, remplir les informations nécessaires et l’envoyer. Voici les étapes générales pour réaliser cela :
- Ouvrez l’éditeur VBA dans Excel en appuyant sur Alt + F11.
- Dans l’éditeur VBA, créez un nouveau module en sélectionnant « Insertion » dans la barre de menus, puis « Module ».
- Dans le module, commencez par déclarer les variables nécessaires, telles que les objets Outlook.Application, Outlook.MailItem, etc.
- Écrivez le code pour créer une nouvelle instance de l’application Outlook à l’aide de la déclaration « Set OutlookApp = New Outlook.Application ».
- Utilisez la méthode « CreateItem » pour créer un nouvel objet MailItem, qui représente l’e-mail que vous souhaitez envoyer.
- Définissez les propriétés de l’objet MailItem, telles que l’adresse e-mail du destinataire, le sujet de l’e-mail et le corps du message.
- Appelez la méthode « Send » de l’objet MailItem pour envoyer l’e-mail.
Comment utiliser VBA pour envoyer un e-mail via Outlook
Pour utiliser VBA pour envoyer un e-mail via Outlook, vous devez d’abord écrire un script VBA. Ce script doit inclure les informations nécessaires pour envoyer l’e-mail, comme l’adresse e-mail du destinataire, le sujet de l’e-mail, et le corps de l’e-mail. Une fois que vous avez écrit votre script, vous pouvez l’exécuter pour envoyer l’e-mail.
Faire ALT + F11 et copier-coller le code vba ci-dessous.
Voilà un exemple si dessous :
Sub EnvoyerEmails() Dim OutlookApp As Object Dim OutlookMail As Object Dim i As Integer Dim Destinataire As String Dim Sujet As String Dim Corps As String ' Création d'une instance de l'application Outlook Set OutlookApp = CreateObject("Outlook.Application") ' Boucle à travers les lignes du fichier Excel à partir de la ligne 2 (en supposant que la ligne 1 contient les en-têtes) For i = 2 To ThisWorkbook.Sheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row ' Récupération des données du fichier Excel Destinataire = ThisWorkbook.Sheets("Feuil1").Cells(i, 1).Value Sujet = ThisWorkbook.Sheets("Feuil1").Cells(i, 2).Value Corps = ThisWorkbook.Sheets("Feuil1").Cells(i, 3).Value ' Création d'un nouvel e-mail Set OutlookMail = OutlookApp.CreateItem(0) ' Remplissage des informations de l'e-mail With OutlookMail .To = Destinataire .Subject = Sujet .Body = Corps .Send ' Envoi de l'e-mail End With ' Libération de la mémoire Set OutlookMail = Nothing Next i ' Fermeture de l'application Outlook Set OutlookApp = Nothing MsgBox "Les e-mails ont été envoyés avec succès." End Sub
Pour que ce script fonctionne correctement, vous devez organiser les données dans votre fichier Excel de la manière suivante :
Colonne A : Adresse e-mail du destinataire
Colonne B : Sujet de l’e-mail
Colonne C : Corps de l’e-mail
Assurez-vous que la feuille de calcul contenant les données est nommée « Feuil1 » dans cet exemple. Vous pouvez bien sûr ajuster ces références en fonction de la structure de votre fichier Excel.
Petit tips :
Avant d’exécuter le script, assurez-vous d’avoir Outlook installé sur votre ordinateur et configuré avec un compte de messagerie actif. De plus, il est recommandé de tester le script avec un petit nombre d’e-mails au préalable pour vous assurer que tout fonctionne comme prévu.
Une fois le script exécuté, chaque ligne de données du fichier Excel sera traitée et un e-mail sera envoyé à chaque destinataire avec le sujet et le corps spécifiés.
A respecter pour que la macro fonctionne
N’oubliez pas de sauvegarder votre fichier Excel avant d’exécuter le script, car il enverra réellement les e-mails et cette action ne peut pas être annulée une fois qu’elle est effectuée. Aussi, assurez-vous également d’avoir Outlook installé sur votre ordinateur et configuré avec un compte de messagerie actif pour que cette macro fonctionne correctement.
Comment utiliser VBA pour envoyer un e-mail via Outlook avec un pièce jointe
Si vous souhaitez envoyer des mails avec un pièce jointe dans ce cas il suffit de modifier quelques points dans la macro. Voilà un exemple du code si-dessous
Sub EnvoyerEmailAvecPiecesJointes() Dim OutlookApp As Object Dim OutlookMail As Object Dim Destinataire As String Dim Sujet As String Dim Corps As String Dim CheminPieceJointe As String ' Création d'une instance de l'application Outlook Set OutlookApp = CreateObject("Outlook.Application") ' Boucle à travers les lignes du fichier Excel à partir de la ligne 2 (en supposant que la ligne 1 contient les en-têtes) For i = 2 To ThisWorkbook.Sheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row ' Récupération des données du fichier Excel Destinataire = ThisWorkbook.Sheets("Feuil1").Cells(i, 1).Value Sujet = ThisWorkbook.Sheets("Feuil1").Cells(i, 2).Value Corps = ThisWorkbook.Sheets("Feuil1").Cells(i, 3).Value CheminPieceJointe = ThisWorkbook.Sheets("Feuil1").Cells(i, 4).Value ' Création d'un nouvel e-mail Set OutlookMail = OutlookApp.CreateItem(0) ' Remplissage des informations de l'e-mail With OutlookMail .To = Destinataire .Subject = Sujet .Body = Corps .Attachments.Add CheminPieceJointe ' Ajout de la pièce jointe .Send ' Envoi de l'e-mail End With ' Libération de la mémoire Set OutlookMail = Nothing Next i ' Fermeture de l'application Outlook Set OutlookApp = Nothing MsgBox "Les e-mails avec les pièces jointes ont été envoyés avec succès." End Sub
Pour formaliser le fichier Excel et spécifier le lien de la pièce jointe, vous devez organiser vos données dans différentes colonnes de votre feuille de calcul. Voici comment vous pouvez procéder :
- Colonne A : Adresse e-mail du destinataire – Cette colonne contiendra les adresses e-mail des destinataires auxquels vous souhaitez envoyer les e-mails.
- Colonne B : Sujet de l’e-mail – Cette colonne contiendra le sujet de l’e-mail que vous souhaitez envoyer à chaque destinataire.
- Colonne C : Corps de l’e-mail – Cette colonne contiendra le contenu principal du message que vous souhaitez envoyer à chaque destinataire.
- Colonne D : Chemin de la pièce jointe – Cette colonne contiendra le chemin complet du fichier de la pièce jointe que vous souhaitez inclure dans l’e-mail. Assurez-vous que le fichier de la pièce jointe est accessible à partir de cet emplacement sur votre ordinateur.
Voici un exemple visuel de la façon dont vos données pourraient être organisées :
A | B | C | D |
---|---|---|---|
destinataire1@gmail.com | Sujet de l’e-mail 1 | Corps de l’e-mail 1 | C:\Chemins\PièceJointe1.pdf |
destinataire2@gmail.com | Sujet de l’e-mail 2 | Corps de l’e-mail 2 | C:\Chemins\PièceJointe2.docx |
destinataire3@gmail.com | Sujet de l’e-mail 3 | Corps de l’e-mail 3 | C:\Chemins\PièceJointe3.jpg |
Assurez-vous que chaque ligne de votre feuille de calcul contient les informations correspondantes pour chaque destinataire, sujet, corps de l’e-mail et chemin de la pièce jointe.
Dans le code VBA fourni précédemment, la colonne D est utilisée pour récupérer le chemin de la pièce jointe et l’ajouter à l’e-mail. Vous pouvez ajuster cette référence en fonction de la colonne que vous utilisez réellement dans votre feuille de calcul. Par exemple, si vous avez organisé le chemin de la pièce jointe dans la colonne F, vous pouvez modifier le code comme ceci :
CheminPieceJointe = ThisWorkbook.Sheets("Feuil1").Cells(i, 6).Value
Assurez-vous de mettre à jour cette référence dans le code en fonction de la colonne que vous utilisez pour les chemins des pièces jointes dans votre feuille de calcul.
En formalisant votre fichier Excel de cette manière, vous pouvez facilement récupérer les informations nécessaires pour chaque destinataire, sujet, corps de l’e-mail et chemin de la pièce jointe lors de l’exécution de la macro VBA.