Private Sub Worksheet_Change(ByVal Target As Range)
Dim UserEntry As Variant
If Not Application.Intersect(Target, Range('A1')) Is Nothing Then
'On suspend la gestion des évènements VBA
Application.EnableEvents = False
If Not IsNumeric(Target.Value) Then
MsgBox 'Donnée numérique obligatoire !'
Application.Undo
Application.EnableEvents = True
Exit Sub
End If
'Si valeur 0
If Target.Value = 0 Then
Range('A2').Value = 0
Else
'Si autre valeur, alors on demande la valeur pour A2
UserEntry = Application.InputBox('Saisir un nombre ', '?', , , , , , 1)
'Si annulation par l'utilisateur, alors annulation de la modif en A1
If UserEntry = False Then
Application.Undo
Else
'MAJ de A2
Range('A2').Value = UserEntry
End If
End If
'On rétablit la gestion des évènements VBA
Application.EnableEvents = True
End If
End Sub