Additionner deux variables

etoumat Messages postés 54 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 5 juillet 2007 - 23 mars 2007 à 09:19
chaudier37 Messages postés 209 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 15 juillet 2009 - 10 oct. 2007 à 22:59
Bonjour

J'ai un problème on ne paut plus bête mais je trouve pas la solutions. J'ai une variable qui s'apel " a " et une autre qui s'apel " r ".

JE veux faire : a = r + r

bien évidemment j'ai déclaré public r as integer

le prolème est que quand "r = 20", par ex," a " n'est pas égale à "40" mais à "2020". Car enfaite r="20" et non r=20.
Est se que quelqu'un à une idée pour que quand r 20, r + r 40 ????

13 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
23 mars 2007 à 09:25
Tu t'es surement mélangé les pinceaux quelque part dans ta déclaration de r !

La preuve ?

Private Sub Command1_Click()
  Dim r As Integer, a As Integer
  r = 20
  a = r + r
  MsgBox a
End Sub
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 mars 2007 à 09:27
Salut,
Pas mieux

@+: Ju£i?n
Pensez: Réponse acceptée
0
etoumat Messages postés 54 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 5 juillet 2007
23 mars 2007 à 09:37
Je croit savoir d'où vient le problème mais je c toujours pas quoi faire.
En faite j'ai une textbox qui s'apel mgb et "r = mgb.value"j'ai bien déclaré public r as integer avant mais r "20" et non r 20. Le problème viens surement des "" autour du 20.

Comment faire ???
0
ragna25 Messages postés 21 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 19 avril 2007
23 mars 2007 à 09:40
salut essaye peut etre avec r = Me.mgb
0

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

Posez votre question
etoumat Messages postés 54 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 5 juillet 2007
23 mars 2007 à 09:41
En faite il suffit de faire r = int(mgb.value) et tout marche bien

Merci beaucoup
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
23 mars 2007 à 09:46
Tu devrais prendre la très bonne habitude de mettre, tout en haut de chaque code (form, module) :

Option Explicit

Il est clair que si r est un integer, tu ne peux avoir r = "20"
val("20") est un integer, par contre
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 mars 2007 à 09:51
Re,
Il y a tout de même quelque chose que je ne comprends pas.
Car VB est capable de faire la Cast seul (dans ce cas precis)

Exemple avec mgb un TextBox

Option Explicit
Dim R As Integer
Dim A As Integer
Private Sub Form_Load()
R = mgb.Text
A = R + R
MsgBox A
End Sub , ----
[code.aspx?ID=41455 By Renfield]

Ceci donnera bien 40 et non 2020 si R est integer il ne prendra JAMAIS "20" donc la somme ne donnera jamais "2020" .
NB: Le .Value me fait penser que tu n'est pas en VB6, donc avec quoi travailles tu?

@+: Ju£i?n
Pensez: Réponse acceptée
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
23 mars 2007 à 09:56
Salut, ma foi, même si c'est pas du VB6 mais du VBA cela fonctionne très bien!

Private Sub CommandButton1_Click()


Dim r As Integer
Dim a As Integer


r = TextBox1.Value
a = r + r
MsgBox a


End Sub

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
etoumat Messages postés 54 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 5 juillet 2007
23 mars 2007 à 13:38
Dsl pour le retard. Je travail sur Windows NT  et j'ai pas le choix. Avec VBA 97 sur windows NT il y a plusieurs bug assez incompréhensible, des fois VB n'en fait qu'a sa tête mais bon.... tempi
Merci encore et bonne journée tchao
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
23 mars 2007 à 13:55
C'est moi qui vais ici exprimer ma désolation, etoumat !
Ni NT ni VB ne pourraient avoir, dans une affaire aussi élémentaire, la moindre incidence...


Relis donc tout et, surtout, révise tes déclarations de variables et les notions de type.


Ainsi qu'il te l'a été fait remarquer par l'un d'entre nous, VB aurait su récupérer ton erreur, sauf si.... (hé oui) tu as mal déclaré en public ta variable r et que cette déclaration s'est donc perdue.... je ne sais où....(ce qui fait qu'ensuite r était une chaîne de caractères et rien d'autre pour M. VB) qui, une autre fois, aurait su rectifier tout seul, malgré toi, si, vraiment, tu lui avais dit de façon compréhensible et claire par lui, que r était de type integer).


J'ai longtemps travaillé avec NT et VB et ai bien rencontré d'autres petits problèmes inhérents à NT, mais en aucun cas à un tel niveau élémentaire...
0
Khattabza Messages postés 4 Date d'inscription dimanche 6 juin 2004 Statut Membre Dernière intervention 26 avril 2007
23 mars 2007 à 16:28
Zahir,
Essaye d'utiliser CInt() ou Val()
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
23 mars 2007 à 23:10
Et assures-toi que a et r sont déclarées une seule fois.
Surtout si tu les déclares en Public dans un module ou en entête de feuille

MPi
0
chaudier37 Messages postés 209 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 15 juillet 2009
10 oct. 2007 à 22:59
Private Sub CommandButton1_Click()
Dim a As Integer, b As Integer
a = 20
b = 20
MsgBox " la somme des produits est " & a + b
End Sub

bonjour, j'ai fait l'exercice cela fonctionne.
0
Rejoignez-nous