Textbox, saisie utilisateur avec gestion d'erreur

Résolu
Utilisateur anonyme - 19 sept. 2006 à 19:07
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007 - 19 sept. 2006 à 21:35
Re la communauté,

Voilou j'ai un textbox qui va contenir une saisie utilisateur, celui-ci doit saisir un nombre entre 1 et 100, si c'est pas bon: msgbox("erreur"), or je ne sais pas comment gerer ceci pour qu'il recommence, en effet, avec un:
while textbox.text < 1 or textbox.text > 100
   msgbox("erreur recommencer")
wend
je suis en boucle infini car ma declaration du sub est: Private Sub TextBox1_Change() ! donc si il tape 0 ca foire, et la boiboite n'attend pas que l'on retape quelque chose pour mettre les msgbox a l'infini!

-- Comment faire pour gerer cette erreur et permettre à l'utilisateur de resaisir sa réponse correctement...? j'ai aussi tester avec un sub textbox_update()

Merci d'avance

ps: j'espere que vous avez compris

3 réponses

Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
19 sept. 2006 à 19:43
Salut, c'est pas du VB6 ça, plutôt du VBA non ?


En VB, essaie ça :
Private Sub Text1_KeyPress(KeyAscii As Integer)
  'permettre uniquement la saisie de chiffres et des touches flèches, backspace, suppr,....
  If KeyAscii > 31 And KeyAscii < 48 Or KeyAscii > 57 Then
    KeyAscii = 0
    Exit Sub
  End If
End Sub


Private Sub Text1_Validate(Cancel As Boolean)
  If CInt(Text1.Text) = 0 Or CInt(Text1.Text) > 100 Then
    MsgBox "Saisissez un nombre de 1 à 100 S.V.P. !"
    Cancel = True
  End If
End Sub


En VBA :
Private Sub TextBox1_KeyPress(KeyAscii As Integer)
  'permettre uniquement la saisie de chiffres et des touches flèches, backspace, suppr,....
  If KeyAscii > 31 And KeyAscii < 48 Or KeyAscii > 57 Then
    KeyAscii = 0
    Exit Sub
  End If
End Sub


Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
  If CInt(TextBox1.Text) = 0 Or CInt(TextBox1.Text) > 100 Then
    MsgBox "Saisissez un nombre de 1 à 100 S.V.P. !"
    Cancel = True
  End If
End Sub


 
3
Utilisateur anonyme
19 sept. 2006 à 21:01
Oui c'est du VBA autant pour moi, l'ahbitude de poster pour du VB désolé ^^
Mais je ne vois pas de différence entre VB et VBA en fait ???!!!
Merci pour ton code, je l'essai demain et je te dirais ce qu'il en retourne
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
19 sept. 2006 à 21:35
Bah, pour ce qui est de la base, les 2 sont du basic mais il y a plein de différences au niveau d'abord des noms de controles par défaut (Text1 en VB6 TextBox1 en VBA, ...), des noms d'évènements (Validate en VB6, BeforUpdate en VBA, ...), de nombreuses fonctions de VB6 inexistantes en VBA, etc ... Sans parler quon peut faire un EXE avec VB mais pas avec VBA.
En fait, tout dépend de ce qu'on veut faire et choisir le langage en fonction de ça.
0
Rejoignez-nous