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

-
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.
Afficher la suite 

Votre réponse

1 réponse

Messages postés
23610
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2018
0
Merci
Bonjour,
Sans cherche plus loin .... en concaténant les résultats trouvé et en n'envoyant le mail qu'après ta boucle.
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
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.
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.