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 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
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 2
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 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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 2
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 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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 2
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 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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 2
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
Rejoignez-nous