Contenido
Para establecer filtros predeterminados en una tabla dinámica utilizando VBA, debes utilizar el objeto `PivotTable` y sus métodos asociados. A continuación te muestro un ejemplo de cómo puedes hacer esto:
Supongamos que tienes una tabla dinámica y deseas establecer filtros en uno de sus campos. Aquí tienes un código VBA básico que ilustra cómo hacerlo:
Sub EstablecerFiltrosPredeterminados()
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
' Cambia "Hoja1" por el nombre de la hoja que contiene la tabla dinámica
Set ws = ThisWorkbook.Sheets("Hoja1")
' Cambia "TablaDinámica1" por el nombre de tu tabla dinámica
Set pt = ws.PivotTables("TablaDinámica1")
' Cambia "NombreDelCampo" por el nombre del campo que deseas filtrar
Set pf = pt.PivotFields("NombreDelCampo")
' Limpia cualquier filtro existente
pf.ClearAllFilters
' Establece los filtros predeterminados
' Solo se mostrarán los elementos especificados
For Each pi In pf.PivotItems
' Cambia "Elemento1", "Elemento2", etc., por los elementos que deseas mostrar
If pi.Name = "Elemento1" Or pi.Name = "Elemento2" Then
pi.Visible = True
Else
pi.Visible = False
End If
Next pi
End Sub
Puntos Importantes:
- Hoja y Tabla Dinámica: Cambia `»Hoja1″` y `»TablaDinámica1″` por los nombres específicos de tu hoja de cálculo y tabla dinámica.
- Nombre del Campo: Cambia `»NombreDelCampo»` por el nombre del campo en el que deseas aplicar los filtros.
- Elementos a Filtrar: En el bucle `For Each`, reemplaza `»Elemento1″`, `»Elemento2″`, etc., con los nombres de los elementos que desees mostrar en el filtro. Los demás elementos se ocultarán.
- Seguridad: Asegúrate de que las referencias a la hoja y a la tabla dinámica existen, y de que el nombre del campo es correcto para evitar errores en runtime.
Este script establece filtros predeterminados cada vez que se ejecuta. Puedes integrarlo con eventos del libro de Excel o programarlo para que se ejecute automáticamente en ciertas situaciones, como al abrir el archivo.