Problème de signe dans textbox

Résolu
Fujisaki Messages postés 7 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 8 juin 2007 - 8 juin 2007 à 15:27
Fujisaki Messages postés 7 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 8 juin 2007 - 8 juin 2007 à 19:55
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

jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
8 juin 2007 à 16:25
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 !
3
fiko81 Messages postés 381 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 5 septembre 2010 3
8 juin 2007 à 15:32
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 />
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
8 juin 2007 à 15:35
Bonjour,

ceci, entre autres :

Private Sub Text1_LostFocus()
  If Not IsNumeric(Text1.Text) Then MsgBox "non"
End Sub
0
fiko81 Messages postés 381 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 5 septembre 2010 3
8 juin 2007 à 15:39
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 />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fujisaki Messages postés 7 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 8 juin 2007
8 juin 2007 à 15:40
Merci, beaucoup!
Je viens d'essayer et ça fonctionne, c'est nickel !

Encore merci beaucoup :)
0
Fujisaki Messages postés 7 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 8 juin 2007
8 juin 2007 à 15:43
En effet, lorsqu'il n'y a rien, le msg box non apparait :(
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
8 juin 2007 à 15:45
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
0
Fujisaki Messages postés 7 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 8 juin 2007
8 juin 2007 à 16:04
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 !
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
8 juin 2007 à 16:07
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...
0
Fujisaki Messages postés 7 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 8 juin 2007
8 juin 2007 à 16:11
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
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
8 juin 2007 à 16:29
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
0
Fujisaki Messages postés 7 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 8 juin 2007
8 juin 2007 à 16:38
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
0
Fujisaki Messages postés 7 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 8 juin 2007
8 juin 2007 à 19:55
Merci beaucoup de votre aide!
mon projet marche dorénavant!

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