2017-10-02 1 views
1

Excel 2013. J'ai un tableau croisé dynamique qui croît et se rétracte selon les lignes de données. Par exemple, 1. Pour l'étiquette de la rangée, j'ai la liste de tous les produits 2. Pour l'étiquette de colonne, j'ai la liste des fabricants 3. Pour les valeurs, j'ai un compte de 1 pour le fabricant. Cela me dirait combien de fabricants produisent le même produit.Existe-t-il un moyen de trouver la plage d'un tableau croisé dynamique

Par conséquent, la liste de produits (ligne) se développe, tout comme la liste des fabricants (colonnes). Ma question: Y a-t-il un moyen d'obtenir la portée du pivot, par exemple si les tableaux pivotants commencent à A1 et qu'il y a 10 produits et 10 fabricants, alors la gamme du tableau pivotant serait de 1 $ A: $ K $ 12 (sans Total pour la ligne ou Total pour la colonne).

Existe-t-il un moyen rapide d'extraire la gamme $ A $ 1: $ K $ 12?

Nous vous remercions à l'avance,

G.

+2

https://peltiertech.com/referencing-pivot-table-ranges-in-vba/ –

+0

Très cool, merci Tim. – Gerry

Répondre

0

Je vous vois Excel VBA tagué.

Oui si vous êtes en mesure de considérer l'aire de répartition Range(cells(1,1),cells(12,12)) au lieu de Range("A1:K12")

Il est un moyen de compter les éléments sur le terrain dans VBA.

Rcount = Sheets("YOUR SHEET NAME").PivotTables(1).PivotFields("YOUR ROW NAME").PivotItems.Count 
Ccount = Sheets("YOUR SHEET NAME").PivotTables(1).PivotFields("YOUR COL NAME").PivotItems.Count 

De là, vous auriez besoin que d'ajouter 2 pour compenser les lignes/colonnes supplémentaires

Rcount = Rcount+2 
Ccount = Ccount+2 

Dim TableRNG as range 
Set TableRNG = Range(cells(1,1),cells(Rcount,Ccount)) 

Difficile d'aller plus loin tout sans savoir ce que vous essayez d'accomplir et je ne suis pas sûr que vous vraiment demander pour une solution VBA.

+0

Merci Josh. G. – Gerry