Bonjour,
ci dessous mon code VBA pour faire des sous totaux dans un tableau
les sous totaux sont faits sur la quantité et la valeur €.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Subtotal GroupBy:=6, Function:=xlSum, TotalList:=Array(13, 14), _ Replace:=True, PageBreaks:=False, SummaryBelowData:=True Range("R6").Select
seulement je voudrais rajouter une fonction moyenne pondérée (sommeprod(X1;X2)/somme(X1)) à chaque changement de critère (référence produit dans notre tableau), sur le même modèle que les sommes des sous.totaux.
ci dessous la formule manuelle pour le premier critère : les données sont sur 2 colonnes fixes (dc pas de pb) et dans cet exemple 4 lignes (nbre variable qui pose problème)
(sur la cellule R6)
le problème est sur les lignes : les données sont calculées sur les mêmes colonne à chaque fois (X1 en M, X2 en R), il y a juste le nombre de ligne qui varie en fonction de la répétition du critère...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ActiveCell.FormulaR1C1 = _ "=SUMPRODUCT(R[-4]C:R[-1]C,R[-4]C[-5]:R[-1]C[-5])/SUM(R[-4]C[-5]:R[-1]C[-5])" Range("R7").Select
comment identifier les lignes (annotations en gras dans le code ci dessus......)
Je vous remercie
Partager