1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| Sub Alerte_PVR()
Dim outobj As Outlook.Application
Dim sSujet, sBody, sAdresseMail, sAdresseRetour As String
Dim duree As Integer 'nbre de jours entre aujourd'hui et la date à testerDim Lig_Deb, Lig_Fin As Integer 'ligne de début, de fin
Dim sDates_Col, sMails_Col As String 'colonnes qui contiennent les dates à tester et les adresses mailDim i As Integer
Set ObjOutlook = New Outlook.Application
'initialisation des constantes de la macro :Lig_Deb = 5 'dans ma feuille Excel, les dates à tester commencent en ligne 5
sDates_Col = "T" ' et elles sont en colonne T ( 3 ième colonne)et les adresses mail sont en colonne U à côté'initialisation des données du mail envoyé :
sSujet = "Récupérer PV de réception pour mainlevée caution"
sBody = "Bonjour," + vbNewLine + "Veuillez-vous référer au fichier SUIVI DES CAUTIONS, afin de récupérer le PV de réception des chantiers terminés, de le scanner et de l'enregistre sur Ameris. Et enfin, si nécessaire, veuillez modifier la date de Mainlevée dans le tableau." + vbNewLine + "Si les travaux n'ont pas encore été réceptionnés, merci de modifier la cellule Date fin de chantier" + vbNewLine + "Cordialement" + vbNewLine
sAdresseRetour = "xxxxxxxx@xxxxxx.com"
sAdresseMail_Col = "U"
'Ligne de fin =1ère cellule vide dans la colonne des dates
Lig_Fin = Val(Range(sDates_Col & CStr(Lig_Deb)).End(xlDown).Row)
' boucle de test dans la plage des dates (=> )For i = Lig_Deb To Lig_Fin
Range(sDates_Col & CStr(i)).Select 'activer la cellule testéeduree = Now - ActiveCell.Value ' la date est dans la cellule activeIf duree > 0 Then 'la date est dépasséesAdresseMail ActiveCell.Offset(0, 1).Value 'l'adresse mail est dans la colonne suivante offset (0,1)
'MsgBox ("Envoi de courrier à " & sAdresseMail)
' envoyer le mail :Outlook.Application sSujet, sBody, sAdresseMail, sAdresseRetour
Else
'MsgBox ("La date n'est pas atteinte")
End If |
Partager