Contenido
Para filtrar una tabla dinámica por múltiples criterios usando VBA, puedes utilizar el objeto `PivotFilters` en combinación con el método `Add` para aplicar filtros personalizados a los campos de tu tabla dinámica. Aquí tienes un ejemplo paso a paso de cómo hacerlo:
Supongamos que tienes una tabla dinámica y quieres filtrar un campo específico llamado «Categoría» para mostrar solo elementos que cumplen con dos criterios específicos, por ejemplo, «Electrónica» y «Ropa».
Sub FiltrarTablaDinamica()
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim criterios As Variant
' Define la hoja de cálculo y nombre de la tabla dinámica
Set ws = ThisWorkbook.Sheets("NombreDeTuHoja")
Set pt = ws.PivotTables("NombreDeTuTablaDinamica")
' Define los criterios de filtro
criterios = Array("Electrónica", "Ropa")
' Establece el campo de la tabla dinámica que deseas filtrar
Set pf = pt.PivotFields("Categoría")
' Limpia los filtros existentes en el campo
pf.ClearAllFilters
' Habilita la visibilidad de los ítems de acuerdo a los criterios
pf.EnableMultiplePageItems = True
' Aplica el filtro basado en múltiples criterios
pf.CurrentPage = "(All)"
pf.VisibleItemsList = criterios
End Sub
- Abre el editor de VBA presionando `ALT` + `F11` en Excel.
- Inserta un nuevo módulo haciendo clic en `Insertar` > `Módulo`.
- Copia y pega el siguiente código en el módulo:
- Asegúrate de reemplazar `»NombreDeTuHoja»` por el nombre de la hoja de cálculo que contiene la tabla dinámica, y `»NombreDeTuTablaDinamica»` por el nombre de la tabla dinámica que deseas filtrar.
- Ejecute el macro presionando `F5` mientras está en el editor de VBA, o ciérralo y ejecuta el macro desde Excel yendo a `Vista` > `Macros` > `Ver Macros`, selecciona «FiltrarTablaDinamica» y haz clic en `Ejecutar`.
Este script aplicará un filtro al campo especificado en la tabla dinámica para mostrar solo los elementos que coincidan con los criterios definidos. Es importante asegurarse de que los nombres de las hojas, la tabla dinámica, y los campos sean correctos y coincidan exactamente con los de tu archivo de Excel.