[VBA] Emails Outlook depuis BDD Excel

akarix Messages postés 6 Statut Membre -  
 Utilisateur anonyme -
Bonjour,

J'ai un fichier Excel avec comme intitulés de colonnes :

NOM - Prénom - email - deadline

A partir de là, j'aimerai avoir une marco pouvoir automatiquement envoyer un email, depuis Outlook, aux étudiants, à : 1 mois avant la deadline, 1 semaine avant la deadline et le jour J pour leur rappeler de nous rendre leur dossier.

Merci d'avance

1 réponse

  1. Utilisateur anonyme
     
    Bonjour,

    Exemple type :

    Option Explicit
    '
    
    Sub RechercheEnvoie()
    
        Dim Aujourdhui As Date, JourDeadLine As Date
        Dim MoisPrecedent As Date, SemainePrecedente As Date, JourJ As Date
        Dim Feuille As Worksheet, Limite As Long, Boucle As Long
        Dim Adresse As String, Message As String
        
        Aujourdhui = Date
        
        JourJ = Aujourdhui
        SemainePrecedente = DateAdd("ww", -1, Aujourdhui)
        MoisPrecedent = DateAdd("m", -1, Aujourdhui)
        
        Set Feuille = ActiveSheet ' Sheets("Feuil1")
        Limite = Feuille.Range("A65536").End(xlUp).Row
        
        For Boucle = 2 To Limite
            JourDeadLine = Feuille.Cells(Boucle, 4).Value
            Adresse = Feuille.Cells(Boucle, 3).Value
            If (JourDeadLine = MoisPrecedent) Then
                Message = "À un mois du DeadLine"
                Call EnvoieCourriel(Adresse, Message)
            ElseIf (JourDeadLine = SemainePrecedente) Then
                Message = "À une semaine du DeadLine"
                Call EnvoieCourriel(Adresse, Message)
            ElseIf (JourDeadLine = JourJ) Then
                Message = "Aujourdhui c'est le DeadLine"
                Call EnvoieCourriel(Adresse, Message)
            End If
        Next Boucle
    
    End Sub
    '
    
    Sub EnvoieCourriel(ByVal Adresse As String, Message As String)
    
        ' Déclaration de variables
        Dim objApp As Outlook.Application
        Dim objMail As Outlook.MailItem
        Dim sDestination As String, msgTitre As String, msgTexte As String
        
        Set objApp = CreateObject("Outlook.Application")
        Set objMail = objApp.CreateItem(olMailItem)
        
        sDestination = Adresse
        msgTitre = "Avis de DeadLine"
        msgTexte = Message
        
        With objMail
            .To = sDestination
            .Subject = msgTitre
            .BodyFormat = olFormatPlain
            .Body = msgTexte
            .Send
        End With
        
        Set objMail = Nothing
        Set objApp = Nothing
    
    End Sub
    '
    


    n.b. Il faut ajouter la référence à [ Microsoft Outlook xx.y Objects Library]
    sous l'editeur VBE.

    // Menu / Outils / Références...

    Cdt

    Lupin
    0