Private TEST As Boolean 'déclare la variable TEST
Private Sub Worksheet_Change(ByVal Target As Range)
Dim PL As Range 'déclare la variable pl (PLage)
If TEST = True Then TEST = False: Exit Sub 'si TEST est vrai, TEST devient faux, sort de la procédure
Set PL = Range("A1:A10") 'définit la plage PL (à adapter à ton cas)
If Application.Intersect(Target, PL) Is Nothing Then Exit Sub 'si le cha gement a lieu ailleurs que dans la plage PL, sort de la procédure
If Target.Cells.Count > 1 Then Exit Sub 'si plusieurs cellules sélectionnées, sort de la procédure
If Target.Value = "" Then 'condition : si la cellule est effacée
TEST = True 'définit la variable TEST
Target.Value = 1 'écrit 1 dans la cellule
End If 'fin de la condition
End Sub