Sub Macro1()
Dim M As Object 'déclare la variable M (onglet Model)
Dim DL As Integer 'déclare la variable DL (dernière Ligne)
Dim PL As Range 'déclare la variable PL (PLage)
Dim CEL As Range 'déclare la variable CEL (CELlule)
Dim D As Long 'déclare la variable D (Date)
Set M = Sheets("Model") 'définit l'onglet M
DL = M.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet M
Set PL = M.Range("A8:A" & DL) 'définit la plage PL
For Each CEL In PL 'boucle sure toutes les cellules éditées CEL de la plage PL
If CEL.Value = "En arrêt." Then 'condition : si la valeur de la cellule cel est "En arrêt."
Select Case CEL.Offset(1, 0).Value 'agit en fonction de la valeur de la cellule en dessous
Case "" 'cas si vide
CEL.Offset(0, 5).Value = Date 'place la date en colonne H
Case Else 'autres cas
'définit la date (convertie en numéro) D
D = DateSerial(Year(CEL.Offset(1, 1).Value), Month(CEL.Offset(1, 1).Value), Day(CEL.Offset(1, 1).Value))
CEL.Offset(0, 5).Value = Format(CDate(D - 1), "dd/mm/yyyy") 'place en colonne H la date D moins un jour
End Select 'fin de l'action en fonction de...
End If 'fin de la condition
Next CEL 'prochaine cellule de la boucle
End Sub