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 SubJ'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 :)
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 !