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. 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
  2. Bonjour à tous,

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

    A+
    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. Re,

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