Clase PivotTable (Excel VBA)

La clase PivotTable representa un informe de tabla dinámica de una hoja de cálculo.

Los principales procedimientos de la clase PivotTable son AddDataField, AddFields, PivotTables.Add y SlicerPivotTables.AddPivotTable

Set

Para usar una variable de clase PivotTable, primero debe ser instanciado, por ejemplo

Dim pvt as PivotTable
Set pvt = ActiveCell.PivotTable

Los siguientes procedimientos se pueden usar para establecer variables de clase PivotTable : PivotCache.SourceData, PivotCache.CreatePivotTable, PivotCell.Parent, PivotCell.PivotTable, PivotFields.Parent, PivotLayout.PivotTable, PivotTableChangeList.Parent, PivotTables.Item, PivotTables.Add, Range.PivotTable, SlicerPivotTables.Item, Worksheet.PivotTableWizard, Workbook.PivotTables, Worksheet.PivotTables y SlicerCache.PivotTables

For Each

A continuación, se muestra un ejemplo de cómo procesar los elementos PivotTable en una colección.

Dim pvt As PivotTable
For Each pvt In Application.PivotTables
	
Next pvt

Temas

Algunos procedimientos de esta clase se han agrupado en temas y se describen en páginas temáticas separadas

Add with its procedures AddDataField, AddFields, PivotTables.Add y SlicerPivotTables.AddPivotTable
Value with its procedures AllocationValue, RefreshDataSourceValues y Value
Column with its procedures ColumnFields, ColumnGrand, ColumnRange y PivotColumnAxis
Row with its procedures CompactRowIndent, PivotRowAxis, RowFields, RowGrand y RowRange
Formula with its procedures ConvertToFormulas, ListFormulas y PivotFormulas
Display/Show with its procedures DisplayContextTooltips, DisplayEmptyColumn, DisplayEmptyRow, DisplayErrorString, DisplayFieldCaptions, DisplayImmediateItems, DisplayMemberPropertyTooltips, DisplayNullString, ShowDrillIndicators y ShowValuesRow
Enable with its procedures EnableDataValueEditing, EnableDrilldown, EnableFieldDialog, EnableFieldList, EnableWizard y EnableWriteback
Sort/Order with its procedures FieldListSortAscending y SortUsingCustomLists
Name with its procedures GrandTotalName y RefreshName
Print with its procedures PageFieldOrder, PageFields, PageFieldStyle, PageFieldWrapCount, PageRange, PageRangeCells, PrintDrillIndicators, PrintTitles, RepeatItemsOnEachPrintedPage, ShowPageMultipleItemLabel, ShowPages y SubtotalHiddenPageItems

Métodos

Otros Métodos

AllocateChanges - Realiza una operación de reescritura para todas las celdas editadas de un informe de tabla dinámica basado en un origen de datos OLAP.

CalculatedFields - Devuelve una colección CalculatedFields que representa todos los campos calculados del informe de tabla dinámica especificado.

ChangeConnection - Cambia la conexión del objeto PivotTable especificado.

ChangePivotCache - Cambia el objeto PivotCache de la tabla dinámicaespecificada.

ClearAllFilters - El método ClearAllFilters elimina todos los filtros aplicados actualmente a la tabla dinámica.

ClearTable - El método ClearTable sirve para borrar una tabla dinámica.

CommitChanges - Realiza una operación de confirmación en el origen de datos de un informe de tabla dinámica basado en un origen de datos OLAP.

CreateCubeFile - Crea un archivo de cubo a partir de un informe de tabla dinámica conectado a un origen de datos OLAP (Online Analytical Processing).

DiscardChanges - Descarta todos los cambios realizados en las celdas editadas de un informe de tabla dinámica basado en un origen de datos OLAP.

DrillDown - Permite profundizar en los datos dentro de una jerarquía de cubos basada en OLAP o en PowerPivot.

DrillTo - Permite profundizar en una ubicación dentro de una jerarquía de cubos basada en OLAP o en PowerPivot.

DrillUp - Permite profundizar en los datos dentro de una jerarquía de cubos basada en OLAP o en PowerPivot.

GetData - Devuelve el valor para el archivado de datos en una tabla dinámica.

GetPivotData - Devuelve un objeto Range con información sobre un elemento de datos en un informe de tabla dinámica.

PivotCache - Devuelve un objeto PivotCache que representa la caché del informe de tabla dinámica especificado.

PivotFields - Devuelve un objeto que representa un solo campo de tabla dinámica (un objeto PivotField ) o una colección de los campos visibles y ocultos (un objeto PivotFields ) en el informe de tabla dinámica.

PivotSelect - Selecciona parte de un informe de tabla dinámica.

PivotTableWizard - Crea y devuelve un objeto PivotTable.

PivotValueCell - Recuperar el objeto PivotValueCell de una tabla dinámica dada, siempre que haya determinados índices de fila y de columna.

RefreshTable - Actualiza el informe de tabla dinámica a partir de los datos de origen.

RepeatAllLabels - Especifica si se van a repetir etiquetas de elementos para todos los campos dinámicos de la tabla dinámica especificada.

RowAxisLayout - Este método se utiliza para definir simultáneamente opciones de diseño para todos los campos dinámicos existentes.

SubtotalLocation - Este método cambia la ubicación del subtotal para todos los campos dinámicos existentes.

Update - Actualiza el informe de tabla dinámica.

PivotTables.Item - Devuelve un solo objeto de una colección.

SlicerPivotTables.RemovePivotTable - Quita una referencia a una tabla dinámica de la colección SlicerPivotTables.

Propiedades

ActiveFilters Indica el filtro actualmente activo en la tabla dinámica especificada.

Dim pfsActiveFilters As PivotFilters
Set pfsActiveFilters = ActiveCell.PivotTable.ActiveFilters

Allocation Devuelve o establece si se debe ejecutar una instrucción Update Cube para cada celda que se modifica, o solo cuando el usuario elige calcular los cambios al realizar análisis de hipótesis en una tabla dinámica basada en un origen de datos OLAP.

ActiveCell.PivotTable.Allocation = xlAutomaticAllocation

AllocationMethod Devuelve o establece el método que se va a usar para asignar valores al realizar análisis de hipótesis en un informe de tabla dinámica basado en un origen de datos OLAP.

ActiveCell.PivotTable.AllocationMethod = xlEqualAllocation

AllocationWeightExpression Devuelve o establece la expresión de ponderación de MDX que se va a usar al realizar un análisis de hipótesis en un informe de tabla dinámica basado en un origen de datos OLAP.

ActiveCell.PivotTable.AllocationWeightExpression =

AllowMultipleFilters Establece o recupera un valor que indica si un campo dinámico tiene varios filtros aplicados simultáneamente.

ActiveCell.PivotTable.AllowMultipleFilters = True

AlternativeText Devuelve o establece la cadena de texto descriptivo (alternativa) para la tabla especificada.

ActiveCell.PivotTable.AlternativeText =

CacheIndex Devuelve o establece el número de índice de la caché de la tabla dinámica.

ActiveCell.PivotTable.CacheIndex =

CalculatedMembers Devuelve una colección CalculatedMembers que representa todos los miembros calculados y medidas calculadas para una tabla dinámica OLAP.

Dim cmsCalculatedMembers As CalculatedMembers
Set cmsCalculatedMembers = ActiveCell.PivotTable.CalculatedMembers

CalculatedMembersInFilters Devuelve o establece si se van a evaluar los miembros calculados de servidores OLAP en filtros.

ActiveCell.PivotTable.CalculatedMembersInFilters = True

ChangeList Devuelve la colección PivotTableChangeList que representa la lista de cambios realizados en la tabla dinámica especificada en función de un origen de datos OLAP.

Dim ptcChangeList As PivotTableChangeList
Set ptcChangeList = ActiveCell.PivotTable.ChangeList

CompactLayoutColumnHeader Especifica el título que se muestra en el encabezado de columna de una tabla dinámica con un formato de filas compactas.

ActiveCell.PivotTable.CompactLayoutColumnHeader =

CompactLayoutRowHeader Especifica el título que se muestra en el encabezado de fila de una tabla dinámica con un formato de filas compactas.

ActiveCell.PivotTable.CompactLayoutRowHeader =

CubeFields Devuelve la colección CubeFields .

Dim cfsCubeFields As CubeFields
Set cfsCubeFields = ActiveCell.PivotTable.CubeFields

DataBodyRange Devuelve un objeto Range que representa el rango de valores de una tabla dinámica.

Dim rngDataBodyRange As Range
Set rngDataBodyRange = ActiveCell.PivotTable.DataBodyRange

DataFields Devuelve un objeto que representa un solo campo de tabla dinámica (un objeto PivotField ) o una colección de todos los campos (un objeto PivotFields ) que se muestran actualmente como campos de datos.

Dim pfsDataFields As PivotFields
Set pfsDataFields = ActiveCell.PivotTable.DataFields

DataLabelRange Devuelve un objeto Range que representa el rango que contiene las etiquetas de los campos de datos del informe de tabla dinámica.

Dim rngDataLabelRange As Range
Set rngDataLabelRange = ActiveCell.PivotTable.DataLabelRange

DataPivotField Devuelve un objeto PivotField que representa todos los campos de datos de una tabla dinámica.

Dim pvtfDataPivotField As PivotField
Set pvtfDataPivotField = ActiveCell.PivotTable.DataPivotField

ErrorString Devuelve o establece un valor de tipo String que representa la cadena que se muestra en las celdas que contienen errores cuando la propiedad DisplayErrorString es True.

ActiveCell.PivotTable.ErrorString =

HasAutoFormat True si se aplica formato al informe de tabla dinámica automáticamente cuando se actualiza o cuando se mueven los campos.

ActiveCell.PivotTable.HasAutoFormat = True

Hidden Comprueba si la tabla dinámica existe en el nivel de hoja de cálculo.

Dim booHidden As Boolean
booHidden = ActiveCell.PivotTable.Hidden

HiddenFields Devuelve un objeto que representa un solo campo de tabla dinámica (un objeto PivotField ) o una colección de todos los campos (un objeto PivotFields ) que no se muestran actualmente como campos de fila, columna, página o datos.

Dim pvtfHiddenFields As PivotField
Set pvtfHiddenFields = ActiveCell.PivotTable.HiddenFields

InGridDropZones Esta propiedad se utiliza para activar o desactivar las zonas de colocación dentro de una cuadrícula de un objeto PivotTable.

ActiveCell.PivotTable.InGridDropZones = True

InnerDetail Devuelve o establece el nombre del campo que se mostrará como detalle cuando la propiedad ShowDetail sea True en el campo de filas o de columnas más interno.

ActiveCell.PivotTable.InnerDetail =

LayoutRowDefault Esta propiedad especifica la configuración de diseño de los objetos PivotField cuando se agregan a la tabla dinámica por primera vez.

ActiveCell.PivotTable.LayoutRowDefault = xlCompactRow

Location Obtiene o establece una cadena que representa la celda superior izquierda del cuerpo del objeto PivotTable especificado.

ActiveCell.PivotTable.Location =

ManualUpdate True si el informe de tabla dinámica sólo se actualiza cuando lo solicita el usuario.

ActiveCell.PivotTable.ManualUpdate = True

MDX Devuelve una String que indica la expresión multidimensional MDX (Multidimensional Expression) que se enviará al proveedor para completar la vista actual de la tabla dinámica.

Dim strMDX As String
strMDX = ActiveCell.PivotTable.MDX

MergeLabels True si el elemento de fila exterior, el elemento de columna, el subtotal y los rótulos de totales generales del informe de tabla dinámica usan celdas combinadas.

ActiveCell.PivotTable.MergeLabels = True

Name Devuelve o establece un valor de tipo String que representa el nombre del objeto.

ActiveCell.PivotTable.Name =

NullString Devuelve o establece la cadena que se muestra en las celdas que contienen valores nulos cuando la propiedad DisplayNullString es true.

ActiveCell.PivotTable.NullString = "NA"

Parent Devuelve el objeto primario del objeto especificado.

Dim objParent As Object
Set objParent = ActiveCell.PivotTable.Parent

PivotChart Devuelve un objeto Shape que representa el gráfico dinámico independiente del informe de tabla dinámica oculto especificado.

Dim shpPivotChart As Shape
Set shpPivotChart = ActiveCell.PivotTable.PivotChart

PivotSelection Devuelve o establece la selección de la tabla dinámica, en el formato de selección de informe de tabla dinámica estándar.

ActiveCell.PivotTable.PivotSelection =

PivotSelectionStandard Devuelve o establece una cadena String que indica la selección de tabla dinámica en el formato estándar de informe de tabla dinámica usando la configuración de inglés (Estados Unidos).

ActiveCell.PivotTable.PivotSelectionStandard = "1.57"

PreserveFormatting True si el formato se conserva cuando el informe se actualiza o se vuelve a calcular por operaciones como la dinamización, ordenación o cambio de los elementos del campo de página.

ActiveCell.PivotTable.PreserveFormatting = True

RefreshDate Devuelve la fecha de la última actualización del informe de tabla dinámica.

Dim dtRefreshDate As Date
dtRefreshDate = ActiveCell.PivotTable.RefreshDate

SaveData Es True si los datos del informe de tabla dinámica se guardan con el libro.

ActiveCell.PivotTable.SaveData = True

SelectionMode Devuelve o establece el modo de selección estructurada del informe de tabla dinámica.

ActiveCell.PivotTable.SelectionMode = xlBlanks

ShowTableStyleColumnHeaders La propiedad ShowTableStyleColumnHeaders se establece en true si los encabezados de columna se deben mostrar en la tabla dinámica.

ActiveCell.PivotTable.ShowTableStyleColumnHeaders = True

ShowTableStyleColumnStripes La propiedad ShowTableStyleColumnStripes muestra las columnas en bandas, de tal manera que las columnas pares tienen un formato distinto al de las columnas impares.

ActiveCell.PivotTable.ShowTableStyleColumnStripes = True

ShowTableStyleLastColumn Devuelve o establece si se muestra la última columna del objeto PivotTable especificado.

ActiveCell.PivotTable.ShowTableStyleLastColumn = True

ShowTableStyleRowHeaders La propiedad ShowTableStyleRowHeaders se establece en true si los encabezados de fila se deben mostrar en la tabla dinámica.

ActiveCell.PivotTable.ShowTableStyleRowHeaders = True

ShowTableStyleRowStripes La propiedad ShowTableStyleRowStripes muestra las filas en bandas, de tal manera que las filas pares tienen un formato distinto al de las filas impares.

ActiveCell.PivotTable.ShowTableStyleRowStripes = True

Slicers Devuelve la colección slicers de la tabla dinámica especificada.

Dim slcsSlicers As Slicers
Set slcsSlicers = ActiveCell.PivotTable.Slicers

SmallGrid True si Microsoft Excel utiliza una cuadrícula que tiene dos celdas de ancho y dos de profundidad para un nuevo informe de tabla dinámica.

ActiveCell.PivotTable.SmallGrid = True

SourceData Devuelve el origen de datos del informe de tabla dinámica, tal como se muestra en la siguiente tabla.

ActiveCell.PivotTable.SourceData =

Summary Devuelve o establece la descripción asociada a la cadena de texto alternativa de la tabla especificada.

ActiveCell.PivotTable.Summary =

TableRange1 Devuelve un objeto Range que representa el rango que contiene el informe de tabla dinámica completo, pero no incluye los campos de página.

Dim rngTableRange1 As Range
Set rngTableRange1 = ActiveCell.PivotTable.TableRange1

TableRange2 Devuelve un objeto Range que representa el rango que contiene el informe de tabla dinámica completo, incluidos los campos de página.

Dim rngTableRange2 As Range
Set rngTableRange2 = ActiveCell.PivotTable.TableRange2

TableStyle2 La propiedad TableStyle2 especifica el estilo de tabla dinámica aplicada en cada momento a la tabla dinámica.

ActiveCell.PivotTable.TableStyle2 = "PivotStyleLight17"

Tag Devuelve o establece una cadena guardada con el informe de tabla dinámica.

ActiveCell.PivotTable.Tag = "Product Sales by Region"

TotalsAnnotation True si se muestra un*asterisco () junto a cada subtotal y valor de total general en el informe de tabla dinámica especificado si el informe se basa en un origen de datos OLAP.

ActiveCell.PivotTable.TotalsAnnotation = True

VacatedStyle Devuelve o establece el estilo aplicado a las celdas que queden vacías cuando se actualice el informe de tabla dinámica.

ActiveCell.PivotTable.VacatedStyle = "BlackAndBlue"

Version Devuelve un valor XlPivotTableVersionList que representa el número de versión de Microsoft Excel.

Dim xptVersion As XlPivotTableVersionList
xptVersion = ActiveCell.PivotTable.Version

ViewCalculatedMembers Si se establece en True en (valor predeterminado), se pueden ver los miembros calculados de las tablas dinámicas OLAP (Online Analytical Processing).

ActiveCell.PivotTable.ViewCalculatedMembers = True

VisibleFields Devuelve un objeto que representa un solo campo en un informe de tabla dinámica (un objeto PivotField ) o una colección de todos los campos visibles (un objeto PivotFields ).

Dim pfsVisibleFields As PivotFields
Set pfsVisibleFields = ActiveCell.PivotTable.VisibleFields

VisualTotals True (valor predeterminado) para que las tablas dinámicas OLAP (Online Analytical Processing) actualicen los totales cuando se oculte un elemento de la vista.

ActiveCell.PivotTable.VisualTotals = True

VisualTotalsForSets Devuelve o establece si se van a incluir elementos filtrados en los totales de conjuntos con nombre para la tabla dinámica especificada.

ActiveCell.PivotTable.VisualTotalsForSets = True

PivotTables.Count Devuelve un valor Long que representa el número de objetos de la colección.

Dim lngCount As Long
lngCount = ActiveSheet.PivotTables.Count

PivotTables.Parent Devuelve el objeto primario del objeto especificado.

Dim objParent As Object
Set objParent = ActiveSheet.PivotTables.Parent

SlicerPivotTables.Count Devuelve el número de objetos de la colección.

Dim lngCount As Long
lngCount = ActiveWorkbook.SlicerCaches(1).PivotTables.Count

SlicerPivotTables.Item Devuelve un solo objeto PivotTable de la colección.

Dim pvtItem As PivotTable
Set pvtItem = ActiveWorkbook.SlicerCaches(1).PivotTables(Index:=1)

SlicerPivotTables.Parent Devuelve el objeto SlicerCache que es el elemento primario de la colección SlicerPivotTables especificada. Solo lectura.

Dim objParent As Object
Set objParent = ActiveWorkbook.SlicerCaches(1).PivotTables.Parent