Contenido
Actualizar una tabla dinámica en Excel mediante VBA es una tarea común cuando trabajas con datos que cambian frecuentemente. Aquí tienes un ejemplo de cómo hacerlo:
Paso 1: Preparar el entorno
Antes de escribir el código, asegúrate de que tu tabla dinámica está correctamente configurada y que los datos de origen están bien definidos, preferiblemente como una tabla de Excel (también conocida como rango nombrado o lista). Esto facilita las cosas porque los nombres de las tablas se adaptan automáticamente cuando se agregan o eliminan datos.
Paso 2: Escribir el código VBA
Puedes abrir el Editor de VBA en Excel presionando `ALT` + `F11`. Luego, inserta un nuevo módulo y pega el siguiente código:
Sub ActualizarTablaDinamica()
Dim ws As Worksheet
Dim pt As PivotTable
Dim pc As PivotCache
Dim tablaOrigen As ListObject
' Cambia "Hoja1" al nombre de la hoja donde se encuentran tus datos de origen
Set ws = ThisWorkbook.Sheets("Hoja1")
' Cambia "Datos" al nombre de tu tabla de datos de origen
Set tablaOrigen = ws.ListObjects("Datos")
' Recorre todas las tablas dinámicas en el libro
For Each pt In ThisWorkbook.PivotTables
' Verifica si el origen de datos de la tabla dinámica coincide con la tabla de origen
If pt.SourceData = tablaOrigen.Range.Address(True, True, xlR1C1, True) Then
' Actualiza el cache de la tabla dinámica
Set pc = pt.PivotCache
pc.Refresh
' Opcional: Actualiza la tabla dinámica
pt.RefreshTable
End If
Next pt
MsgBox "Tabla dinámica actualizada correctamente!"
End Sub
Paso 3: Ajustar el código a tus necesidades
- Nombre de la hoja («Hoja1»): Cambia esto por el nombre de la hoja donde están tus datos de origen.
- Nombre de la tabla de datos («Datos»): Asegúrate de que esto coincide con el nombre de la tabla de Excel que has definido en tu hoja de cálculo.
Paso 4: Ejecutar el script
- Vuelve a Excel y ejecuta la macro desde el menú de macros (`ALT` + `F8`), selecciona `ActualizarTablaDinamica` y ejecuta.
Notas adicionales
- Vínculos rotos: Si tu tabla dinámica está basada en un rango de celdas en lugar de una tabla, considera convertir el rango en una tabla dinámicamente ajustable.
- Errores: Asegúrate de que todos los nombres y referencias están correctos. Los errores comunes provienen de nombres incorrectos o cambios en la estructura del libro.
Con este código y pasos, deberías poder actualizar tus tablas dinámicas automáticamente cada vez que cambien los datos de origen.