Envois d'un mail dès qu'une date est atteinte en excel

TIFN - Modifié par ucfoutu le 23/09/2016 à 11:22
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 28 sept. 2016 à 06:09
Bonjour,
Actuellement dans un fichier Excel, j'ai mis en place un code qui permet d'envoyer un mail pour quand un produit qui a une date d'expiration dépassée. Cela marche bien mais quand il y a beaucoup de produit cela engendre trop de mail à mon destinataire. C'est pourquoi j'aimerais n'envoyer qu'un seul mail avec toutes les lignes en question ? Comment puis je procéder ?

D'avance merci pour votre aide !

Voici le code que j'utilise actuellement :
 Sub EnvoiAutomatiqueMail()
Dim i&
If OutlookOuvert = False Then i = Shell("Outlook", vbNormalNoFocus)
For i = 9 To Range("A" & Rows.Count).End(xlUp).Row
If Cells(i, 44) < Now And Cells(i, 91) <> "Mail2 envoyé" Then
Envoi "le contrat d'approvisionnement " & Cells(i, 5) & Cells(i, 4) & " est dépassée depuis le " & Cells(i, 44)
Cells(i, 93) = "Mail2 envoyé"

If Cells(i, 44) < Now - 90 And Cells(i, 91) > Now And Cells(i, 91) <> "Mail1 envoyé" Then
Envoi "le contrat d'approvisionnement " & Cells(i, 5) & " - " & Cells(i, 4) & " arrive à échéance le " & Cells(i, 44)
Cells(i, 93) = "Mail1 envoyé"
End If
End If
Next
End Sub
Function Envoi(Corps$)
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
.Subject = "Attention aux contrats d'approvissionnement"
.To = Feuil4.[A1]
.CC = Feuil4.[A2]
.Body = Corps
.Send
End With
End Function
Function OutlookOuvert() As Boolean
Dim oOL As Object
On Error Resume Next
Set oOL = GetObject(, "Outlook.Application")
On Error GoTo 0
OutlookOuvert = Not (oOL Is Nothing)
Set oOL = Nothing
End Function


Modifié par (ajout des balises code) et déplacé vers le sous-forum adéquat (VBA et non VB.Net) par ucfoutu.
Prière de veiller à prendre ce soin.

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
27 sept. 2016 à 23:29
Bonjour,
Sans cherche plus loin .... en concaténant les résultats trouvé et en n'envoyant le mail qu'après ta boucle.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 sept. 2016 à 06:09
Bonjour, jordfane45,
En faisant, donc, exactement ce qu'il ferait manuellement, sans informatique ni moyen moderne de transmission (il noterait chaque produit concerné sur une feuille de papier, puis posterait cette feuille).
Merci de ton rappel à l'utilisation de la sagesse.
0
Rejoignez-nous