à l'aide : aditionner et stocker

Fermé
Dytta Messages postés 17 Date d'inscription mardi 27 mai 2014 Statut Membre Dernière intervention 5 juin 2014 - 30 mai 2014 à 00:21
Dytta Messages postés 17 Date d'inscription mardi 27 mai 2014 Statut Membre Dernière intervention 5 juin 2014 - 30 mai 2014 à 16:25
Salut,

j'ai une feuille d'excel " A"ou je fais mes calculs, et puis je cherche à les stocker dans une autre feuille" B " une fois stocker dans cette fois, je refais mes calculs avec d'autre chiffre dans la feuille A et je les additionne aux résultats déjà stocké ?
j'ai fait ça et le stokage doit etre que sur 20 ligne dans la feuille B mais je trouve que au délà de la 20 éme ligne il y'a des chiffres qui fausse l indicateur je cherche à tester

j'espère que j'ai pu vous expliquer ma préoccupation !!!

voilà le code :
Sub simuler()
p = 12
For i = 12 To 1371

For j = 3 To 13
Feuil3.Cells(10, j) = Feuil3.Cells(i, j)
Next j
' repmplir la feuille resultat
Feuil5.Cells(i, "C") = Feuil5.Cells(i, "C").Value + Feuil4.Cells(p, "C").Value
Feuil5.Cells(i, "D") = Feuil5.Cells(i, "D").Value + Feuil4.Cells(p, "D").Value
Feuil5.Cells(i, "E") = Feuil5.Cells(i, "E").Value + Feuil4.Cells(p, "E").Value
Feuil5.Cells(i, "F") = Feuil5.Cells(i, "F").Value + Feuil4.Cells(p, "F").Value
Feuil5.Cells(i, "G") = Feuil5.Cells(i, "G").Value + Feuil4.Cells(p, "G").Value
Feuil5.Cells(i, "H") = Feuil5.Cells(i, "H").Value + Feuil4.Cells(p, "H").Value
Feuil5.Cells(i, "I") = Feuil5.Cells(i, "I").Value + Feuil4.Cells(p, "I").Value
Feuil5.Cells(i, "J") = Feuil5.Cells(i, "J").Value + Feuil4.Cells(p, "J").Value
Feuil5.Cells(i, "K") = Feuil5.Cells(i, "K").Value + Feuil4.Cells(p, "K").Value
Feuil5.Cells(i, "L") = Feuil5.Cells(i, "L").Value + Feuil4.Cells(p, "L").Value
Feuil5.Cells(i, "M") = Feuil5.Cells(i, "M").Value + Feuil4.Cells(p, "M").Value
Feuil5.Cells(i, "N") = Feuil5.Cells(i, "N").Value + Feuil4.Cells(p, "N").Value
Feuil5.Cells(i, "O") = Feuil5.Cells(i, "O").Value + Feuil4.Cells(p, "O").Value
Feuil5.Cells(i, "P") = Feuil5.Cells(i, "O").Value + Feuil4.Cells(p, "P").Value

Next i
Feuil5.Activate
End Sub


1 réponse

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524
30 mai 2014 à 08:52
Bonjour,

Dans ton programme, je ne retrouve pas les opérations décrites dans ton énoncé.

Ton code contient deux traitements distincts :

- Premièrement, tu effectues des opérations en feuille 3 avec deux boucles imbriquées (i et j). Au final, les cellules C10 à M10 seront remplies avec la valeur des cellules C1371 à M1371. Je ne vois pas l'intérêt de ce traitement puisque ces valeurs ne sont pas utilisées dans la suite du programme.

- Deuxièmement, on cumule dans les plages C12:P12 à C1371:P1371 de la feuille 5 les valeurs C12 à P12 de la feuille 4 (boucle i).

De plus, je note une erreur dans la dernière ligne du cumul
Feuil5.Cells(i, "P") = Feuil5.Cells(i, "O").Value + Feuil4.Cells(p, "P").Value

A+
0
Dytta Messages postés 17 Date d'inscription mardi 27 mai 2014 Statut Membre Dernière intervention 5 juin 2014
30 mai 2014 à 10:50
Bonjour,

Effectivement , hier j'ai remarqué k il y'a une faute pour la dernière colonne.

Pour les traitements :

le premier comme vous avez dit : il s'agit de deux boucles
le i : sert à pointer sur mon portefeuille qui commence de la ligne 12 à la ligne 1371
le j: pour pointer sur les colonnes allant de C12 à P12 ( pour i = 12)


Pour vous mettre dans le bain , une fois je pointes sur une " i " donnée ,
prenons par exemple i = 12 , la macro copie cette ligne et elle la colle dans la ligne 10 ( que j'appelle "model point" ) ensuite le " j " rempli les informations de C10 à P 10.

une fois mon model point est rempli des informations qui contient le "i" dans ce cas i =12 ,
la feuille ( feuille 4 dans notre cas ) ou il y' un tableau qui sera remplie via des formules sous excel j'aurai une plage remplie ( C12 : P32 ) .
cette plage affichera des valeurs qu'on va stocker dans la feuille 5.

une fois terminer avec " i =12" on passe à i+1 ; c'est à d que le " i = 13" , la macro va faire la meme chose en copiant les informations dans la ligne "i=13" et les coller dans la ligne 10 qu'est mon model point .
j'aurai pour une deuxième fois dans le tableau de la feuille 4, d'autres valeurs ( dans la plage C12:P32) qu'on doit stocker dans la feuille 5.


NB: chaque valeur de la plage de( C12:P32) dans la feuille 4 doit etre additionner aux valeur déja stocker dans la plage (C12:P32) de la feuille 5.

la meme chose jusqu'à la fin c'est à dire jusqu'à à 1371 ligne.

et finalement on se trouve dans la ligne de model point les informations de la derniere ligne et la plage (C12:P32) de la feuille 4 mais la plage (C12:P32) de la feuille 5 on retrouve avec un cumul de toutes lignes.

c'est à dire chaque cellule de cette plage on additionner les valeurs trouvées pour pour les i informations
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524
30 mai 2014 à 16:18
Tu m'as bien mis dans le bain ... tu m'as même noyé.
Sans fichier exemple, je ne vois pas comment trouver l'origine du défaut de calcul.

Remarque : lorsque tu écris
For j = 3 To 13
Feuil3.Cells(10, j) = Feuil3.Cells(i, j)
Next j
tu ne balayes pas les colonnes C à P mais seulement C à M.

Pour joindre un fichier : https://www.cjoint.com/

A+
0
Dytta Messages postés 17 Date d'inscription mardi 27 mai 2014 Statut Membre Dernière intervention 5 juin 2014
30 mai 2014 à 16:25
hhhhhh oui tu as raison , à force d'expliquer et de rentrer dans les détails sans pour autant voir les choses au concret ce n'est évident,
Bref en fait j'ai trouvé la solution et c nikel ;D
voilà:

Sub simuler()
Dim p As Integer

For i = 12 To 912
For j = 2 To 13
Feuil3.Cells(10, j) = Feuil3.Cells(i, j)
Next j
For p = 12 To 32
' repmplir la feuille resultat
Feuil5.Cells(p, "C") = Feuil5.Cells(p, "C").Value + Feuil4.Cells(p, "C").Value
Feuil5.Cells(p, "D") = Feuil5.Cells(p, "D").Value + Feuil4.Cells(p, "D").Value
Feuil5.Cells(p, "E") = Feuil5.Cells(p, "E").Value + Feuil4.Cells(p, "E").Value
Feuil5.Cells(p, "F") = Feuil5.Cells(p, "F").Value + Feuil4.Cells(p, "F").Value
Feuil5.Cells(p, "G") = Feuil5.Cells(p, "G").Value + Feuil4.Cells(p, "G").Value
Feuil5.Cells(p, "H") = Feuil5.Cells(p, "H").Value + Feuil4.Cells(p, "H").Value
Feuil5.Cells(p, "I") = Feuil5.Cells(p, "I").Value + Feuil4.Cells(p, "I").Value
Feuil5.Cells(p, "J") = Feuil5.Cells(p, "J").Value + Feuil4.Cells(p, "J").Value
Feuil5.Cells(p, "K") = Feuil5.Cells(p, "K").Value + Feuil4.Cells(p, "K").Value
Feuil5.Cells(p, "L") = Feuil5.Cells(p, "L").Value + Feuil4.Cells(p, "L").Value
Feuil5.Cells(p, "M") = Feuil5.Cells(p, "M").Value + Feuil4.Cells(p, "M").Value
Feuil5.Cells(p, "N") = Feuil5.Cells(p, "N").Value + Feuil4.Cells(p, "N").Value
Feuil5.Cells(p, "O") = Feuil5.Cells(p, "O").Value + Feuil4.Cells(p, "O").Value
Feuil5.Cells(p, "P") = Feuil5.Cells(p, "P").Value + Feuil4.Cells(p, "P").Value
Next p
Next i

Feuil5.Activate
End Sub
0