Déclencher un mail alerte dans Outlook depuis Excel 2013

Céline Assistante

XLDnaute Nouveau
Bonjour à tous,

voici mon premier post :)
Je voulais vous poser une question, car je ne sais pas si ce que je souhaite faire est faisable (avec Excel, sans doute, mais je ne suis pas sûre).
Je suis l'assistante de plusieurs managers. Je voudrais savoir s'il est possible à partir d'un même tableau Excel (ou un par manager ?) d'envoyer un mail d'alerte à une date donnée à un manager. J'imagine un tableau avec des dates anniversaires par exemple et à des dates anniversaires une alerte est envoyée à une adresse outlook au manager A (qui peut en recevoir 20-30/an), à d'autres dates aux managers B et C etc. et ceci jusqu'à 6 ou 7 managers.
J'espère avoir été suffisamment claire (mais comme je ne sais pas si cela est possible, je m'exprime peut-être mal).

Merci à vous pour votre aide.

Céline Assistante
 

Céline Assistante

XLDnaute Nouveau
Merci pour cette réponse.
J'ai cherché dans les discussions précédentes, mais je n'ai pas trouvé de réponse. Plus concrètement, je n'ai pas trouvé de feuille Excel qui liait une date à une adresse mail.
Sans vouloir abuser, pourrais-tu me dire où je peux trouver cela si tu penses que cela a déjà été traité dans le forum ? Peut-être que je ne pose pas les bons mots dans la barre de recherche...
 

Staple1600

XLDnaute Barbatruc
Re à tous

Un bout de code emprunté à Ron de Bruin et modifié pour ta question
En colonne A: NomPrénom du manager
En colonne B: son adresse mail
En colonne C: une date
Si la date en colonne C correspond à la date du jour alors le mail est envoyé
(non testé car pas le temps ce soir, mais la boucle fonctionne bien
cf la ligne de test avec le MsgBox)
VB:
Sub EnvoieMailALaDateDuJour()
Dim OutApp As Object, OutMail As Object, c As Range
Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application")
On Error GoTo cleanup
For Each c In Columns("B").Cells.SpecialCells(2)
    If c.Value Like "?*@?*.?*" And c.Offset(, 1) = Date Then
    'juste pour tester
   ' MsgBox "Bonjour, " & c.Offset(, -1) & Chr(13) & Chr(13) & "Ici corps du message."
      Set OutMail = OutApp.CreateItem(0)
        On Error Resume Next
        With OutMail
            .To = c.Value
           .Subject = "Alerte"
            .Body = "Bonjour," & Chr(13) & c.Offset(, -1) & Chr(3) & Chr(13) & "Ici corps du message."
            .Send
        End With
       On Error GoTo 0
        Set OutMail = Nothing
    End If
Next c
cleanup:
Set OutApp = Nothing
Application.ScreenUpdating = True
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Si besoin , je mets juste une petite macro pour tester la boucle
J'ai testé avec les données ci-dessous
eemail.jpg

Il y a bien trois messages qui s'affichent
Donc avec la première macro, il y aura trois mails envoyés
(Si tu testes, demain , il faudra mettre 03/10/2016)
VB:
Sub TestBoucle()
Dim c As Range
Application.ScreenUpdating = False
On Error GoTo cleanup
For Each c In Columns("B").Cells.SpecialCells(2)
    If c.Value Like "?*@?*.?*" And c.Offset(, 1) = Date Then
    MsgBox "Bonjour, " & c.Offset(, -1) & Chr(13) & Chr(13) & "Ici corps du message."
    End If
Next c
cleanup:
Application.ScreenUpdating = True
End Sub
 

majdi masmoudi

XLDnaute Nouveau
bonjour
je suis un planificateur à une société , et je veux envoyer un mail à chaque membre de mon équipe pour les informés qu'il y a une tâche à faire à la date aujourd’hui pour cela j'ai utilisé votre solution avec quelque modification qu'il se présente ci dessous. j'ai eu une problème car dans la colonne d'e-mails j'ai mis la formule suivante pour tri le mail de chaque nom (=LIEN_HYPERTEXTE("mailto:"&RECHERCHEV(K2;$X$1:$Y$3;2;FAUX);RECHERCHEV(K2;$X$1:$Y$3;2;FAUX)) ) et j'ai crée une liaison entre les cellules de feuille excel avec les tâches dans le MS project de telle façon la date de début de chaque tâches réaliser dans mon planification sur MS project se coller avec liaison dans la colonne des dates de début dans excel. d’après ça le code ne peux pas compiler .

Sub Rectangle1_Cliquer()
Dim OutApp As Object, OutMail As Object, c As Range
Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application")
On Error GoTo cleanup
For Each c In Columns("M").Cells.SpecialCells(12)
If c.Value Like "?*@?*.?*" And c.Offset(, -7) = Date Then
'juste pour tester
MsgBox "le message a etait envoyé à " & c.Offset(, -2) & Chr(13) & Chr(13) & "Clic sur OK"
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = c.Value
.Subject = "Rappel"
.Body = "Bonjour," & Chr(13) & c.Offset(, -2) & Chr(3) & Chr(13) & "Vous avez une tâche à faire dans le sous projet 1"
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
End If
Next c
cleanup:
Set OutApp = Nothing
Application.ScreenUpdating = True
End Sub
merci à vous pour votre aide
cordialement
Majdi MASMOUDI
 

Discussions similaires

Statistiques des forums

Discussions
312 023
Messages
2 084 716
Membres
102 637
dernier inscrit
TOTO33000