Problème de signe dans textbox

Résolu
Signaler
Messages postés
7
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
8 juin 2007
-
Messages postés
7
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
8 juin 2007
-
Bonjour,
J'ai un petit soucis de signe dans une textbox!
Dans celle-ci, seuls les nombres et signes "-" ou "+" et "." sont acceptés.
Lorsque je met uniquement un signe dans la textbox, visual basic prend ça comme un zéro quelque soit le signe "-" "+" ou ".".
J'aimerai donc forcer le fait qu'il y ait forcement un chiffre ou un nombre aprés un signe "+" ou "-", et qu'il y ait un chiffre ou un nombre avant et aprés le signe ".".

Comment puis-je faire ?

Merci :)

13 réponses

Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Voilà qui accepte tant le point que la virgule
Private Sub Text1_LostFocus()
  toto = Text1.Text
  titi toto
  If (Len(toto) > 0 And Not IsNumeric(toto)) Then MsgBox "non"
End Sub


Private Sub titi(toto)
  If InStr(toto, ".") = 0 Then Exit Sub
  ou = InStr(toto, ".")
  Mid(toto, ou, 1) = ","
End Sub

si maintenant tu veux n'accepter que le point :

tu remplace la routine titi par :

Private Sub titi(toto)
  If InStr(toto, ",") > 0 Then toto = "va te faire voir par les grecs"
  If InStr(toto, ".") = 0 Then Exit Sub
  ou = InStr(toto, ".")
  Mid(toto, ou, 1) = ","
End Sub

tout simplement (et désolé pour les Grecs !
Messages postés
381
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
5 septembre 2010
3
Salut,
Il te suffit de coder ça "J'aimerai donc forcer le fait qu'il y ait forcement un chiffre ou un
nombre aprés un signe "+" ou "-", et qu'il y ait un chiffre ou un
nombre avant et aprés le signe "."."
Les conditions que tu donnent semble très facile à coder : tu saisies l'évenement lostfocus pour vérifier la saisie et si c'est pas du avertis l'utilisateur et redonne le focus à la zone de saisie
 Fiko ;-)

La reponse vous convient pensez > Accepter <
<hr />
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Bonjour,

ceci, entre autres :

Private Sub Text1_LostFocus()
  If Not IsNumeric(Text1.Text) Then MsgBox "non"
End Sub
Messages postés
381
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
5 septembre 2010
3
Le problème avec isnumeric c'est si y'a rien dans la zone de texte elle répodra non aussi

 Fiko ;-)

La reponse vous convient pensez > Accepter <
<hr />
Messages postés
7
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
8 juin 2007

Merci, beaucoup!
Je viens d'essayer et ça fonctionne, c'est nickel !

Encore merci beaucoup :)
Messages postés
7
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
8 juin 2007

En effet, lorsqu'il n'y a rien, le msg box non apparait :(
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Et alors ?
Où est donc le problème ?
Tu veux pouvoir en plus, ne pas remplir ?
Fastoche :

Private Sub Text1_LostFocus()
  If (Len(Text1.Text) > 0 And Not IsNumeric(Text1.Text)) Then MsgBox "non"
End Sub
Messages postés
7
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
8 juin 2007

Private Sub txtCoA_LostFocus()
  If (Len(txtCoA.Text) > 0 And Not IsNumeric(txtCoA.Text)) Then
  lblRep.Caption = lblRep.Caption & vbCrLf & _
  " 1 REEL cohérent Merci! "
  txtCoA.Text = ""
  txtCoA.SetFocus
  End If
End Sub

voila ce que j'ai fait!
mais maintenant, il m'accepte même plus le signe ".", même lorsque je met 2.3

ARF IRF OURF !
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Attends,

Tu veux saisir avec quel séparateu de décimales ? la virgule ou le Point ?
Isnumeric travaille avec le séparateur "régionale" (probablement la virgule chez toi)
si tu veux travailler avec le point, il faut procéder autrement.
Tu dis...
Messages postés
7
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
8 juin 2007

Je travaille avec le point

A l'aide des keyascii :
Case 46
          If InStr(1, txtCoD.Text, ".") <> 0 Then
            GoSub Sottise
            lblRep.Caption = lblRep.Caption & vbCrLf & _
            " Point décimal incohérent! "
          End If
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Et si (quand-même), tu veux travailler plus "finement" et ne pas attendre le lostfocus pour contrôler l'utilisateur :

Fais donc un petit tour par ce code &crit par un fou :

http://www.vbfrance.com/codes/SAISIES-CONTROLEES-DIVERSES-ALPHABETIQUES-NUMERIQUES_42484.aspx
Messages postés
7
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
8 juin 2007

oula! J'viens de regarder -_-'

Un peu trop compliqué pour moi, je viens de commencer la programmation vb alors c'est un peu dur là :s
Messages postés
7
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
8 juin 2007

Merci beaucoup de votre aide!
mon projet marche dorénavant!

[javascript:Insert_Emoticon('/imgs2/smile_big.gif'); ]