Clase PivotField (Excel VBA)

La clase PivotField representa un campo de un informe de tabla dinámica.

Los principales procedimientos de la clase PivotField son CalculatedFields.Add, AddPageItem y Delete

Set

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

Dim pvtf as PivotField
Set pvtf = ActiveCell.PivotField

Los siguientes procedimientos se pueden usar para establecer variables de clase PivotField : PivotTable.CalculatedFields, CalculatedFields.Item, CalculatedFields.Add, PivotCell.DataField, PivotCell.PivotField, ChildField, ParentField, PropertyParentField, PivotFields.Item, PivotFilter.DataField, PivotFilter.PivotField, PivotFilter.MemberPropertyField, PivotItem.Parent, PivotItems.Parent, PivotTable.AddDataField, PivotTable.ColumnFields, PivotTable.DataFields, PivotTable.DataPivotField, PivotTable.HiddenFields, PivotTable.PageFields, PivotTable.RowFields, PivotTable.VisibleFields, Range.PivotField, CubeField.PivotFields, PivotTable.PivotFields, PivotTable.ColumnFields, PivotTable.DataFields, PivotTable.HiddenFields, PivotTable.PageFields, PivotTable.RowFields y PivotTable.VisibleFields

For Each

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

Dim pvtfCalculatedField As PivotField
For Each pvtfCalculatedField In Application.CalculatedFields()
	
Next pvtfCalculatedField

Temas

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

Sort/Order with its procedures AutoSort, AutoSortCustomSubtotal, AutoSortField, AutoSortOrder, AutoSortPivotLine, DatabaseSort y PropertyOrder
Display/Show with its procedures DisplayAsCaption, DisplayAsTooltip, DisplayInReport, ShowAllItems, ShowDetail y ShowingInAxis
Formula with its procedures Formula y StandardFormula
Name with its procedures MemberPropertyCaption, SourceCaption, SourceName, SubtotalName y UseMemberPropertyAsCaption

Métodos

Los principales métodos de la clase PivotField son

CalculatedFields.Add - Crea un nuevo campo calculado.

Dim strName As String: strName = 
Dim strFormula As String: strFormula = 
Dim pvtf As PivotField
Set pvtf = ActiveCell.PivotTable.CalculatedFields.Add(Name:=strName, Formula:=strFormula)

AddPageItem - Agrega un elemento adicional a un campo de página de varios elementos.

Dim strItem As String: strItem =  "[Product].[All Products].[Food].[Eggs]"
ActiveCell.PivotField.AddPageItem Item:=strItem

Delete - Elimina el objeto.

ActiveCell.PivotField.Delete

Otros Métodos

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

AutoGroup - Agrupa automáticamente los campos dinámicos en una tabla dinámica.

AutoShow - Muestra el número de elementos superiores o inferiores de un campo de filas, páginas o columnas del informe de tabla dinámica especificado.

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

ClearAllFilters - Al llamar a este método, se eliminan todos los filtros aplicados actualmente al campo dinámico.

ClearLabelFilters - Este método elimina todos los filtros de rótulo o todos los filtros de fecha de la colección PivotFilters del campo dinámico.

ClearManualFilter - Proporciona una forma sencilla de establecer la propiedad visible en true para todos los elementos de un campo dinámico de las tablas dinámicas y de vaciar las colecciones HiddenItemsList y VisibleItemsList en las tablas dinámicas OLAP.

ClearValueFilters - Al llamar a este método, se eliminan todos los filtros de valor de la colección PivotFilters del campo dinámico.

DrillTo - El método DrillTo permite profundizar hasta un campo dinámico especificado desde otro campo dinámico.

PivotItems - Devuelve un objeto que representa un solo elemento de tabla dinámica (un objeto PivotItem ) o una colección de todos los elementos visibles y ocultos (un objeto PivotItems ) del campo especificado.

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

Propiedades

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

Dim lngCount As Long
lngCount = ActiveCell.PivotTable.CalculatedFields.Count

CalculatedFields.Parent Devuelve el objeto primario del objeto especificado.

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

AllItemsVisible Se usa para recuperar un valor booleano que indica si se ha aplicado un filtro manual al campo dinámico.

Dim booAllItemsVisible As Boolean
booAllItemsVisible = ActiveCell.PivotField.AllItemsVisible

AutoShowCount Devuelve el número de elementos superiores o inferiores que se muestran automáticamente en el campo de la tabla dinámica especificado.

Dim lngAutoShowCount As Long
lngAutoShowCount = ActiveCell.PivotField.AutoShowCount

AutoShowField Devuelve el nombre del campo de datos que se utiliza para determinar qué elementos superiores o inferiores se muestran, de manera automática, en el campo de la tabla dinámica especificado.

Dim strAutoShowField As String
strAutoShowField = ActiveCell.PivotField.AutoShowField

AutoShowRange Devuelve la constante xlTop si los elementos superiores se muestran automáticamente en el campo de la tabla dinámica especificado; Devuelve xlBottom si se muestran los elementos inferiores.

Dim lngAutoShowRange As Long
lngAutoShowRange = ActiveCell.PivotField.AutoShowRange

AutoShowType Devuelve la constante xlAutomatic si Automostrar está habilitada para el campo de la tabla dinámica especificado; Devuelve xlManual si Automostrar está deshabilitado.

Dim lngAutoShowType As Long
lngAutoShowType = ActiveCell.PivotField.AutoShowType

BaseField Devuelve o establece el campo base de un cálculo personalizado.

ActiveCell.PivotField.BaseField =

BaseItem Devuelve o establece el elemento del campo base para un cálculo personalizado.

ActiveCell.PivotField.BaseItem =

Calculation Devuelve o establece un valor XlPivotFieldCalculation que representa el tipo de cálculo realizado por el campo especificado.

ActiveCell.PivotField.Calculation = xlDifferenceFrom

Caption Devuelve un valor de tipo String que representa el texto del rótulo del campo dinámico.

ActiveCell.PivotField.Caption =

ChildField Devuelve un objeto PivotField que representa el campo secundario del campo especificado (si el campo está agrupado y tiene un campo secundario).

Dim pvtfChildField As PivotField
Set pvtfChildField = ActiveCell.PivotField.ChildField

ChildItems Devuelve un objeto que representa un solo elemento de tabla dinámica (un objeto PivotItem ) o una colección de todos los elementos (un objeto PivotItems ) que están agrupados como secundarios en el campo especificado o secundarios del elemento especificado.

Dim pvtiChildItems As PivotItem
Set pvtiChildItems = ActiveCell.PivotField.ChildItems

CubeField Devuelve el objeto CubeField desde el que se desciende el campo de tabla dinámica especificado.

Dim cbfCubeField As CubeField
Set cbfCubeField = ActiveCell.PivotField.CubeField

CurrentPage Devuelve o establece la página actual que se muestra para el campo de página (válido solamente para campos de página).

ActiveCell.PivotField.CurrentPage =

CurrentPageList Devuelve o establece una matriz de cadenas correspondiente a la lista de elementos incluida en un campo de página de varios elementos de un informe de tabla dinámica.

ActiveCell.PivotField.CurrentPageList =

CurrentPageName Devuelve o establece la página mostrada actualmente del informe de tabla dinámica especificado.

ActiveCell.PivotField.CurrentPageName =

DataRange Devuelve un objeto Range tal como se muestra en la siguiente tabla.

Dim rngDataRange As Range
Set rngDataRange = ActiveCell.PivotField.DataRange

DataType Devuelve un valor XlPivotFieldDataType que representa el tipo de datos del campo de la tabla dinámica.

Dim xpfDataType As XlPivotFieldDataType
xpfDataType = ActiveCell.PivotField.DataType

DragToColumn Es True si es posible arrastrar el campo especificado a la posición de la columna.

ActiveCell.PivotField.DragToColumn = True

DragToData Es True si es posible arrastrar el campo especificado a la posición de los datos.

ActiveCell.PivotField.DragToData = True

DragToHide Es True si es posible ocultar el campo especificado al arrastrarlo fuera del informe de tabla dinámica.

ActiveCell.PivotField.DragToHide = True

DragToPage Es True si es posible arrastrar el campo especificado a la posición de la página.

ActiveCell.PivotField.DragToPage = True

DragToRow Es True si es posible arrastrar el campo especificado a la posición de la fila.

ActiveCell.PivotField.DragToRow = True

DrilledDown Es True si se establece la marca del campo o el elemento de tabla dinámica especificados como "drilled" (expandida o visible).

ActiveCell.PivotField.DrilledDown = True

EnableItemSelection Cuando se establece en False, deshabilita la capacidad de utilizar el cuadro desplegable de campos en la interfaz del usuario.

ActiveCell.PivotField.EnableItemSelection = True

EnableMultiplePageItems Se usa para especificar si hay casillas de verificación en la lista desplegable de filtros para los campos del área de página.

ActiveCell.PivotField.EnableMultiplePageItems = True

Function Devuelve o establece la función usada para hacer un resumen del campo de tabla dinámica (sólo campos de datos).

ActiveCell.PivotField.Function = xlAverage

GroupLevel Devuelve la ubicación del campo especificado dentro de un grupo de campos (si el campo es miembro de un conjunto de campos agrupados).

Dim lngGroupLevel As Long
lngGroupLevel = ActiveCell.PivotField.GroupLevel

Hidden Esta propiedad se utiliza para ocultar los distintos niveles de una jerarquía OLAP.

ActiveCell.PivotField.Hidden = True

HiddenItems Devuelve un objeto que representa un solo elemento oculto de tabla dinámica (un objeto PivotItem ) o una colección de todos los elementos ocultos (un objeto PivotItems ) del campo especificado.

Dim pvtiHiddenItems As PivotItem
Set pvtiHiddenItems = ActiveCell.PivotField.HiddenItems

HiddenItemsList Devuelve o establece una Variant que especifica una matriz de valores que son elementos ocultos en un campo de tabla dinámica.

ActiveCell.PivotField.HiddenItemsList =

IncludeNewItemsInFilter Esta propiedad permite a los programadores especificar si se debe realizar un seguimiento de los elementos excluidos o incluidos cuando se aplica un filtro manual al campo dinámico.

ActiveCell.PivotField.IncludeNewItemsInFilter = True

IsCalculated Es True si el campo de tabla dinámica es un campo o un elemento calculado.

Dim booIsCalculated As Boolean
booIsCalculated = ActiveCell.PivotField.IsCalculated

IsMemberProperty Devuelve True cuando el campo de tabla dinámica contiene propiedades de miembros.

Dim booIsMemberProperty As Boolean
booIsMemberProperty = ActiveCell.PivotField.IsMemberProperty

LabelRange Devuelve un objeto Range que representa la celda (o celdas) que contiene la etiqueta del campo.

Dim rngLabelRange As Range
Set rngLabelRange = ActiveCell.PivotField.LabelRange

LayoutBlankLine True si se inserta una fila vacía después del campo de fila especificado en un informe de tabla dinámica.

ActiveCell.PivotField.LayoutBlankLine = True

LayoutCompactRow Especifica si se compacta o no un objeto PivotField (los elementos de varios objetos PivotField se muestran en una sola columna) cuando se seleccionan filas.

ActiveCell.PivotField.LayoutCompactRow = True

LayoutForm Devuelve o establece la forma en que aparecen los elementos de tabla dinámica: en formato de tabla o en formato de esquema.

ActiveCell.PivotField.LayoutForm = xlOutline

LayoutPageBreak True si se inserta un salto de página después de cada campo.

ActiveCell.PivotField.LayoutPageBreak = True

LayoutSubtotalLocation Devuelve o establece la posición de los subtotales del campo de tabla dinámica con relación al campo especificado (por encima o por debajo).

ActiveCell.PivotField.LayoutSubtotalLocation = xlAtBottom

MemoryUsed Devuelve la cantidad de memoria que el objeto está usando actualmente, en bytes.

Dim lngMemoryUsed As Long
lngMemoryUsed = ActiveCell.PivotField.MemoryUsed

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

ActiveCell.PivotField.Name =

NumberFormat Devuelve o establece un valor de tipo String que representa el código de formato del objeto.

ActiveCell.PivotField.NumberFormat =

Orientation Devuelve o establece un valor de XlPivotFieldOrientation que representa la ubicación del campo en el informe de tabla dinámica especificado.

ActiveCell.PivotField.Orientation = xlColumnField

Parent Devuelve el objeto primario del objeto especificado.

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

ParentField Devuelve un objeto PivotField que representa el campo de tabla dinámica que es el grupo maestro del objeto especificado.

Dim pvtfParentField As PivotField
Set pvtfParentField = ActiveCell.PivotField.ParentField

ParentItems Devuelve un objeto que representa un solo elemento de tabla dinámica (un objeto PivotItem ) o una colección de todos los elementos (un objeto PivotItems ) que son grupos maestros del campo especificado.

Dim pvtiParentItems As PivotItem
Set pvtiParentItems = ActiveCell.PivotField.ParentItems

PivotFilters Devuelve o establece los filtros dinámicos para el objeto PivotField especificado.

Dim pfsPivotFilters As PivotFilters
Set pfsPivotFilters = ActiveCell.PivotField.PivotFilters

Position Devuelve o establece un valor de tipo Variant que representa la posición del campo (primero, segundo, tercero, etc.) entre todos los campos en su orientación (filas, columnas, páginas, datos).

ActiveCell.PivotField.Position =

PropertyParentField Devuelve un objeto PivotField que representa el campo al que pertenecen las propiedades de este campo.

Dim pvtfPropertyParentField As PivotField
Set pvtfPropertyParentField = ActiveCell.PivotField.PropertyParentField

RepeatLabels Devuelve o establece si las etiquetas de elementos se repiten en la tabla dinámica para el campo dinámico especificado.

ActiveCell.PivotField.RepeatLabels = True

ServerBased True si el origen de datos del informe de tabla dinámica especificado es externo y solamente se recuperan los elementos que coinciden con la selección del campo de páginas.

ActiveCell.PivotField.ServerBased = True

Subtotals Devuelve o configura los subtotales mostrados en el campo especificado.

ActiveCell.PivotField.Subtotals = True

TotalLevels Devuelve el número total de campos incluidos en el grupo de campos actual.

Dim lngTotalLevels As Long
lngTotalLevels = ActiveCell.PivotField.TotalLevels

Value Devuelve o establece un valor de tipo String que representa el nombre del campo del informe de tabla dinámica especificado.

ActiveCell.PivotField.Value =

VisibleItems Devuelve un objeto que representa un solo elemento visible de tabla dinámica (un objeto PivotItem ) o una colección de todos los elementos visibles (un objeto PivotItems del campo especificado).

Dim pvtiVisibleItems As PivotItem
Set pvtiVisibleItems = ActiveCell.PivotField.VisibleItems

VisibleItemsList Devuelve o establece un valor Variant que especifica una matriz de cadenas que representan los elementos incluidos en un filtro manual aplicado a un campo dinámico.

ActiveCell.PivotField.VisibleItemsList =

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

Dim lngCount As Long
lngCount = ActiveCell.PivotTable.VisibleFields.Count

PivotFields.Parent Devuelve el objeto primario del objeto especificado.

Dim pvtParent As PivotTable
Set pvtParent = ActiveCell.PivotTable.VisibleFields.Parent