Textbox accepte seulement les valeur numériques

Bonjour

Mais question est très simple et pourtant je n'arrive pas à la résoudre

dans une userform j'ai un Textbox1 , je veux que ce textbox n'accepte que les valeurs numériques ( avec ou sans virgule) ensuite qu'il doit accepter et lire en virgule le point du pavé numérique.

Si quel qu’il peut me donner le code .merci infiniment le forum.

Bonjour

A tester

Private Sub txt_bras_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If InStr(1, "0123456789.,", Chr(KeyAscii)) = 0 And KeyAscii <> 8 Then

MsgBox "Caractère non autorisé"

KeyAscii = 0

End If

End Sub

CDT

Bonjour,

C'est pour insérer sur un tableau par la suite ou c'est pour une lecture ?

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
   If InStr("0123456789,-.", Chr(KeyAscii)) = 0 Then KeyAscii = 0: Beep
End Sub

Autorise seulement les caractères 0 1 2 3 4 5 6 7 8 9 , . et - dans ta textbox

Je ne sais pas si cela te suffit ?

Cordialement,

Avie.

Bonjour,

Tu peux essayer cela

    If IsNumeric(Replace(TextBox1.Value, ".", ",")) Then
        MsgBox "Correct !"
    Else
        MsgBox "Saisie incorrecte !"
    End If

A+

Avie a écrit :

Bonjour,

C'est pour insérer sur un tableau par la suite ou c'est pour une lecture ?

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
   If InStr("0123456789,-.", Chr(KeyAscii)) = 0 Then KeyAscii = 0: Beep
End Sub

Autorise seulement les caractères 0 1 2 3 4 5 6 7 8 9 , . et - dans ta textbox

Je ne sais pas si cela te suffit ?

Cordialement,

Avie.

Merci ça fonctionne super bien , mais il accepte la saisie suivante ( 123.123.123 ) qui n'est pas une valeur numérique, mais je ne veux avoir que des valeurs numérique car par la suite j'ai besoin de faire la somme .merci comme même vous m'avez résolu 99% du probléme

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
   If InStr("0123456789,-.", Chr(KeyAscii)) = 0 Or TextBox1.SelStart > 0 And Chr(KeyAscii) = "-" Or InStr(TextBox1.Value, ",") <> 0 And Chr(KeyAscii) = "," Or InStr(TextBox1.Value, ".") <> 0 And Chr(KeyAscii) = "." Then KeyAscii = 0: Beep
End Sub

Autorise une seule virgule ou un seul point (Faut-il ajouter "interdire virgule si point" et "interdire point si virgule" ?)

Autorise aussi seulement le signe "-" au début du nombre.

Tiens nous au courant et

EDITION :

Alternative avec "Interdit de mettre un point si il y a une virgule déjà" et "interdit de mettre une virgule si il y a un point déjà"

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
   If InStr("0123456789,-.", Chr(KeyAscii)) = 0 Or TextBox1.SelStart > 0 And Chr(KeyAscii) = "-" Or InStr(TextBox1.Value, ",") <> 0 And Chr(KeyAscii) = "," Or InStr(TextBox1.Value, ".") <> 0 And Chr(KeyAscii) = "." Or InStr(TextBox1.Value, ".") <> 0 And Chr(KeyAscii) = "," Or InStr(TextBox1.Value, ",") <> 0 And Chr(KeyAscii) = "." Then KeyAscii = 0: Beep
End Sub

Cordialement,

Avie.

merci beaucoup problème résolu

Rechercher des sujets similaires à "textbox accepte seulement valeur numeriques"