Code VBA: somme de cellules avec boucle unique

thomas4530

XLDnaute Junior
Bonsoir,

Je débute sur VBA et je souhaiterais un petit coup de main pour terminer un premier "devoir".

Je souhaiterais développer un code permettant de réaliser des sommes de cellules, le tout étant inclus dans une boucle. J'ai développé un code (il vaut ce qu'il vaut...) mais cela ne fonctionne pas. Par exemple:
- en C4 indiquer la somme des cellules C45, C86, C127, C168... jusque C902.
- en C5 indiquer la somme des cellules C46, C87, C128, C169... jusque C903.
- en C6 indiquer la somme des cellules C47, C88, C129, C170... jusque C904.
...
- en C40 indiquer la somme des cellules C81, C122, C163, C204... jusque C938.

A chaque fois, le bond est de 41 (pour cela qu'une boucle me parait possible...

Vous comprenez l'intérêt de ma boucle, elle m'épargne 36 lignes (sachant que je dois réaliser le tout sur plusieurs colonnes...)

Voici le code auquel j'avais pensé:

Sub synthese()
Dim j As Long
For j = 4 To 40
Cells(j, 3) = Cells(j + 41, 3) + Cells(j + 82, 3) + Cells(j + 123, 3) + Cells(j + 164, 3) + Cells(j + 205, 3) + Cells(j + 246, 3) + Cells(j + 287, 3) + Cells(j + 328, 3) + Cells(j + 369, 3) + Cells(j + 410, 3) + Cells(j + 451, 3) + Cells(j + 492, 3) + Cells(j + 533, 3) + Cells(j + 574, 3) + Cells(j + 615, 3) + Cells(j + 656, 3) + Cells(j + 697, 3) + Cells(j + 738, 3) + Cells(j + 779, 3) + Cells(j + 820, 3) + Cells(j + 861, 3)
Next
End Sub

Merci de votre aide,

Thomas
 

thomas4530

XLDnaute Junior
Re : Code VBA: somme de cellules avec boucle unique

Bonjour,

Je pense avoir trouvé la solution... en contournant le problème. je viens de tester, cela fonctionne.

Il y avait peut-être mieux à faire mais c'est sans doute au delà de mes capacités actuelles.

Qu'en pense mysange ?

Thomas

Range("O45:O2131").ClearContents
Range("AB45:AB2131").ClearContents
Range("AO45:AO2131").ClearContents
Range("BB45:BB2131").ClearContents
Dim deb As Integer, fin As Integer, k As Integer, j As Integer, truc As String
For i = 3 To 66
deb = 45
fin = 2131
For k = 4 To 40
For j = deb To fin Step 41
truc = truc + Cells(j, i)
Next j
Cells(k, i) = truc
deb = deb + 1
fin = fin + 1
truc = ""
Next k
Next i
Worksheets("Données").Range("O1:O2131").copy Worksheets("AAA").Range("O1")
Worksheets("Données").Range("AB1:AB2131").copy Worksheets("AAA").Range("AB1")
Worksheets("Données").Range("AO1:AO2131").copy Worksheets("AAA").Range("AO1")
Worksheets("Données").Range("BB1:BB2131").copy Worksheets("AAA").Range("BB1")
End Sub
 

Misange

XLDnaute Barbatruc
Re : Code VBA: somme de cellules avec boucle unique

Misange n'est pas Mysogyne :) (même si elle n'a qu'une aile)
As tu testé ton code ?
Il donne bien le résultat attendu ?
Alors super, tu as trouvé ! Et la prochaine fois tu iras surement bien plus vite vu que tu auras déjà pigé le principe.
 

mutzik

XLDnaute Barbatruc
Re : Code VBA: somme de cellules avec boucle unique

re,

en fait il te faut 3 boucles
la première variable i qui va de 3 à 55 step 13 (3 puis 3+13 = 16; puis 16 +13 =29 ...)
la deuxième -j- (incluse dans la 1ère) qui va de 1 à 12 (puisque tu as 12 colonnes à traiter chaque fois)
la troisième -k- (incluse dans la deuxième) -> code que tu possèdes déjà
 

tbft

XLDnaute Accro
Re : Code VBA: somme de cellules avec boucle unique

Thomas4530,

actuellement ton fichier à une logique : le pas de 41:

en C4 indiquer la somme des cellules C45, C86, C127, C168... jusque C902.

Mais tu pourrais aussi travailler sur un fichier sans cette logique : pas de pas constant ....
 

Statistiques des forums

Discussions
312 953
Messages
2 093 894
Membres
105 863
dernier inscrit
J.BLANCHARD