Comment ne pas dépasser une valeur dans une textbox

Résolu
coupidon Messages postés 98 Statut Membre -  
f894009 Messages postés 17413 Statut Membre -
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

4 réponses

Zoul67 Messages postés 2001 Statut Membre 149
 
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 avec
Private 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+
1
mrjenkins Messages postés 611 Statut Membre 102
 
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 =)
0
f894009 Messages postés 17413 Statut Membre 1 715 > mrjenkins Messages postés 611 Statut Membre
 
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
0
Gyrus Messages postés 3360 Statut Membre 526
 
Bonjour à tous,

Perso, j'utiliserais plutôt un ComboBox avec la propriété MatchRequired True.

A+
0
coupidon Messages postés 98 Statut Membre 1
 
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
0
f894009 Messages postés 17413 Statut Membre 1 715
 
Re,

Ben, le code que j'ai mis a dispo traite deja des saisies chiffres et pas de lettres
Mais bon ...
0