Private Sub Workbook_Open()
Dim t_date As Date, Msg As String, Cel As Range
With Feuil1
' Calcul de la date limite (aujourd'hui - i18 jours)
t_date = Date - .Range("i18")
' Boucler sur toutes les cellules occupées de la colonne D à partir de la ligne 3
For Each Cel In .Range("D3:D" & .Range("D" & Rows.Count).End(xlUp).Row)
' juste un petit contrôle pour savoir si
' la cellule n'est pas vide et que son
' contenu peut être interprété comme Date
If Not IsEmpty(Cel) And IsDate(Cel) Then
' si la date de la cellule est comprise entre t_date et aujourd'hui (bornes incluses)
If Cel >= t_date And Cel <= Date Then
Msg = "Attention, des dates sont arrivées à échéance"
Exit For
End If
End If
Next
End With
If Msg <> "" Then MsgBox Msg
End Sub