[VBA] Emails Outlook depuis BDD Excel

Fermé
akarix Messages postés 6 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 4 mai 2011 - 4 mai 2011 à 15:28
 Utilisateur anonyme - 4 mai 2011 à 21:25
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


A voir également:

1 réponse

Utilisateur anonyme
4 mai 2011 à 21:25
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