Comment faire nue addition de valeurs numérique avec plusieurs TextBox ?

Résolu
Signaler
Messages postés
3
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
28 juin 2007
-
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
-
Bonjour,

Je suis débutant en VBA Excel. Je cherche à effectuer une addition de valeurs numériques de plusieurs Texbox pour ensuite l'afficher, soit dans un TextBox ou autre chose.
J'ai réussi à obtenir mon additio par le code suivant

Range("A16") = TextBox1.Value
Range("A17") = TextBox2.Value
Range("A18") = Cells(16, 1) + Cells(17, 1)
TextBox5.Enabled = False
TextBox5.Value = Cells(18, 1)

Ce code fonctionne mais je souhaiterais ne pas passer par les cellules du logiciel Excel. Si quelqu'un peut m'indiquer une solution.

Merci.

11 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
SAlut,
Essaie
TextBox5.Value = CInt(TextBox1.Value) + CInt(TextBox2.Value)

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
En plus de CDec, tu peux utiliser CSng ou CDbl qui conservent les décimales
J'opterais pour ce dernier...

MPi
Messages postés
3
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
28 juin 2007

Merci jrivet, CDec est la solution.
Donc pour être clair, la solution est

TextBox5.Value = CDec(TextBox1.Value) + CDec(TextBox2.Value)

Cette ligne permet de faire une addition (et non une concaténation) de chiffre numérique décimaux et l'affiche dans la TextBox5

Quelques explications : la concaténation est due au fait que les TextBox (ainsi que les InputBox) renvoie avec TextBox.value un chaîne de caractères (string). La fonction CDec permet de convertir un élément en une variable numérique décimale. Il ne faut pas oublier auparavant de tester si TextBox.value est un chiffre par la fonction IsNumeric(TextBox1.Value) = True

Merci pour toutes vos réponses.
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
130
Ceci devrait marcher :

TextBox5.Value = TextBox1.Value + TextBox2.Value

Ou sinon :
TextBox5.Value = Val(TextBox1.Value) + Val(TextBox2.Value)
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
>[auteurdetail.aspx?ID=13557 DARKSIDIOUS]: ceci TextBox5.Value = TextBox1.Value + TextBox2.Value ne ferait il pas plutot une concaténation de chaine?

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
2
meme si cela n'en est pas une concaténation...
ces très mauvaises habitudes de conversions implicites ne sont pas à prendre.

Hvb a.k.a Batto
http://batto.info/ ^^x
bato.ltd .at. gmail.com
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
> [auteurdetail.aspx?ID=16938 hvb], je n'ai pas compris ce que tu as voulu dire

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
2
j'ai voulu dire que faire TextBox5.Value = TextBox1.Value + TextBox2.Value  ...
C'EST DEGUEULASSE.
J'allais dans ton sens en fait...

Hvb a.k.a Batto
http://batto.info/ ^^x
bato.ltd .at. gmail.com
Messages postés
3
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
28 juin 2007

Tout d'abord, merci pour vos réponses très rapides.

Après quelques essais, je vous informe de mes essais

la solution TextBox5.value = TextBox1.value + TextBox2.value concatène les deux valeurs numériques.
la solution TextBox5.Value Val(TextBox1.Value) + Val(TextBox2.Value) fonctionne pour les nombres entier de même que TextBox5.Value CInt(TextBox1.Value) + CInt(TextBox2.Value)

Comme s'est la première fois que je demande de l'aide sur un forum, j'ai oublié de données des infromations. Je travail avec des nombres décimaux.

Merci
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Dans ce cas utilises CDec à la place de CInt

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
Si tu estimes que ton problème est résolu pense à appuyer sur le bouton réponse acceptée sur le OU les post qui t'on aide

@+: Ju£i?n
Pensez: Réponse acceptée