Private Sub Worksheet_Change(ByVal Target As Range)
Dim ValSaisie As Variant
If Intersect([I4:I300,K4:K300,U4:U300], Target) Is Nothing Or Target.Count > 1 Then Exit Sub
' Si la valeur saisie n'est pas vide
If Target <> "" Then
' Si la saisie c'est faite dans les cellule I4:I300 et que la valeur saisie n'est pas numérique
If Not Intersect([I4:I300], Target) Is Nothing And Not IsNumeric(Target) Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "Saisie incorrecte, numérique uniquement !"
Else
' Sinon on continue normalement
Application.EnableEvents = False
ValSaisie = Target
Application.Undo
If Left(Target.Formula, 1) = "=" Then
Target.Formula = Target.Formula & "+" & ValSaisie
Else
Target.Formula = "=" & ValSaisie
End If
Application.EnableEvents = True
End If
Else
' Si tentative de suppression de la cellules
' Demander le mot de passe qui est : toto
If InputBox("Merci de saisir le mot de passe pour suppression", "SUPPRESSION ...") <> "toto" Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "Vous ne devez pas effacer la valeur, mais la remplacer"
End If
End If
End Sub