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   -
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

  1. 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
    1. mrjenkins Messages postés 611 Statut Membre 103
       
      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
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > 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
  2. 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
  3. 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
  4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

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