Bonjour,
Pour simplifier le temps de traitement d'un code, je souhaite faire un calcul par le biais d'un tableau plutot que directement sur la feuille excel.
A la base mon calcul fonctionne très bien et cela donne :
Pour le mettre en tableau voilà ce que j'ai tenté :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 j = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To j Cells(i, 11) = Application.WorksheetFunction.SumIfs(Range(Cells(2, 10), Cells(j, 10)), _ Range(Cells(2, 2), Cells(j, 2)), Cells(i, 2), Range(Cells(2, 9), Cells(j, 9)), Cells(i, 9)) Next
Mais les méthodes 'Range()' échouent toutes..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim T As Variant, H As Variant, L As Variant T = Range(Cells(2, 2), Cells(j, 11)) For H = LBound(T, 1) To UBound(T, 1) T(H, 10) = Application.WorksheetFunction.SumIfs(Range(T(1, 9), T(UBound(T, 1), 9)), _ Range(T(1, 1), T(UBound(T, 1), 1)), T(H, 1), Range(T(1, 8), T(UBound(T, 1), 8)), T(H, 8)) Next H Range(Cells(2, 2), Cells(j, 11)) = T
Comment faut-il utiliser la fonction SumIfs et les ranges() dans un tableau de variants ??
Si besoin de plus de compréhension, je mettrais un partie de mon fichier excel (modifié) qui nécessite cette fonction.
Merci d'avance,
Julien
Partager