Bonjour,
Une possibilité.
Sub EnvoyerMailVisiteMedicale()
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim ws As Worksheet
Dim cell As Range
Dim lastRow As Long
Dim i As Long
' Définir la feuille de travail
Set ws = ThisWorkbook.Sheets("NomDeVotreFeuille")
' Trouver la dernière ligne avec des données dans la colonne B (Date de la visite médicale)
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
' Créer une instance de l'application Outlook
Set OutlookApp = CreateObject("Outlook.Application")
' Boucler à travers les lignes de données
For i = 2 To lastRow ' Assumer que la première ligne contient des en-têtes
' Vérifier si la visite médicale est dans les 2 mois
If ws.Cells(i, 2).Value <= DateAdd("m", 2, Date) Then
' Créer un nouvel e-mail
Set OutlookMail = OutlookApp.CreateItem(0)
' Remplir les détails de l'e-mail
With OutlookMail
.To = "adresse@exemple.com" ' Remplacez par l'adresse e-mail du destinataire
.Subject = "Visite médicale à échéance"
.Body = "La visite médicale du salarié " & ws.Cells(i, 1).Value & " arrive bientôt à échéance."
' Vous pouvez ajouter plus de détails ici si nécessaire
.Send ' Envoyer l'e-mail automatiquement
End With
End If
Next i
' Libérer les objets Outlook
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
Oiseau bleu