Private test As Boolean 'déclare la variable test
Private Sub Worksheet_Change(ByVal Target As Range)
Dim pl As Range 'déclare la varialbe pl (PLage)
Set pl = Range("B1:B" & Cells(Application.Rows.Count, 2).End(xlUp).Row) 'définit la plage pl
If test = True Then Exit Sub 'si test est vraie, sort de la procédure
If Selection.Cells.Count > 1 Then Exit Sub 'si plusieurs cellules sélectionnées, sort de la procédure
If Application.Intersect(Target, pl) Is Nothing Then Exit Sub 'si le changement a lieu ailleurs que dans la plage pl, sort de la procédure
test = True 'définit la variable test
If Target.Value = "" Then Target.Formula = "=" & Target.Offset(0, -1) * 4 'si la cellule est effacée, place la formule (ici =A... * 4)
test = False 'redéfinit la variable test
End Sub