Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ColPrio As Range, TPrio(), LCou As Long, PCou As Long, L As Long, P As Long
If Intersect([Tableau4[Etat]], Target) Is Nothing Then Exit Sub
If Target.Value <> "CLOS" Then Exit Sub
Set ColPrio = [Tableau4[Priorité]]
TPrio = ColPrio.Value
LCou = Target.Row - ColPrio.Row + 1
PCou = TPrio(LCou, 1): TPrio(LCou, 1) = Empty
For L = 1 To UBound(TPrio, 1)
Select Case TPrio(L, 1)
Case PCou: ColPrio.Rows(LCou).Value = Empty: Exit Sub
Case Is > PCou: TPrio(L, 1) = TPrio(L, 1) - 1
End Select
Next L
ColPrio.Value = TPrio
End Sub