Probleme de variable

Résolu
Messages postés
3
Date d'inscription
dimanche 3 septembre 2006
Statut
Membre
Dernière intervention
3 septembre 2006
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
bonjours a tous

je suis newbie dans la programmation, et j'aurais voulu avoir quelque tuyaux de la par de programmeurs plus confirmés :

dans mon programme, je voudrais entrer differentes valeur ( que des nombres ) dans des cases prévues a cet effet, les traiter ( addition ), et afficher le resultat dans une auter case. j'ai pensé a des textbox, mais lorsque je stock la valeur de ceux ci et que je demande d'afficher le resultat dans une nouvelle textbox, au lieu d'effectuer un calcul, il me met mes valeurs a la suite dans la case, bref, j'aurais voulu savoir comment effectuer des calculs de valeurs ( nombres ) a partir de données transmises par l'utilisateur.
merci d'avance pour vos reponses !!

8 réponses

Messages postés
116
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
29 septembre 2013

Dans ton cas, le + a concaténé des strings plutôt qu'additionné leurs valeurs.
Additionne la valeur des tes textebox:
textTotal.text = val(text1.text) + val(text2.text) + val(text3.text)
ou, au lieu de val(), Cint(), Cdbl(), Clng(), ...
Les puristes convertiront également TextTotal.text
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Nota : Si le contenu d'une des maTextBox contient une lettre, la fonction Val renverra 0, donc, ton calcul sera faux.
Regarde parmi les sources du site des codes qui parlent de calculettes, il y en a des tonnes : Tu apprendras les astuces
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

la fonction val est occultable SI tu déclares des variables pour des calculs plus complexe :
voir dans msdn locale Type de données

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
Pour faciliter le travail, tu as intérêt à indexer les maTextBox (tes "cases") dans lesquels tu écriras les données.
Créé le 1er maTextBox et vas dans la propriété Index écrire le chiffre 0
Ensuite, Copie/Colle ce TextBox sur ta forme. VB incrémentera seul la valeur "Index".
Pour lire le contenu du 3ème TextBox, il te suffira de faire maTextBox(2).Text (2 car le 1er est en 0)
Ensuite, pour faire la somme, il te suffit de créer une boucle :
Résultat = 0
For r = 0 To 9   ' en supposant que tu aies créé 10 maTextBox (de 0 à 9)
   Résultat = Résultat + Val(maTextBox(i).Text)
Next r
maTextBoxRésultat.Text = CStr(Résultat)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
Messages postés
3
Date d'inscription
dimanche 3 septembre 2006
Statut
Membre
Dernière intervention
3 septembre 2006

merci a tous pour vos reponses elle m'on permies d'avancer d'un grand bon dans mon programme.
cependant, Jack, j'ai une question dans ton code, comment le programme sait-il quelle textbox il doit ajouter ( ne pas ajouter toujours la valeur de la même textbox,mais a chaque fois passer a la suivante )
Messages postés
3
Date d'inscription
dimanche 3 septembre 2006
Statut
Membre
Dernière intervention
3 septembre 2006

ps, j'allais oublier, qu'est-ce que veut dire cette ligne s'il vous plait ? ==> "maTextBoxRésultat.Text = CStr(Résultat)" ainsi que ces fonctions ? ==>
"Cint(), Cdbl(), Clng(), ..."

merci d'avance !!
Messages postés
116
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
29 septembre 2013

Dans un code VB, tape Cstr (ou Cint, Cdbl...) et fais F1
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
La réponse à ta dernière question est dans ma première réponse : l'indexation de controle TextBox (je t'ai tout détailler)
CStr sert à convertir des chiffres en String - Même si ce n'ai pas obligatoire, cela évite des conflits (un jour ou l'autre) :
Ton résultat est un chiffre.
Ce qu'on entre dans une TextBox (qui porte bien son nom), est du texte.
Pour convertir un chiffre en chaine, c'est CStr
Comme l'a dit Jessica, regarde dans l'aide de VB ou sur www.msdn.com