Textbox, saisie utilisateur avec gestion d'erreur [Résolu]

blinix123 307 Messages postés mercredi 26 octobre 2005Date d'inscription 21 mai 2008 Dernière intervention - 19 sept. 2006 à 19:07 - Dernière réponse : Dolphin Boy 630 Messages postés vendredi 5 mai 2006Date d'inscription 17 février 2007 Dernière intervention
- 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
Afficher la suite 

3 réponses

Répondre au sujet
Dolphin Boy 630 Messages postés vendredi 5 mai 2006Date d'inscription 17 février 2007 Dernière intervention - 19 sept. 2006 à 19:43
+3
Utile
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


 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Dolphin Boy
blinix123 307 Messages postés mercredi 26 octobre 2005Date d'inscription 21 mai 2008 Dernière intervention - 19 sept. 2006 à 21:01
0
Utile
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
Commenter la réponse de blinix123
Dolphin Boy 630 Messages postés vendredi 5 mai 2006Date d'inscription 17 février 2007 Dernière intervention - 19 sept. 2006 à 21:35
0
Utile
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.
Commenter la réponse de Dolphin Boy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.