Afficher uniquement que des chiffres dans une zone de texte [Résolu]

Signaler
Messages postés
2
Date d'inscription
samedi 9 décembre 2000
Statut
Membre
Dernière intervention
30 mai 2008
-
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
-
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

Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
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
Messages postés
14781
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 avril 2021
154
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
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
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
Messages postés
2
Date d'inscription
samedi 9 décembre 2000
Statut
Membre
Dernière intervention
30 mai 2008

Je vous remercie à tous les 2.
En effet c bien la bonne solution :D

Merci bcp
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
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
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
[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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
42
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
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
pile_poil , houps pas vu VB6  j'ai répondu trop vite


mais
 Iftb1.Text = vbNullString
Then ...
' c'est utile (si si )
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
42
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 ^^)

++
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
42
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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
42
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
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
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