Re,
Dans le composant Thisworkbook, ajoute le code ci-dessous qui se déclenche à l'ouverture du fichier :
Private Sub Workbook_Open()
Dim OA As Worksheet 'déclare la variable OA (Onglet Appel d'offre)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim MSG As String 'déclare la variable MSG (MeSsaGe)
Set OA = Worksheets("APPEL D'OFFRE") 'définit l'onglet AO
TV = OA.Range("A1").CurrentRegion 'définit la tavbleau des valeurs TV
For I = 3 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la troisième)
'condition : si la date du jour est supérieure ou égale à la date de la donnée ligne I colonne 8 de TV moins quatre jours
'et si la date du jour est inférieure à la date de la données ligne I colonne 8 de TV
If Date >= CDate(TV(I, 8)) - 4 And Date < CDate(TV(I, 8)) Then
'définit le messgae MSG (en allant à la ligne chaque fois que les conditions sont réunies)
MSG = IIf(MSG = "", "Le projet" & TV(I, 1) & " arrive à écéance dans " & CDate(TV(I, 8)) - Date & " jours", MSG & vbCrLf & _
"Le projet" & TV(I, 1) & " arrive à écéance dans " & CDate(TV(I, 8)) - Date & " jours")
End If 'fin de la condition
Next I 'prochaine ligne de la boucle
If MSG <> "" Then MsgBox MSG 'si MSG n'est pas vide, affiche me message MSG
End Sub
Le message indiquera tous les projet à entre 4 et 0 jours de l'échéance.