Boucle For To avec range("I:I")

Bonjour,

J'ai besoin de votre aide pour réaliser une boucle un peu trop complexe pour moi.

Voici le code de base :

Sub FR_PRChg()

For i = 3 To 9999
For x = 8 To 24

If Sheets("PR_Chg").Cells(i, 1) <> "" Then

Sheets("PR_Chg").Cells(i, 7) = WorksheetFunction.SumIfs(Worksheets("SAP").Range("H:H"), Worksheets("SAP").Range("E:E") _
, Worksheets("PR_Chg").Cells(i, 5), Worksheets("SAP").Range("G:G"), "Ex1", Worksheets("SAP").Range("A:A") _
, Cells(i, 1), Worksheets("SAP").Range("C:C"), Cells(i, 3), Worksheets("SAP").Range("F:F"), Cells(i, 6))

Sheets("PR_Chg").Cells(i, x) = WorksheetFunction.SumIfs(Worksheets("SAP").Range("I:I"), Worksheets("SAP").Range("E:E") _
, Worksheets("PR_Chg").Cells(i, 5), Worksheets("SAP").Range("G:G"), "marque", Worksheets("SAP").Range("A:A") _
, Cells(i, 1), Worksheets("SAP").Range("C:C"), Cells(i, 3), Worksheets("SAP").Range("F:F"), Cells(i, 6))

End If

Next
Next

End Sub

J'aimerais pouvoir automatiser le:

.Range("I:I")

pour qu'à chaque fois que la boucle sur la colonne (x) recommence, je puisse faire le sumifs sur une nouvelle colonne. (I, J, K....)

En gros, si je devais écrire mon code 100x, ça donnerait ceci (j'ai enlevé le "x" du Cells(i,x))

Sheets("PR_Chg").Cells(i, 8) = WorksheetFunction.SumIfs(Worksheets("SAP").Range("J:J"), Worksheets("SAP").Range("E:E") _
, Worksheets("PR_Chg").Cells(i, 5), Worksheets("SAP").Range("G:G"), "marque", Worksheets("SAP").Range("A:A") _
, Cells(i, 1), Worksheets("SAP").Range("C:C"), Cells(i, 3), Worksheets("SAP").Range("F:F"), Cells(i, 6))

Sheets("PR_Chg").Cells(i, 9) = WorksheetFunction.SumIfs(Worksheets("SAP").Range("K:K"), Worksheets("SAP").Range("E:E") _
, Worksheets("PR_Chg").Cells(i, 5), Worksheets("SAP").Range("G:G"), "marque", Worksheets("SAP").Range("A:A") _
, Cells(i, 1), Worksheets("SAP").Range("C:C"), Cells(i, 3), Worksheets("SAP").Range("F:F"), Cells(i, 6))

Sheets("PR_Chg").Cells(i, 10) = WorksheetFunction.SumIfs(Worksheets("SAP").Range("L:L"), Worksheets("SAP").Range("E:E") _
, Worksheets("PR_Chg").Cells(i, 5), Worksheets("SAP").Range("G:G"), "marque", Worksheets("SAP").Range("A:A") _
, Cells(i, 1), Worksheets("SAP").Range("C:C"), Cells(i, 3), Worksheets("SAP").Range("F:F"), Cells(i, 6))

Merci pour votre aide!

Nicolas

Bonjour Nico,

Peux-tu joindre ton fichier s'il te plaît ? J'ai du mal à visualiser.

Merci

Bonjour Gal,

Merci pour ta réponse, je modifie un peu le fichier pour les données confidentielles et je le mets ici :)

Gal,

7test-chg-px.xlsm (209.94 Ko)

Ci-joint le fichier!

Merci

11test-chg-px.zip (173.41 Ko)

Hello,

Est-ce que ça correspond à ce que tu souhaites ?

Ton exemple ne retenait que les catégories "marque", je ne sais pas si tu souhaitais conserver ça. Le mien ne trie que sur les 6 premières colonnes, qui apparaissent réellement dans l'onglet, mais tu pourras facilement rajouter une condition sur la colonne catégorie si besoin !

Rechercher des sujets similaires à "boucle range"