Envoi de mail via Outlook à date atteinte dans cellule Excel
Fermé
mlkgiosn
Messages postés
45
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
11 août 2021
-
14 déc. 2017 à 20:49
mlkgiosn Messages postés 45 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 11 août 2021 - 20 déc. 2017 à 22:07
mlkgiosn Messages postés 45 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 11 août 2021 - 20 déc. 2017 à 22:07
A voir également:
- Envoi de mail via Outlook à date atteinte dans cellule Excel
- Aller à la ligne dans une cellule excel - Guide
- Yahoo mail - Accueil - Mail
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Creer adresse mail outlook - Guide
2 réponses
ozone_
Messages postés
1518
Date d'inscription
lundi 13 juillet 2009
Statut
Membre
Dernière intervention
2 juin 2023
478
Modifié le 14 déc. 2017 à 22:07
Modifié le 14 déc. 2017 à 22:07
Salut,
L'argument Send est commenté dans ton code, est-ce fait exprés ?
Si non, c'est pour ça que le message ne part pas car il n'est pas lu par VBA.
Dé-commente cet argument et le message devrait s'envoyer.
De plus, tu voulais envoyer des messages sans passer par Excel, c'est faisable en passant simplement par Outlook.
A l'ouverture de ta messagerie, il va chercher dans ton fichier Excel si la date est arrivé à terme et alors enverra le mail.
C'est dans la même idée que ce code mais interprété directement dans Outlook.
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d !
L'argument Send est commenté dans ton code, est-ce fait exprés ?
Si non, c'est pour ça que le message ne part pas car il n'est pas lu par VBA.
Dé-commente cet argument et le message devrait s'envoyer.
Sub SendEmail() Dim OutApp As Object Dim OutMail As Object Dim EmailSubject As String Dim EmailSendTo As String Dim MailBody As String Set Rng = Range(Range("C1"), Range("C" & Rows.Count).End(xlUp)) For Each cell In Rng If cell.Value <> "" Then 'Get Due Date Dte = cell.Value 'Get 2 days away by taking 2 days off cell Dte value MailDteNear = DateAdd("d", -2, Dte) 'Due date is the cell value MailDteDue = Dte 'Check 2 days away and send to column D address If Date = MailDteNear Then mail = True EmailSendTo = cell.Offset(0, 1).Value End If 'Check Due and send to column D & E address If Date = MailDteDue Then mail = True EmailSendTo = cell.Offset(0, 1).Value & "; " & cell.Offset(0, 2).Value End If If mail = True Then 'Subject string EmailSubject = Range("A1").Value 'Cell A1 'Mail Body MailBody = cell.Offset(0, -1).Value 'Column B 'Send Mail Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(o) With OutMail .Subject = EmailSubject .To = EmailSendTo '.bcc .Body = MailBody .Display .send End With Set OutMail = Nothing Set OutApp = Nothing mail = False EmailSendTo = "" End If End If Next
De plus, tu voulais envoyer des messages sans passer par Excel, c'est faisable en passant simplement par Outlook.
A l'ouverture de ta messagerie, il va chercher dans ton fichier Excel si la date est arrivé à terme et alors enverra le mail.
C'est dans la même idée que ce code mais interprété directement dans Outlook.
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d !
mlkgiosn
Messages postés
45
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
11 août 2021
3
20 déc. 2017 à 22:07
20 déc. 2017 à 22:07
Merci pour la réponse, même non commenté, ça ne fonctionne pas, mais j'ai trouvé une alternative avec sendkeys"^s" (raccourci pour "envoyer" sur Outlook").
Par contre, j'ai une autre question, pour une macro qui n'a rien à voir, mais je demande ici pour ne pas créer un sujet supplémentaire :
Comment faire un "Sendkeys", qui envoie d'abord le contenu de A1, puis celui de A2, puis A3, et ainsi de suite ?
Par contre, j'ai une autre question, pour une macro qui n'a rien à voir, mais je demande ici pour ne pas créer un sujet supplémentaire :
Comment faire un "Sendkeys", qui envoie d'abord le contenu de A1, puis celui de A2, puis A3, et ainsi de suite ?