J'aimerai créer un fichier excel avec des dates, des adresses mail, les corps des messages et le sujets, respectivement dans 4 colonnes, puis créer une macro qui enverrait un mail via Outlook une fois la date correspondante atteinte.
J'ai quelques bases de programmation, mais en VBA je suis plutôt débutant. Cependant en piochant à droite à gauche, j'ai réussi à trouver un code qui fonctionne mais ne va pas "pas assez loin" (voir ci-dessous).
En fait lors de la récupération du mail il ne semple pas valider pas par "entrée" (du coup quand Outlook s'ouvre l'adresse mail est bien écrite dans le champs "destinataire" mais n'est pas validée, je ne sais pas si c'est clair).
Et le code ne semble pas envoyer le message, mais ça vient peut-être de la même chose justement.
- Code: Tout sélectionner
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
S'il est important de savoir le vrai but, en fait ça serait que le fichier contenant des dates d'expiration et permettant de prévenir une fois la date atteinte, ou même faire un rappel un peu avant.
L'idéal serait que cela puisse fonctionner même quand le fichier n'est pas ouvert, mais ça semble plus compliqué.
Merci d'avance pour votre aide.