Private test As Boolean 'déclare la variable test
Private Sub Worksheet_Change(ByVal Target As Range)
If test = True Then test = False: Exit Sub 'si test est vrai, test devient faux et sort de la procédure
'condition : si la modification à lieu dans la colonne B et sur une seule cellule
If Target.Column = 2 And Target.Count = 1 Then
If Target.Value = "" Then Exit Sub 'si la cellule est effacée, sort de la procédure
test = True 'définit la variable test
'si la cellule à gauche de la cellule éditée est vide, message
If Target.Offset(0, -1) = "" Then MsgBox "Veuillez d'abord remplir le nom."
Target = "" 'annule l'édition
Target.Offset(0, -1).Select 'place le curseur dans la cellule de gauche
End If 'fin de la condition
End Sub