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

Résolu
sylvanoGE Messages postés 3 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 28 juin 2007 - 28 juin 2007 à 09:40
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 28 juin 2007 à 11:54
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

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 juin 2007 à 09:44
SAlut,
Essaie
TextBox5.Value = CInt(TextBox1.Value) + CInt(TextBox2.Value)

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

MPi
3
sylvanoGE Messages postés 3 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 28 juin 2007
28 juin 2007 à 11:46
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.
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 juin 2007 à 09:43
Ceci devrait marcher :

TextBox5.Value = TextBox1.Value + TextBox2.Value

Ou sinon :
TextBox5.Value = Val(TextBox1.Value) + Val(TextBox2.Value)
0

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

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 juin 2007 à 09:45
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
0
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
28 juin 2007 à 09:51
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
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 juin 2007 à 09:55
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
0
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
28 juin 2007 à 09:58
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
0
sylvanoGE Messages postés 3 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 28 juin 2007
28 juin 2007 à 11:23
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
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 juin 2007 à 11:28
Salut,
Dans ce cas utilises CDec à la place de CInt

@+: Ju£i?n
Pensez: Réponse acceptée
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 juin 2007 à 11:54
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
0
Rejoignez-nous