Comment ne pas dépasser une valeur dans une textbox
Résolu
coupidon
Messages postés
98
Statut
Membre
-
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche comment dans une textbox ne pas dépasser une valeur et de recommencer la saisi.
ex: je ne veux pas dépasser une valeur supérieur à 59 par exemple que cela recommence la saisi dans une textbox.
si quelqu'un avais une proposition
Je cherche comment dans une textbox ne pas dépasser une valeur et de recommencer la saisi.
ex: je ne veux pas dépasser une valeur supérieur à 59 par exemple que cela recommence la saisi dans une textbox.
si quelqu'un avais une proposition
4 réponses
-
Bonjour,
Une idée :Private Sub TextBox1_Change() If Not IsNumeric(TextBox1.Value) Or TextBox1.Value > 59 Then TextBox1.Value = "" End If End Sub
que tu peux boucler avecPrivate Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii 'codes ASCII de 0 à 9 Case 48 To 57 Case Else MsgBox "Ne saisir que des chiffres !" End Select End Sub
A+-
Plus rapide que moi =)
Mais perso, j'utiliserai plutot
Private Sub TextBox1_AfterUpdate()
If Not IsNumeric(TextBox1.Value) Or TextBox1.Value > 59 Then
TextBox1.Value = ""
End If
End Sub
Pour vérifier à la sortie de la textbox =)- Bonjour a vous tous,*
Sur un seul evenement
'control entree Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 48 To 57 VTx = (Val(TextBox1) * 10) + (KeyAscii - 48) If VTx > 59 Then KeyAscii = 0 MsgBox "Nombre " & VTx & " depassant 59, recommencez saisie!!!!" TextBox1 = "" End If Case Else KeyAscii = 0 MsgBox "Entree que des chiffres(0 a 9) !!!!" End Select End Sub
-
-
Bonjour à tous,
Perso, j'utiliserais plutôt un ComboBox avec la propriété MatchRequired True.
A+ -
Bonjour, vous avez répondu à ma question et cela fonctionne correctement, je rajoute que si je veux que des chiffres et aucune lettre lors de la saisie en modifiant le code de f894009 on peu utiliser ceci...
Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' Empêche la saisi autre que numérique sur le cadre Heure
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
' Empêche la saisi autre que numérique et ne dépassant pas 59
Select Case KeyAscii
Case 48 To 57
VTx = (Val(TextBox1) * 10) + (KeyAscii - 48)
If VTx > 59 Then
KeyAscii = 0
MsgBox "Nombre " & VTx & " dépassant 59, recommencez saisie!!!!"
TextBox1 = ""
End If
End Select
End Sub -
Re,
Ben, le code que j'ai mis a dispo traite deja des saisies chiffres et pas de lettres
Mais bon ...