Bonjour,
Je débute complètement en programmation VBA donc je me tourne vers vous pour résoudre un problème que je ne parviens pas à résoudre seul.
Je vous présente rapidement la situation : je gère une base de prêt de mobiles et je souhaite envoyer un mail lorsque la date d'échéance du prêt est arrivé à expiration.
J'ai donc créé une macro qui permet :
1. D'envoyer un mail de rappel si la date inscrite dans la ligne est arrivée à expiration
2. Ecrire "OK" lorsqu'un mail est envoyé à la fin de la ligne en question
3. Ne pas envoyer de mail si un "OK" est déjà inscrit dans la ligne
Mon problème : pour le moment, la boucle fonctionne plus les lignes 2 à 4 (For i = 2 to 4) mais je souhaiterais que la boucle fonctionne sur toute la feuille, ou à défaut jusqu'à la première cellule vide.
Voici mon code :
Public Sub EnvoiAutomatiqueMail()
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim adresse As String
Dim message As String
Dim sujet As String
sujet = "Retour Prêt"
For i = 2 To 4
If Range("h" & i) = "" Then 'Si aucun mail n'a été envoyé alors on lance la recherche sur la date
If Now() > Range("g" & i) Then
adresse = Range("e" & i)
message = "Bonjour"
Set OutlookApp = CreateObject("outlook.application")
Set OutlookMail = OutlookApp.createitem(0)
With OutlookMail
.Subject = sujet
.To = adresse
.body = message
.send
Range("h" & i).Value = "OK" 'lorsqu'un mail a été enovyé, la cellule en H est marquée OK
End With
End If
End If
Next i
End Sub
Merci beaucoup pour votre aide !