
Para filtrar una tabla dinámica en Excel usando VBA con datos externos, puedes seguir estos pasos. Supongamos que tienes una tabla dinámica y deseas filtrar uno de sus campos utilizando un valor que obtendrás de una celda específica en otra hoja o libro. Aquí te muestro un ejemplo básico:
- Vincular VBA a Excel:
Asegúrate de tener acceso al Editor de VBA presionando `ALT + F11` en Excel.
- Identificar Tabla Dinámica y Campo:
Determina el nombre de tu tabla dinámica y el campo que deseas filtrar. Puedes encontrar esta información seleccionando la tabla dinámica y revisando las Herramientas de Tabla Dinámica en la barra de herramientas de Excel.
- Código VBA:
Usa el siguiente ejemplo de código como punto de partida. Este se conectará a tu tabla dinámica y aplicará filtro usando un valor de una celda de referencia.
Sub FiltrarTablaDinamica()
' Define variables
Dim wb As Workbook
Dim ws As Worksheet
Dim pt As PivotTable
Dim dataSheet As Worksheet
Dim filterValue As String
' Establece el libro y la hoja donde está la tabla dinámica
Set wb = ThisWorkbook
Set ws = wb.Sheets("Hoja1") ' Cambia "Hoja1" al nombre de tu hoja
' Establece la hoja de donde provendrá el valor del filtro
Set dataSheet = wb.Sheets("DatosExternos") ' Cambia "DatosExternos" al nombre de la hoja correcta
filterValue = dataSheet.Range("A1").Value ' Cambia "A1" al rango donde está tu dato externo
' Establece la tabla dinámica
Set pt = ws.PivotTables("TablaDinamica1") ' Cambia "TablaDinamica1" al nombre de tu tabla dinámica
' Limpiar filtros existentes
pt.ClearAllFilters
' Aplicar filtro al campo - cambia "Campo1" al nombre del campo que deseas filtrar
With pt.PivotFields("Campo1")
.ClearAllFilters
.CurrentPage = filterValue
End With
MsgBox "Filtro aplicado con éxito usando el valor: " & filterValue
End Sub
Notas importantes:
- Reemplaza los nombres de hoja («Hoja1», «DatosExternos») y los nombres de la tabla dinámica y campo («TablaDinamica1», «Campo1») con los que correspondan en tu caso.
- Asegúrate de que el valor en la celda de referencia (`»A1″` en el ejemplo) coincide exactamente con un elemento del campo que intentas filtrar en la tabla dinámica.
- Puedes añadir lógica adicional para manejar casos como que el valor no exista, errores, etc.
Este script de VBA te proporciona una forma automatizada de aplicar filtros a tus tablas dinámicas en función de datos externos dentro de tu archivo de Excel.
Conoce nuestros servicios



