Envoyer automatiquement un mail avec Excel (vba)

  • Auteur/autrice de la publication :
  • Dernière modification de la publication :février 16, 2024
  • Post category:top astuce
  • Temps de lecture :9 min de lecture

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 :

  1. Ouvrez l’éditeur VBA dans Excel en appuyant sur Alt + F11.
  2. Dans l’éditeur VBA, créez un nouveau module en sélectionnant « Insertion » dans la barre de menus, puis « Module ».
  3. Dans le module, commencez par déclarer les variables nécessaires, telles que les objets Outlook.Application, Outlook.MailItem, etc.
  4. Écrivez le code pour créer une nouvelle instance de l’application Outlook à l’aide de la déclaration « Set OutlookApp = New Outlook.Application ».
  5. Utilisez la méthode « CreateItem » pour créer un nouvel objet MailItem, qui représente l’e-mail que vous souhaitez envoyer.
  6. 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.
  7. 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 :

  1. Colonne A : Adresse e-mail du destinataire – Cette colonne contiendra les adresses e-mail des destinataires auxquels vous souhaitez envoyer les e-mails.
  2. Colonne B : Sujet de l’e-mail – Cette colonne contiendra le sujet de l’e-mail que vous souhaitez envoyer à chaque destinataire.
  3. Colonne C : Corps de l’e-mail – Cette colonne contiendra le contenu principal du message que vous souhaitez envoyer à chaque destinataire.
  4. 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.

Vbalabs

Bonjour, je m'appelle Victorien, j'ai 24 ans et je suis Ingénieur / Expert de Microsoft Excel. Passionné par les données et l'analyse, j'aime créer des solutions efficaces et innovantes pour résoudre des problèmes complexes. Vous pouvez me faire confiance pour vos besoins en matière de gestion et d'analyse de données avec Excel. Je suis là pour vous aider à tirer le meilleur parti de cet outil puissant.

Laisser un commentaire