TextBox

Résolu
MaX_62 Messages postés 879 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 29 juin 2007 - 7 mai 2005 à 11:53
medaz Messages postés 22 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 9 mai 2005 - 9 mai 2005 à 11:12
Bonjour,
Je débute encore en VB6, et j'ai un petit souci assez simple a régler je pense :
Je voudrais enpêcher que l'utilisateur entre des lettres ou autre dans une TextBox. Je veux que seuls les chiffres et le point soient accepter. J'ai fait quelques essais sur l'évènement KeyPress, sans succès

Merci d'avance !



-=[MaX_62]=-

8 réponses

jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
7 mai 2005 à 12:34
Bonjour, je pense que ce code répond à ton attente

Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
If Not IsNumeric(CStr((Text1.Text))) Then
MsgBox "Vous ne pouvez entrer que des valeurs numériques", vbInformation + vbCritical
Text1.Text = ""
Text1.SetFocus
End If
End Sub

jpleroisse
3
pascallac Messages postés 35 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 12 mai 2005
7 mai 2005 à 12:47
bonjour
apres avoir recus de l'aide je me fait un plaisir de vous aidez
voici le code que j'ais utilisé pour mon programme
il remplace le point par la virgule

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 46 Then 'si c'est un point (.) on le change en virgule (,)
KeyAscii = 44
End If
If InStr("0123456789," & Chr(8), Chr(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End Sub
autorise les touches numerique et virgule
la touche return est active aussi permet une correction

cordialement
pascal
3
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
7 mai 2005 à 15:03
Solution directe:

Const GWL_STYLE = (-16)
Const ES_NUMBER = &H2000&

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Sub Form_Load()
Dim Style As Long
Style = GetWindowLong(Text1.hwnd, GWL_STYLE)
SetWindowLong Text1.hwnd, GWL_STYLE, Style Or ES_NUMBER
End Sub

Daniel
3
medaz Messages postés 22 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 9 mai 2005
7 mai 2005 à 12:20
bonjour



Private Sub Text1_KeyPress(KeyAscii As Integer)

'46 c'est le keyascii du '.'

'57 c'est le keyascii du '9'

'tout ce qui n'aprtient pas a cet interval est igniorer

If KeyAscii < 46 Or KeyAscii > 57 Then

KeyAscii = 0

Exit Sub

End If



End Sub



je pense que ce code va t'aidra un peu

a+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MaX_62 Messages postés 879 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 29 juin 2007
7 mai 2005 à 13:18
Merci de vos réponses rapides



-=[MaX_62]=-
0
pascallac Messages postés 35 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 12 mai 2005
7 mai 2005 à 15:37
gobillot
certainement plus direct

mais pour moi plus difficile à comprendre

cordialement
pascal
0
MaX_62 Messages postés 879 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 29 juin 2007
7 mai 2005 à 16:00
Idem, pour moi, j'ai pas compris grand chose mais ça fonctionne bien également. Merci !



-=[MaX_62]=-
0
medaz Messages postés 22 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 9 mai 2005
9 mai 2005 à 11:12
bonjour tout le monde ca fait plaisir d'avoir plusieurs solution.



-- jpleroisse je vois que tu ecrase tout le contenu de la zone de texte si c'est numeric

ds ce cas a chaque fois que l'untilisateur ce trompe il faut qu'il retape tout depuis le debut




Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
If Not IsNumeric(CStr((Text1.Text))) Then
MsgBox "Vous ne pouvez entrer que des valeurs numériques", vbInformation + vbCritical
Text1.Text = ""
Text1.SetFocus
End If
End Sub





-- pascal c'est bien comme idee ca va me servir moi meme



merci tout le monde
0
Rejoignez-nous