Salut thoumas79,
à adapter avant de coller cette macro telle quelle dans le module VBA de 'ThisWorkbook'
- corriger le nom de la feuille devant être scannée ;
With Worksheets("XXX")
- vérifier le n° de ligne de début des données ;
.Range("A2:H" &
- l'exactitude de ceci dépend de la donnée précédente, évidemment.
sMsg & "Ligne : " & x + 1
Private Sub Workbook_Open()
'
Dim tTab, sMsg$
'
With Worksheets("XXX")
tTab = .Range("A2:H" & .Range("A" & Rows.Count).End(xlUp).Row).Value
For x = 1 To UBound(tTab, 1)
If DateDiff("d", Date, CDate(tTab(x, 8))) <= 3 Then sMsg = sMsg & "Ligne : " & x + 1 & " " & tTab(x, 8) & " " & tTab(x, 2) & Chr(10)
Next
MsgBox IIf(sMsg = "", "Pas de contrat à échéance !", sMsg), vbInformation + vbOKOnly, "Échéances"
End With
'
End Sub
Devrait être bon mais, à tester...
A+