Automatisez l’envoi d’e-mails avec Outlook Intégration, Excel VBA

Voici un exemple détaillé de code VBA pour automatiser l’envoi d’e-mails via Outlook directement depuis Excel. Ce code utilise l’intégration de Microsoft Outlook avec VBA dans Excel. Vous pouvez l’adapter selon vos besoins spécifiques.

Pré-requis :

  • Avoir Outlook installé sur votre machine et configuré.
  • Activer la référence « Microsoft Outlook xx.x Object Library » dans l’éditeur VBA (allez dans Outils > Références et cochez cette bibliothèque).

Exemple de Code VBA pour l’envoi d’e-mails automatisé via Outlook :

  1. Ouvrez l’éditeur VBA dans Excel en appuyant sur Alt + F11.
  2. Ajoutez un module en cliquant sur Insertion > Module.
  3. Copiez et collez le code suivant dans le module.

Code VBA :

Sub EnvoyerEmailAutomatique()
    ' Déclaration des variables
    Dim OutlookApp As Object
    Dim OutlookMail As Object
    Dim destinataire As String
    Dim sujet As String
    Dim corps As String
    Dim fichierPJ As String
    ' Initialisation des variables
    destinataire = "destinataire@example.com" ' Adresse du destinataire
    sujet = "Sujet de l'email" ' Sujet de l'email
    corps = "Bonjour," & vbCrLf & vbCrLf & "Ceci est un email envoyé automatiquement depuis Excel avec VBA." & vbCrLf & "Cordialement," & vbCrLf & "Votre Nom" ' Corps du message
    fichierPJ = "C:\chemin\vers\le\fichier\attachement.pdf" ' Chemin d'un fichier à joindre (facultatif)
    ' Créer une instance d'Outlook
    On Error Resume Next ' Si Outlook est déjà ouvert, ne pas afficher d'erreur
    Set OutlookApp = CreateObject("Outlook.Application")
    On Error GoTo 0 ' Retour à la gestion des erreurs classique
    ' Si Outlook n'est pas ouvert, afficher un message d'erreur
    If OutlookApp Is Nothing Then
        MsgBox "Outlook n'est pas ouvert ou installé.", vbCritical
        Exit Sub
    End If
    ' Créer un nouvel email
    Set OutlookMail = OutlookApp.CreateItem(0) ' 0 = e-mail
    ' Configuration de l'e-mail
    With OutlookMail
        .To = destinataire ' Destinataire
        .Subject = sujet ' Sujet
        .Body = corps ' Corps du message
        .Attachments.Add fichierPJ ' Ajouter un fichier joint (si nécessaire)
        ' Envoyer l'email
        .Send
    End With
    ' Message de confirmation
    MsgBox "L'email a été envoyé avec succès!", vbInformation
End Sub

Explication du code :

  1. Déclaration des variables :
    • OutlookApp : Une instance de l’application Outlook.
    • OutlookMail : Un objet représentant un e-mail.
    • destinataire : L’adresse email du destinataire.
    • sujet : Le sujet de l’email.
    • corps : Le corps du message dans l’email.
    • fichierPJ : Le chemin d’un fichier à joindre à l’email (facultatif).
  2. Initialisation des variables :
    • L’adresse du destinataire, le sujet et le corps du message sont définis ici.
    • Le chemin du fichier joint (fichierPJ) peut être laissé vide si vous ne souhaitez pas joindre de fichier.
  3. Création de l’application Outlook :
    • CreateObject(« Outlook.Application ») permet de créer une instance d’Outlook.
    • Si Outlook n’est pas installé ou ouvert, le programme gère l’erreur et affiche un message d’alerte.
  4. Création d’un e-mail :
    • La méthode CreateItem(0) crée un nouvel e-mail (0 correspond à un e-mail, 1 serait pour un rendez-vous, etc.).
    • Le destinataire, le sujet et le corps du message sont ajoutés à l’email.
  5. Envoi de l’e-mail :
    • La méthode .Send envoie l’email immédiatement. Si vous souhaitez simplement ouvrir l’email sans l’envoyer, vous pouvez utiliser .Display à la place.
  6. Ajout de fichier joint (facultatif) :
    • Si vous avez un fichier à joindre, vous pouvez définir son chemin dans la variable fichierPJ. Le fichier sera joint avec .Attachments.Add.
  7. Message de confirmation :
    • Un message de confirmation s’affiche après l’envoi de l’email, pour informer l’utilisateur que l’email a été envoyé avec succès.

Utilisation :

  • Exécution du code : Pour exécuter ce code, vous pouvez soit appuyer sur F5 dans l’éditeur VBA, soit lier le code à un bouton dans votre feuille Excel (en utilisant le contrôleur de formulaire « Bouton » dans Excel).

Personnalisation :

  • Destinataire : Vous pouvez récupérer l’adresse e-mail à partir de n’importe quelle cellule Excel (par exemple, Range(« A1 »).Value).
  • Corps du message : Si vous avez plusieurs lignes dans Excel, vous pouvez récupérer les valeurs des cellules et les insérer dans le corps de l’email.

Voici un exemple pour récupérer le destinataire et le corps d’un email à partir des cellules Excel :

destinataire = Range("A1").Value ' Adresse e-mail dans la cellule A1
corps = Range("B1").Value ' Message dans la cellule B1

Ce code est très flexible et peut être adapté pour envoyer des e-mails en masse à partir de listes dans Excel ou automatiser des notifications.

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x