Petite question au sujet de structures IF...ElseIf...EndIf ?

Shaigan - 5 août 2001 à 20:04
 NitRic - 6 août 2001 à 19:36
Bonjour à tous,

J'ai écris une structure If pour interdire certains caractères ASCII dans un textbox. J'aimerais mettre un ElseIf à la fin pour autoriser le caractère ASCII 08, le backspace. Voici le code ;
Private Sub txtPrixachat_KeyPress(KeyAscii As Integer)
  If KeyAscii < 45 Or KeyAscii > 57 Then
    error = MsgBox("veuillez ne pouvez utiliser que des nombres entiers ou décimaux dans ce contôle, recommencez", vbOKOnly, "Erreur!")
  ElseIf KeyAscii = 47 Then
    error = MsgBox("veuillez ne pouvez utiliser que des nombres entiers ou décimaux dans ce contôle, recommencez", vbOKOnly, "Erreur!")
  End If
End Sub

Comment faire pour rajouter à la fin un truc du genre ;

ElseIf KeyAscii = 08 Then
"continuer le programme normalement"

Ca ne doit pas être bien comliquer, mais je ne trouve aucun exemple dans mon bouquin de VB qui puisse me mettre sur la piste...

merci :)

3 réponses

Private Sub txtPrixachat_KeyPress(KeyAscii As Integer)
If KeyAscii < 45 Or KeyAscii > 57 Then
error = MsgBox("veuillez ne pouvez utiliser que des nombres entiers ou décimaux dans ce contôle, recommencez", vbOKOnly, "Erreur!")
ElseIf KeyAscii = 47 Then
error = MsgBox("veuillez ne pouvez utiliser que des nombres entiers ou décimaux dans ce contôle, recommencez", vbOKOnly, "Erreur!")
ElseIf KeyAscii = 8 Then
"continuer le programme normalement"
End If
End Sub

C'est ca que tu voulais ???
0
Pas exactement :P

j'me suis peut être mal exprimé, mais je ne sais pas ce qu'il faut mettre en toute fin pour dire au programme que si la condition est remplie, il faut continuer normalement, ya surement un mot-clé à mettre, mais lequel, j'ai bien sur mis la chaîne "continuer le programme normalement" pour désigner ce que j'aimerais faire.
J'ai essayé un Resume Next, mais ça ne marche pas. J'ai fais une recherche sur l'explorateur d'objet avec le mot-clé "continue", mais il ne m'a sorti que
"vbDataErrContinue", qui ne fontionne pas non plus pour ce que j'aimerais faire. Voilà pourquoi je viens vous demander de l'aide :).
En clair, je ne voudrais autoriser dans ce textbox que les chiffre de 0 à 9, le signe moins (-), le point (.), et le backspace.

voilà ;)
0
Private Sub txtPrixachat_KeyPress(KeyAscii As Integer)

Const Chiffre = "1234567890-."

' Si ce n'est pas le BackSpace
If KeyAscii <> 8 Then

' Si ce n'est pas un chiffre, le point(.) ou le moin(-)
If InStr(1, Chiffre, Chr$(KeyAscii)) <= 0 Then

' On annule la touche enfoncer
KeyAscii = 0

End If

End If

End Sub

Sauf que si tu fais un Copier/Coller ca ne fonctionneras pas, seulement si tu écrire normalement dans le TextBox. Pour le Copier/Coller utilise l'evenement txtPrixachat_Change().

[mailto:NitRic28@Hotmail.com NitRic]
0
Rejoignez-nous