Comment ne pas dépasser une valeur dans une textbox

Résolu
coupidon Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 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

4 réponses

Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   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 580 Date d'inscription   Statut Membre Dernière intervention   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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > mrjenkins Messages postés 580 Date d'inscription   Statut Membre Dernière intervention  
 
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 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
Bonjour à tous,

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

A+
0
coupidon Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

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