Bonjour à tous
Alors voilà j'ai bien avancé dans ma macro mais là je coince ^^
je m'explique:
j'ai une macro qui s’exécute au lancement de mon fichier excel en fonction de la date du jour cela envoi un mail à une lite de personne puis inscrit dans une cellule a coté de la date du jour "mail envoyé". Mon problème, si j'ouvre 5 fois mon fichier dans la journée j'ai 5 fois le mail.... j'aimerai que ça tienne compte de la case "mail envoyé" pour que lors d'une 2eme ouverture du fichier dans la journée ça ne renvoie pas de mail répétitif (je ne sais pas si c'est clair)
Du coup dans mon fichier joint:
quand la date de la colonne "i" correspond à la date du jour, un mail est envoyé et la case de la colonne "n" inscrit (Email Envoyé).
Mais quand je rouvre le fichier ultérieurement dans la journée j'aimerai que ça tienne bien compte du mail déjà envoyé pour ne pas le renvoyé de nouveau
Merci d'avance
Alors voilà j'ai bien avancé dans ma macro mais là je coince ^^
je m'explique:
j'ai une macro qui s’exécute au lancement de mon fichier excel en fonction de la date du jour cela envoi un mail à une lite de personne puis inscrit dans une cellule a coté de la date du jour "mail envoyé". Mon problème, si j'ouvre 5 fois mon fichier dans la journée j'ai 5 fois le mail.... j'aimerai que ça tienne compte de la case "mail envoyé" pour que lors d'une 2eme ouverture du fichier dans la journée ça ne renvoie pas de mail répétitif (je ne sais pas si c'est clair)
VB:
Sub Workbook_Open()
Dim w1 As Worksheet
Dim i As Long
Dim D As Date
Dim M As Object, OlApp As Object, Destinataire As String
Application.ScreenUpdating = False
D = Date
Set w1 = Worksheets("Feuil1")
Destinataires = "aaaaaaaaa.fr"
Destinataires2 = "bbbbbbbbb.fr ; cccccccccc.fr ; ddddddddddd.fr"
Destinataire = Email
For i = 2 To w1.Range("I" & Rows.Count).End(xlUp).Row
On Error Resume Next
If w1.Cells(i, "I") = D And w1.Cells(i, "I") <> "" Then
w1.Cells(i, "N") = "Email Envoyé"
Set OlApp = CreateObject("Outlook.application")
Set M = OlApp.CreateItem(olMailItem)
With M
'Destinataires
.To = Destinataires
'Copie Destinataires
.CC = Destinataires2
.Subject = "sortie de réincubation"
.Body = w1.Cells(i, "A") & " " & w1.Cells(i, "B") & " " & w1.Cells(i, "Q") & " " & w1.Cells(i, "R") & ""
.Recipients.Add Destinataire
.Send
End With
End If
Next i
Application.ScreenUpdating = True
End Sub
Du coup dans mon fichier joint:
quand la date de la colonne "i" correspond à la date du jour, un mail est envoyé et la case de la colonne "n" inscrit (Email Envoyé).
Mais quand je rouvre le fichier ultérieurement dans la journée j'aimerai que ça tienne bien compte du mail déjà envoyé pour ne pas le renvoyé de nouveau
Merci d'avance
Pièces jointes
Dernière édition: