Boucle

ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010 - 15 juil. 2008 à 09:09
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010 - 15 juil. 2008 à 11:04
Me.vaSpread1.GetText 2, vaSpread1.ActiveRow, zVal
nVal = zVal
'Colonne 2 - somme des cellules de la ligne avant cellule active
For i = 3 To vaSpread1.ActiveCol - 1
    Me.vaSpread1.GetText i, Me.vaSpread1.ActiveRow, zVal
    nVal = nVal - zVal
Next i
Me.Label1.Caption = nVal
'Somme des cellules - somme des cellules de la ligne avant cellule active
Me.vaSpread2.GetText 3, Row, zVal1
nVal1 = zVal1
For k = 4 To Col
    Me.vaSpread2.GetText k, Row, zVal1
    nVal1 = nVal1 + zVal1
Next k
Me.Label2.Caption = (nVal1 - zVal)

Mon
probléme c'est au niveau du résultat que j'affiche dans le label2. J'ai
pas le bon résultat car je voudrai qu'il m'affiche le résultat de
nVal1( dans la première boucle)-zVal1(dans la deuxième boucle). Faut-il
imbriqué les boucles? Pouvez-vous m'aider?

12 réponses

ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
15 juil. 2008 à 09:24
Pour info mon zval est un variant et nval1 est en double.Peut etre c'est pour ça qu'il le prend pas en compte?
Sinon devrai-je convertir?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 juil. 2008 à 09:51
ta première boucle tourne avec Me.vaSpread1.ActiveRow
la seconde avec Row (déclaré où ? donc surment 0, tu as pas du mettre d'Option Explicit ni de compilation systématique)

pas compris ce que tu cherches a obtenir....
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 juil. 2008 à 09:54
en nettoyant un peu, on pourrais faire ce genre de code (a adapter a ce que tu souhaite faire)

Dim i As Long
Dim nSum As Double
Dim nCol2 As Double
Dim zVal As Variant
'Somme des cellules - somme des cellules de la ligne avant cellule active
For i = 3 To vaSpread1.ActiveCol - 1
vaSpread2.GetText i, vaSpread1.ActiveRow, zVal
nSum = nSum + zVal
Next i

vaSpread1.GetText 2, vaSpread1.ActiveRow, zVal
nCol2 = zVal

Me.Label1.Caption = FormatNumber(nCol2 - nSum, 2)
Me.Label2.Caption = FormatNumber(nSum, 2)
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
15 juil. 2008 à 10:21
C'est plus propre mais le résultat dans le label2 est la somme des cellules du vaSpread2 alors que je souhaite avoir cette somme - la somme des valeurs des cellules dans le vaspread1 jusqu'à ActiveRow - 1.
J'espére que je suis clair. Tu me comprends?
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 juil. 2008 à 10:29
j'avais pas vu que tu jouais avec deux spreads.
je trouve que tu bidouille plus que tu ne programme... tu as toutes les billes, souvent et ne sais qu'en faire. va falloir se remonter un peu les manches si tu veux en faire ton boulot.

refais simplement une boucle, sur ton autre spread.
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
15 juil. 2008 à 10:33
C'est pour ça que j'avais mis deux boucles comme ce que j'ai postulé plus haut.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 juil. 2008 à 10:38
mais tu as fait ta soustraction finale avec zVal, qui est en fait, la valeur de la cellule se trouvant un cran (colonne) a gauche de la colonne active...

ne voulais tu pas utiliser nVal ?
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
15 juil. 2008 à 10:46
C'est bien la soustraction "Me.Label2.Caption = (nVal1 - zVal)" que je veux mais les valeurs que j'obtiennes sont fausses c'est pour ça que je postule pour savoir ce qui cloche dans mon code.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 juil. 2008 à 10:51
encore faudrait il savoir ce que tu souhaites obtenir d'autre...
tu dis que c'est ce que tu veux faire, mais les valeurs obtenues sont fausses... que pouvons nous savoir de la validité de ton code, si syntaxiquement, rien ne nous choque...

on n'a pas de visuel de ce que tu as, de ce que tu veux, de ce que tu souhaites...

difficile effort d'imagination, non ?

imbriquer les boucles, peut être, mais comme je ne suis pas sur d'avoir saisi ta volonté...
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
15 juil. 2008 à 10:58
Peut etre que c'est un probléme de format parceque quant je mets un point d'arret pour voir les valeurs: les valeurs de zval sont mis entre guillemets comme un string et les valeurs de nval ne sont pas en guillemets.
Devrai-je convertir?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 juil. 2008 à 11:02
non, zVal est un Variant, GetText renvoie surement le texte, sans se poser de questions.
quand tu fais nVal = zVal, VB fais un cast et cherche a interpreter zVal comme un Double
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
15 juil. 2008 à 11:04
ok, merci. Je vais encore vérifier les valeurs que j'inscrits vu que le code est syntaxiquement ciorrect.
Merci encore de ta patience.
0
Rejoignez-nous