Private Sub Workbook_Open()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim MSG As String 'déclare la variable MSG (MeSsaGe)
Dim I As Integer 'déclare la variable I (Incrément)
Dim D As Date 'déclare la variable D (Date)
Dim DJ As Date 'déclare la variable DJ (Date du jour)
Set O = Sheets("Sommaire IPP") 'définit l'onglet O
TV = O.Range("A5").CurrentRegion 'définit le tableau des valeurs TV
MSG = "Attention IPP à traiter !" & vbCr & vbCr 'initialise le message MSG
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
If Not TV(I, 18) = "OK" Then 'condition : si la donnée en colonne 18 (=> colonne R) n'est pas égale a "OK"
D = DateSerial(Year(TV(I, 14)), Month(TV(I, 14)), Day(TV(I, 14))) 'définit la date D (date de la colonne N)
DJ = DateSerial(Year(Date), Month(Date), Day(Date)) 'définit la date DJ (date du jour)
'si la date du jour est supérieure ou égale a la date D + 5 jours, redéfinit le message MSG
If DJ >= D + 5 Then MSG = MSG & TV(I, 1) & " IPP " & TV(I, 2) & " a atteint ou dépassé la date prévisionnelle" & vbCr
End If 'fin de la condition
Next I 'prochaine ligne de la boucle
O.Select 'sélectionne l'onglet O
O.Range("A1").Select 'sélectionne la celluel A1 de l'onglet O
If MSG <> "Attention IPP à traiter !" & vbCr & vbCr Then MsgBox MSG 'affiche le message si différent du message initial
End Sub