OVH Cloud OVH Cloud

caractères numériques seuls textbox

10 réponses
Avatar
Pascal
bonjour
Y a t il avec vb 2005 une manière élégante de n'autoriser seulement que des
nombres entiers ou décimaux dans un textbox et retour arrière(effacement)?
J'ai trouvé ceci : mais ces codes n'offrent pas toutes les conditions
énumérées ci dessus semble-t-il...


Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) _
Handles TextBox1.KeyPress

If Not Char.IsDigit(e.KeyChar) Then
'Tous les caractères non numériques ne sont pas traités sur le
TextBox.
e.Handled = True
End If

End Sub


Private Sub TextBox_Validate(Cancel As Boolean)

' Vérifie si la valeur entrée est numérique
If Not IsNumeric(TextBox.Text) Then
Cancel = True ' Annule la validation de contrôle
MsgBox "Veuillez entrer un nombre!"
End If

End Sub


Private Sub TextBox_KeyPress(KeyAscii As Integer)

' Si la valeur n'est pas comprise entre 0 et 9 et qu'elle n'est pas un
backspace
If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8) Then
KeyAscii = 0 'on annule la pression sur la touche
End If

End Sub

http://www.scalpa.info

10 réponses

Avatar
TroXsA
Bonjour,

Pourquoi ne pas faire une petite procedure avec sortie si pas Numérique ? :)
-------------------- Exemple ----------------------
If IsNumeric(e.KeyChar) = False Then
MsgBox("Ceci n'est pas un numéro")
Exit Sub
End If
---------------------- Fin -----------------------

Apres il faut géré plusieurs conditions mais le principe est là, a vous de
jouer pour la suite, si vous avez des difficultés a le réaliser je pourrais
vous aidez !

Cordialement
--

Mail : http://cerbermail.com/?rIXgaw9Xsl
Site : http://troxsa.info
Avatar
TroXsA
Re bonjour

Je me suis permis de faire un petit exemple qui fonctionne plutot bien
http://troxsa.info/index.php?option=com_content&task=view&id@&Itemid=2
a modifier si besoin

Cordialement

--

Mail : http://cerbermail.com/?rIXgaw9Xsl
Site : http://troxsa.info


"Pascal" a écrit dans le message de news:
43f4da90$0$21291$
bonjour
Y a t il avec vb 2005 une manière élégante de n'autoriser seulement que
des nombres entiers ou décimaux dans un textbox et retour
arrière(effacement)?
J'ai trouvé ceci : mais ces codes n'offrent pas toutes les conditions
énumérées ci dessus semble-t-il...


Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) _
Handles TextBox1.KeyPress

If Not Char.IsDigit(e.KeyChar) Then
'Tous les caractères non numériques ne sont pas traités sur le
TextBox.
e.Handled = True
End If

End Sub


Private Sub TextBox_Validate(Cancel As Boolean)

' Vérifie si la valeur entrée est numérique
If Not IsNumeric(TextBox.Text) Then
Cancel = True ' Annule la validation de contrôle
MsgBox "Veuillez entrer un nombre!"
End If

End Sub


Private Sub TextBox_KeyPress(KeyAscii As Integer)

' Si la valeur n'est pas comprise entre 0 et 9 et qu'elle n'est pas un
backspace
If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8) Then
KeyAscii = 0 'on annule la pression sur la touche
End If

End Sub

http://www.scalpa.info



Avatar
Pascal
--
bonjour
super merci pour le plus...>>
http://www.scalpa.info







Avatar
Pascal
bonjour

j'ai revu le code et m'aperçois que cela ne fonctionne que pour les entiers
et pas les décimaux... dommage !
Private Sub TxtBxProposition_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TxtBxProposition.KeyPress

If Asc(e.KeyChar) = Keys.Back Or Asc(e.KeyChar) = Keys.Clear Then

Exit Sub

End If

If IsNumeric(e.KeyChar) = False Then

MsgBox("Ceci n'est pas un numéro")

e.Handled = True

Exit Sub

End If

End Sub


http://www.scalpa.info
"TroXsA" a écrit dans le message de news:
dt48sp$qbt$
Re bonjour

Je me suis permis de faire un petit exemple qui fonctionne plutot bien
http://troxsa.info/index.php?option=com_content&task=view&id@&Itemid=2
a modifier si besoin

Cordialement

--

Mail : http://cerbermail.com/?rIXgaw9Xsl
Site : http://troxsa.info


"Pascal" a écrit dans le message de news:
43f4da90$0$21291$
bonjour
Y a t il avec vb 2005 une manière élégante de n'autoriser seulement que
des nombres entiers ou décimaux dans un textbox et retour
arrière(effacement)?
J'ai trouvé ceci : mais ces codes n'offrent pas toutes les conditions
énumérées ci dessus semble-t-il...


Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) _
Handles TextBox1.KeyPress

If Not Char.IsDigit(e.KeyChar) Then
'Tous les caractères non numériques ne sont pas traités sur le
TextBox.
e.Handled = True
End If

End Sub


Private Sub TextBox_Validate(Cancel As Boolean)

' Vérifie si la valeur entrée est numérique
If Not IsNumeric(TextBox.Text) Then
Cancel = True ' Annule la validation de contrôle
MsgBox "Veuillez entrer un nombre!"
End If

End Sub


Private Sub TextBox_KeyPress(KeyAscii As Integer)

' Si la valeur n'est pas comprise entre 0 et 9 et qu'elle n'est pas un
backspace
If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8) Then
KeyAscii = 0 'on annule la pression sur la touche
End If

End Sub

http://www.scalpa.info







Avatar
TroXsA
re bonjour :)

Voulez vous que je face la petite modication pour le decimale ?
c'est tres simple a faire ! faut ajouté une petite condition et le
tour est joué

@+
Avatar
Pascal
bonjour
merci de votre proposition : étant grand débutant je suis preneur de tout ce
qui peut me faire avancer...


http://www.scalpa.info
"TroXsA" a écrit dans le message de news:

re bonjour :)

Voulez vous que je face la petite modication pour le decimale ?
c'est tres simple a faire ! faut ajouté une petite condition et le
tour est joué

@+
Avatar
TroXsA
Bonjour,

Vu que vous etes en version 2005 le mieux serait quand meme d'utiliser
le controle (nouveau controle) MaskedTextBox et dans les propriétés
Mask = Numérique pour la virgule mettre un point !

sinon ça donnerais ce code là
_______________________________________________________
If Asc(e.KeyChar) = Keys.Back Or Asc(".") Or Asc(",") Then
If Asc(e.KeyChar) = Asc(".") Then
e.KeyChar = ","
End If
Exit Sub
End If

If IsNumeric(e.KeyChar) = False Then
MsgBox("Ceci n'est pas un numéro")
e.Handled = True
Exit Sub
End If
Avatar
Thierry HUGUET [MS]
L'idéal serait d'utiliser le contrôle MaskedTextBox au lieu de TextBox.

Thierry HUGUET
Microsoft


"Pascal" a écrit dans le message de news:
43f4da90$0$21291$
bonjour
Y a t il avec vb 2005 une manière élégante de n'autoriser seulement que
des nombres entiers ou décimaux dans un textbox et retour
arrière(effacement)?
J'ai trouvé ceci : mais ces codes n'offrent pas toutes les conditions
énumérées ci dessus semble-t-il...


Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) _
Handles TextBox1.KeyPress

If Not Char.IsDigit(e.KeyChar) Then
'Tous les caractères non numériques ne sont pas traités sur le
TextBox.
e.Handled = True
End If

End Sub


Private Sub TextBox_Validate(Cancel As Boolean)

' Vérifie si la valeur entrée est numérique
If Not IsNumeric(TextBox.Text) Then
Cancel = True ' Annule la validation de contrôle
MsgBox "Veuillez entrer un nombre!"
End If

End Sub


Private Sub TextBox_KeyPress(KeyAscii As Integer)

' Si la valeur n'est pas comprise entre 0 et 9 et qu'elle n'est pas un
backspace
If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8) Then
KeyAscii = 0 'on annule la pression sur la touche
End If

End Sub

http://www.scalpa.info



Avatar
Pascal
> L'idéal serait d'utiliser le contrôle MaskedTextBox au lieu de TextBox.



C'est vrai seulement quand tu connais la taille et le format du nombre à
l'avance...

Thierry HUGUET
Microsoft







Avatar
TroXsA
Rien n'empêche de redimensionner le mask dynamiquement, c'est aussi facile a
faire ...

--

Mail : http://cerbermail.com/?rIXgaw9Xsl
Site : http://troxsa.info


"Pascal" a écrit dans le message de news:
43fc531f$0$6676$

L'idéal serait d'utiliser le contrôle MaskedTextBox au lieu de TextBox.



C'est vrai seulement quand tu connais la taille et le format du nombre à
l'avance...

Thierry HUGUET
Microsoft