Bonjour,
J'ai créé un Userform pour que l'utilisateur puisse modifier le prix d'un ticket pour les internes et les externes (voir l'imprécr ci-contre). Mais j'ai également souhaité rajouter un contrôle de la saisie pour que l'utilisateur n'entre pas n'importe quel prix, ou qu'il évite les erreurs de saisie (puisque ces données sont utilisées dans d'autres feuilles pour des calculs).
Cependant, le code que j'ai tapé ci-dessous ne fonctionne pas pour les externes. Pourtant, il me semble tout à fait logique !!!
La cellule C3 est modifiée lorsque le Userform est validé puisqu'une donnée est entrée dans la cellule (il y a donc une modification : utilisation de Change)
Puis il vérifie si la saisie est bien un nombre, si elle est bien comprise entre 1 et 5
Si c'est le cas, il active la cellule C4 (en dessous, qui est également à vérifier) et effectue les mêmes vérifications
Sauriez-vous ce qui ne fonctionne pas ?
J'espère que vous avez compris ce que je voulais vous expliquer, parce que c'est un peu compliqué pour moi à expliquer
Merci d'avance de votre aide,
Bon après midi
Code :
Private Sub Worksheet_Change(ByVal Target As Range)
' Permet de contrôler si les valeurs entrées sont acceptables_
' Ni trop haut_
' Ni trop bas_
' Ni erronées
If Target.Address = "$C$3" Then
'Contrôle pour les internes
If Not IsNumeric(Target) Then MsgBox "Valeur erronée saisie en interne"
If Range("C3").Value < 1 Then MsgBox "Le prix que vous avez saisi en interne est trop bas"
If Range("C3").Value >= 5 Then MsgBox "Le prix que vous avez saisi en interne est trop élevé"
If Range("C3").Value >= 1 And Range("C3").Value < 5 Then Range("C4").Activate
'Contrôle pour les externes
If Range("C4").Value < 1 Then MsgBox "Le prix que vous avez saisi en externe est trop bas"
If Range("C4").Value >= 5 Then MsgBox "Le prix que vous avez saisi en externe est trop élevé"
If Range("C4").Value >= 1 And Range("C4").Value < 5 Then Range("C5").Activate
If Not IsNumeric(Target) Then MsgBox "Valeur erronée saisie en interne"
End If
End Sub