OVH Cloud OVH Cloud

TextBox

8 réponses
Avatar
Armando R.
Bonsoir,
comment interdire la saisie des caractères autres que les chiffres, dans un
TextBox ?
merci...

8 réponses

Avatar
David
Bonjour Armando,

Voila la routine que j'utilise :

Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(".") Then KeyAscii = Asc(",")

If KeyAscii = Asc(",") And InStr(Text2, ",") > 0 Then KeyAscii = 0


If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) And KeyAscii <> 8 And
KeyAscii <> 13 And KeyAscii <> Asc(",") And KeyAscii <> 0 Then
MsgBox "Que des chiffres et le point ", vbExclamation, "Encodage"
KeyAscii = 0
End If
End Sub

a+
Jean-Pol DAVID
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ?
"Armando R." a écrit dans le message de news:
41fa76f0$0$1991$
Bonsoir,
comment interdire la saisie des caractères autres que les chiffres, dans


un
TextBox ?
merci...




Avatar
Hervé
Salut Armando,
Une possibilité, en gérant l'erreur après avoir affecté la valeur du textbox
à une variable de type double :

Private Sub Text1_Change()
Dim Test As Double
On Error Resume Next
With Text1
Test = .Text
If Err.Number <> 0 Then
.Text = 0
.SelStart = 0
.SelLength = Len(.Text)
End If
End With
End Sub

Hervé.

"Armando R." a écrit dans le message news:
41fa76f0$0$1991$
Bonsoir,
comment interdire la saisie des caractères autres que les chiffres, dans


un
TextBox ?
merci...




Avatar
Armando R.
Merci David.

"David" a écrit dans le message de news:

Bonjour Armando,

Voila la routine que j'utilise :

Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(".") Then KeyAscii = Asc(",")

If KeyAscii = Asc(",") And InStr(Text2, ",") > 0 Then KeyAscii = 0


If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) And KeyAscii <> 8 And
KeyAscii <> 13 And KeyAscii <> Asc(",") And KeyAscii <> 0 Then
MsgBox "Que des chiffres et le point ", vbExclamation, "Encodage"
KeyAscii = 0
End If
End Sub

a+
Jean-Pol DAVID
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ?
"Armando R." a écrit dans le message de news:
41fa76f0$0$1991$
Bonsoir,
comment interdire la saisie des caractères autres que les chiffres, dans


un
TextBox ?
merci...








Avatar
François Picalausa
Hello,

Click droit > coller n'est pas inhibé!
Bien que normalement, il y ait une validation des données lors de leur
utilisation, il faut de préférence éviter ce comportement.
Il y a quelques solutions à ce propos sur la faq:
http://faq.vb.free.fr/index.php?question€

--
François Picalausa

"David" a écrit dans le message de news:

Bonjour Armando,

Voila la routine que j'utilise :

Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(".") Then KeyAscii = Asc(",")

If KeyAscii = Asc(",") And InStr(Text2, ",") > 0 Then KeyAscii = 0


If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) And KeyAscii <> 8 And
KeyAscii <> 13 And KeyAscii <> Asc(",") And KeyAscii <> 0 Then
MsgBox "Que des chiffres et le point ", vbExclamation, "Encodage"
KeyAscii = 0
End If
End Sub

a+
Jean-Pol DAVID
Bonsoir,
comment interdire la saisie des caractères autres que les chiffres,
dans un TextBox ?
merci...




Avatar
Zoury
Salut François!

t'avais pas changé l'article concernant l'utilisation de IsNumeric() ? ;O)
http://groups.google.com/groups?threadm=%23C4SvfvcDHA.2296%40TK2MSFTNGP09.phx.gbl

--
Cordialement
Yanick
MVP pour Visual Basic
"François Picalausa" a écrit dans le message de
news:
Hello,

Click droit > coller n'est pas inhibé!
Bien que normalement, il y ait une validation des données lors de leur
utilisation, il faut de préférence éviter ce comportement.
Il y a quelques solutions à ce propos sur la faq:
http://faq.vb.free.fr/index.php?question€

--
François Picalausa

"David" a écrit dans le message de news:

> Bonjour Armando,
>
> Voila la routine que j'utilise :
>
> Private Sub Text2_KeyPress(KeyAscii As Integer)
> If KeyAscii = Asc(".") Then KeyAscii = Asc(",")
>
> If KeyAscii = Asc(",") And InStr(Text2, ",") > 0 Then KeyAscii = 0
>
>
> If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) And KeyAscii <> 8 And
> KeyAscii <> 13 And KeyAscii <> Asc(",") And KeyAscii <> 0 Then
> MsgBox "Que des chiffres et le point ", vbExclamation, "Encodage"
> KeyAscii = 0
> End If
> End Sub
>
> a+
> Jean-Pol DAVID
>> Bonsoir,
>> comment interdire la saisie des caractères autres que les chiffres,
>> dans un TextBox ?
>> merci...




Avatar
Zoury
Salut Hervé! :O)


Une possibilité, en gérant l'erreur après avoir affecté la valeur du


textbox
à une variable de type double :



L'idée n'est pas folle.

Mais si on la sort de l'événement Change pour les raisons expliquées ci-bas,
l'utilisateur pourrait entré certains valeurs alpha-numérique qui seraient
interprété comme étant des Double pour les même que IsNumeric() accepte de
mauvaise valeur. regarde ce message pour un exemple :
http://groups.google.com/groups?threadm=%23C4SvfvcDHA.2296%40TK2MSFTNGP09.phx.gbl

et comme François l'a fait remarqué, il ne faut pas oublié de gèrer le
copier/coller...



Private Sub Text1_Change()


<snip>
If Err.Number <> 0 Then
.Text = 0



Personnellement, je ne place jamais de validation de ce genre dans un
programme. Suffit que l'utlisateur accroche une touche et PAF! il doit tout
retaper du début.
De plus le .Text = "0" déclenche lui même l'événement Change ce qui ne fait
pas très propre AMHA..

--
Cordialement
Yanick
MVP pour Visual Basic
Avatar
François Picalausa
Hello,

Effectivement, l'article concernant le test d'un nombre numérique a été
modifié mais pas celui du test d'une textbox... (on ne peut pas penser à
tout ;-) )
L'article en question est le suivant:
http://faq.vb.free.fr/index.php?question1

Je ne sais pas quand ce fera la modification de l'article 80, mais elle est
notée ;-)

--
François Picalausa

"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:
Salut François!

t'avais pas changé l'article concernant l'utilisation de IsNumeric()
? ;O)
http://groups.google.com/groups?threadm=%23C4SvfvcDHA.2296%40TK2MSFTNGP09.phx.gbl

Hello,

Click droit > coller n'est pas inhibé!
Bien que normalement, il y ait une validation des données lors de
leur utilisation, il faut de préférence éviter ce comportement.
Il y a quelques solutions à ce propos sur la faq:
http://faq.vb.free.fr/index.php?question€

--
François Picalausa

"David" a écrit dans le message de news:

Bonjour Armando,

Voila la routine que j'utilise :

Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(".") Then KeyAscii = Asc(",")

If KeyAscii = Asc(",") And InStr(Text2, ",") > 0 Then KeyAscii = 0


If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) And KeyAscii <> 8
And KeyAscii <> 13 And KeyAscii <> Asc(",") And KeyAscii <> 0 Then
MsgBox "Que des chiffres et le point ", vbExclamation, "Encodage"
KeyAscii = 0
End If
End Sub

a+
Jean-Pol DAVID
Bonsoir,
comment interdire la saisie des caractères autres que les chiffres,
dans un TextBox ?
merci...








Avatar
Zoury
ah ah! j'ai toujours pensé qu'il s'agissait du même article.. :OP

Bonne fin de semaine! ;O)

--
Cordialement
Yanick
MVP pour Visual Basic

"François Picalausa" a écrit dans le message de
news:
Hello,

Effectivement, l'article concernant le test d'un nombre numérique a été
modifié mais pas celui du test d'une textbox... (on ne peut pas penser à
tout ;-) )
L'article en question est le suivant:
http://faq.vb.free.fr/index.php?question1

Je ne sais pas quand ce fera la modification de l'article 80, mais elle


est
notée ;-)

--
François Picalausa

"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:
> Salut François!
>
> t'avais pas changé l'article concernant l'utilisation de IsNumeric()
> ? ;O)
>


http://groups.google.com/groups?threadm=%23C4SvfvcDHA.2296%40TK2MSFTNGP09.phx.gbl
>
>> Hello,
>>
>> Click droit > coller n'est pas inhibé!
>> Bien que normalement, il y ait une validation des données lors de
>> leur utilisation, il faut de préférence éviter ce comportement.
>> Il y a quelques solutions à ce propos sur la faq:
>> http://faq.vb.free.fr/index.php?question€
>>
>> --
>> François Picalausa
>>
>> "David" a écrit dans le message de news:
>>
>>> Bonjour Armando,
>>>
>>> Voila la routine que j'utilise :
>>>
>>> Private Sub Text2_KeyPress(KeyAscii As Integer)
>>> If KeyAscii = Asc(".") Then KeyAscii = Asc(",")
>>>
>>> If KeyAscii = Asc(",") And InStr(Text2, ",") > 0 Then KeyAscii = 0
>>>
>>>
>>> If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) And KeyAscii <> 8
>>> And KeyAscii <> 13 And KeyAscii <> Asc(",") And KeyAscii <> 0 Then
>>> MsgBox "Que des chiffres et le point ", vbExclamation, "Encodage"
>>> KeyAscii = 0
>>> End If
>>> End Sub
>>>
>>> a+
>>> Jean-Pol DAVID
>>>> Bonsoir,
>>>> comment interdire la saisie des caractères autres que les chiffres,
>>>> dans un TextBox ?
>>>> merci...