Probleme addition en vba excel

louisblonce Messages postés 3 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 19 novembre 2010 - 19 nov. 2010 à 15:05
 Profil bloqué - 19 nov. 2010 à 20:42
Bonjour,

Je débute en VBA.
Il m'arrive parfois q'une addition devienne une concaténation. Exemple de code

z=x+y

x et y sont rentré par un inputbox, au lieu de faire l'addition le programme fait la concaténation des deux nombres?
J'ai bien déclaré le type des variables.
Quelqu'un a déjà t -il eu ce problème et sait il le résoudre.

Merci

5 réponses

Profil bloqué
19 nov. 2010 à 20:42
Salut
Dans le premier cas x est considéré comme un variant ( on ne sait pas le type exact de la variable) : le programme met les variants bout à bout ( concaténation)
Dans le second cas x est de type double. quand tu fais z = x + y le programme en déduit que ce sont des valeurs numériques grâce au fait que x est un double et il additionne les variables

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
1
Number7 Messages postés 23 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 27 décembre 2010 1
19 nov. 2010 à 16:08
J'ai jamais eu ce problème. Mais si je l'avais, j'utiliserais la Function VAL

Z = Val(X) + Val(Y)

Ma passion : l'électronique et la programmation
0
louisblonce Messages postés 3 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 19 novembre 2010
19 nov. 2010 à 16:28
En fait si je tape le code suivant, le programme fait une concaténation au lieu d'une addition
Sub essaiaddition()

Dim x, y, z As Double


x = InputBox("donner x")
y = InputBox("donner y")

z = x + y

MsgBox (z)

End Sub

Si par contre j'écris en inversant dans la déclaration de variable x avec z, ca marche ??????????
Sub essaiaddition()

Dim z, y, x As Double


x = InputBox("donner x")
y = InputBox("donner y")

z = x + y

MsgBox (z)

End Sub
0
Profil bloqué
19 nov. 2010 à 18:15
Salut
Il faut spécifier le type de variables pour chaque variable
Dim x as Double, y as Double, z As Double

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
0

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

Posez votre question
louisblonce Messages postés 3 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 19 novembre 2010
19 nov. 2010 à 18:46
Merci pour ces réponses, mais je n'ai toujours pas l'explication
0
Rejoignez-nous