probleme d'addition avec Visual Basic 6

probleme d'addition avec Visual Basic 6 - VB/VBA/VBS - Programmation

Marsh Posté le 29-09-2004 à 10:57:25    

bon voila pour commencer  
 
Private Sub cmdCalc_Click()
    lblTpatins.Caption = txtBleu.Text + txtJaune.Text
    cmdImprimer.SetFocus
     
End Sub

 
je suis débutant et j'ai acquis le livre "visual basic 6" de chez Grosoft ainsi que le logiciel qui va avec :D
je suis en train de suivre le 2eme cours du livre (pour ceux qui connaissent) qui me propose de calculer le prix de patins a roulette.
 
le probleme c'est que en tapant le code ci-dessus, pour le bouton effectuant le calcul, au lieu de me faire une addition il me fait un "et" (and ou &)
 
j'explique dans mes cases "txtbleu" et "txtjaune" je met des chiffres (exemple 2 et 3) au lieu de me calculer le résultat (ici 5) et de me l'afficher dans "lblTpatins" il m'affiche "23"
 
j'ai fait le test avec exactement le meme code mais a la place d'une addition je lui est fait faire  
une soustraction (2-3 = -1)
une division (2/3 = 0.66666....)
une multiplication (2*3 = 6)
et a chaque fois ca a très bien fonctionné alors pourquoi quand je met un "+" le résultat est 23 au lieu de 5 ????
 
mici @++

Reply

Marsh Posté le 29-09-2004 à 10:57:25   

Reply

Marsh Posté le 29-09-2004 à 12:20:03    

normal que ça te fasse un &, les textbox contiennent des données de type texte, tu dois donc les convertir en données numériques via les fonctions Cxxx (Clng, Cdbl, etc...)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-09-2004 à 13:09:44    

ok merci  
je vais essayer


Message édité par BHeaD le 29-09-2004 à 13:09:58
Reply

Marsh Posté le 29-09-2004 à 14:43:05    

ca y est j'ai réglé mon problème en faite je fait ca en plus de travail (je suis admin réseau) et j'avait pas encore lut la suite du livre  :(  dsl pour le dérangement
voici la parti du code qui va bien (si ca interesse quelqu'un)
 
Private Sub cmdCalc_Click()
         
    lblTpatins.Caption = Val(txtBleu.Text) + Val(txtJaune)
    lblPtotal.Caption = Val(lblTpatins.Caption) * Val(txtPrix.Text) * (1 + Val(txtTaux.Text) / 100)
    lblPtotal.Caption = Format(lblPtotal.Caption, "currency" )
     
    cmdImprimer.SetFocus
     
End Sub

 
il faut utiliser la fonction val ()
 
voila @++


Message édité par BHeaD le 29-09-2004 à 14:44:07
Reply

Marsh Posté le 30-09-2004 à 16:32:43    

La fonction val() permet de convertir une expression en valeur numérique à partir des paramètres régionaux de la machine. Ainsi Val(2,3) ne marche pas sur une machine ou le séparateur décimal est le point par contre Val(2.3) oui.
Les fonctions de conversion Cxxx elles ne tiennent pas compte des paramètres regionaux et sont basées sur le séparateur décimal point et aucun séparateur de milliers.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed