Afficher uniquement que des chiffres dans une zone de texte

Résolu
marcoslb
Messages postés
2
Date d'inscription
samedi 9 décembre 2000
Statut
Membre
Dernière intervention
30 mai 2008
- 30 mai 2008 à 11:31
gillardg
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
- 30 mai 2008 à 15:21
Bonjour,

ça fait longtemps que je suis votre forum et je me décide maintenant à poster un message dont la réponse sera toute bête je suppose lol
Voila je souhaite ne pas afficher les caractères autres que des chiffres dans une zone de texte.
Pouvez vous me dire quelles instructions sont à faire SVP ? je suppose que ça doit être avec les caractères Ascii mais en VB je ne sais pas comment faire.

 Merci de votre aide :)

Marc

13 réponses

pile_poil
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
30 mai 2008 à 12:01
bonjour
de tête, donc à vérifier!
Private Sub ZoneText_KeyPress(KeyAscii As Integer)
    If KeyAscii < Asc("0") Or KeyAscii > Asc("9")  Then KeyAscii = 0
End Sub

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
3
NHenry
Messages postés
14997
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
24 septembre 2022
158
30 mai 2008 à 12:02
Bonjour

Sans les chiffres ?

Dans l'event KeyPress :
If InStr(Chr$(KeyCode),"0123456789">0 then
    KeyCode=0
End if

Et dans l'event change, tu regarde la chaine de bout en bout avec un for et une méthode comme la précédente en adaptant un peu.

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
3
Profil bloqué
30 mai 2008 à 12:07
Salut Marcoslb

Suis cet exemple : la touche Entrée (Return) valide la saisie
Si tu tapes autre chose qu'un chiffre, cela efface la zone de texte

Private Sub Text1_KeyPress(KeyAscii As Integer)

    If KeyAscii <> 13 Then Exit Sub
    If IsNumeric(Text1.Text) = False Then
        MsgBox "Vous ne devez tapez que des chiffres", vbCritical
        Text1.Text = ""
        Exit Sub
    End If

End Sub

GRENIER Alain
3
marcoslb
Messages postés
2
Date d'inscription
samedi 9 décembre 2000
Statut
Membre
Dernière intervention
30 mai 2008

30 mai 2008 à 12:07
Je vous remercie à tous les 2.
En effet c bien la bonne solution :D

Merci bcp
0

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

Posez votre question
gillardg
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
3
30 mai 2008 à 13:26
Private



Sub
TextBox1_TextChanged(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
tb1.TextChanged


If
tb1.Text = vbNullString

Then






Else






If
IsNumeric(tb1.Text)

Then

'ton code ici

Elsetb1.Focus()

SendKeys.Send(

"{BACKSPACE}")

' MessageBox.Show("Only Numbers allowed", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand)

End
If

End
If

End
Sub
0
pile_poil
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
30 mai 2008 à 13:33
[auteur/GILLARDG/1360034.aspx gillardg]

bonjour

c'est cool VB.NET lol deux boucles pour faire (presque) la meme chose qu'une seule ligne en VB6  qui est le langage le l'auteur du post !

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
0
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
30 mai 2008 à 13:44
salut,

et dans vos propositions personne ne gère la touche effacer?
l'utilisateur n'a pas le droit de faire d'erreur ou pas le droit de se corriger....
vous êtes dur ^^

voici une autre solution, par API
http://www.codyx.org/snippet_textbox-numerique-seulement_53.aspx

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
gillardg
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
3
30 mai 2008 à 13:51
pile_poil , houps pas vu VB6  j'ai répondu trop vite


mais
 Iftb1.Text = vbNullString
Then ...
' c'est utile (si si )
0
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
30 mai 2008 à 14:12
gillardg
->
en dotnet c'est pas vbNullString
mais string.empty

de plus pas besoin de faire "si condition alors rien, sinon"
juste
"si faux, alors"

if not tb1.Text
=string.empty then
ou en vérifiant la taille

pareil avec isnumeric, comme on ne fera rien si c'est bon, on peut regrouper les 2 tests avec un andalso

enfin tu envoies un un BACKSPACE

ok, je tape "123456789"
puis je click entre le 1 et le 2 et tape "a"
eh ouai.... il ne faut supposer de rien

(oui il va boucler jusqu'au 1, ce n'est pas la question ^^)

++
0
gillardg
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
3
30 mai 2008 à 14:26
PCPT ,

If



Not
tb1.Text =

String
.Empty

AndAlso
IsNumeric(tb1.Text)

Then






'c'est des chiffres






Else

SendKeys.Send(




"{BACKSPACE}"
)

c'est vrai que c'est plus simple
faut dire que je code un peu brouillon, on me l'a déjà dit
0
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
30 mai 2008 à 14:39
presque....

If tb1.Text = String.Empty OrAlsoNot( IsNumeric(tb1.Text)) Then SendKeys.Send("{BACKSPACE}")

(même si j'aime pas ce backspace....)

ou un not devant ta (condition) mais le double not est aussi peu utile que peu esthétique ;)

<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
30 mai 2008 à 14:45
euh je m'emmêle ^^

ci-dessus c'est pas bon..., on va pas e effacer si c'est vide

If Not(IsNumeric(tb1.Text)) AndAlsotb1.Text.LengthThen send....

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
gillardg
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
3
30 mai 2008 à 15:21
If  IsNumeric(tb1.Text)
Then

'c'est des chiffres qu'on veut non?
'if  isnumeric then is not empty??

'le problème c'est que isnumeric accepte des carractères qui ne sont pas des chiffres (+-)

Else

SendKeys.Send(

"{BACKSPACE}" )

bof
0