Comment ne pas dépasser une valeur dans une textbox

Résolu
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. Re,

    Ben, le code que j'ai mis a dispo traite deja des saisies chiffres et pas de lettres
    Mais bon ...
    0
    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
      1. Bonjour à tous,

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

        A+
        0
        1. 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. 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
          2. @mrjenkinsBonjour 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