Contenido
Para actualizar automáticamente una tabla dinámica en Excel mediante VBA, puedes utilizar una macro que se ejecute cada vez que cambien los datos de origen o simplemente cuando lo desees. A continuación, te presento un ejemplo de cómo hacerlo:
Sub ActualizarTablaDinamica()
Dim pt As PivotTable
Dim ws As Worksheet
' Cambia "Hoja1" por el nombre de tu hoja de cálculo
Set ws = ThisWorkbook.Sheets("Hoja1")
' Cambia "TablaDinámica1" por el nombre de tu tabla dinámica
Set pt = ws.PivotTables("TablaDinamica1")
' Actualizar la tabla dinámica
pt.RefreshTable
End Sub
Private Sub Workbook_Open()
Call ActualizarTablaDinamica
End Sub
- Abrir VBA: Presiona `ALT + F11` para abrir el editor de VBA en Excel.
- Insertar un módulo: En el editor de VBA, selecciona `Insertar` > `Módulo` para crear un nuevo módulo.
- Escribir la macro: Introduce el siguiente código en el módulo. Este código asume que tienes una hoja de cálculo llamada `Hoja1` y que tu tabla dinámica se encuentra en ella:
- Asociar la macro a un evento (opcional): Si deseas que la tabla se actualice automáticamente cada vez que ocurran ciertos eventos, como al abrir el archivo o cambiar los datos, puedes asociar la macro a dichos eventos. Por ejemplo, para actualizar al abrir el archivo, coloca el siguiente código en `ThisWorkbook`:
Para hacerlo, en el editor de VBA, expande `VBAProject (TuArchivo.xlsx)` y luego `Microsoft Excel Objects`. Haz doble clic en `ThisWorkbook` y pega el código anterior.
- Actualizar la lista de tablas dinámicas: Asegúrate de que el nombre «TablaDinamica1» coincida con el nombre real de tu tabla dinámica. Puedes verificar y cambiar el nombre seleccionando la tabla dinámica en la hoja de cálculo, luego ir a `Analizar` > `Opciones` en la cinta de Excel, donde verás el nombre de la tabla dinámica.
- Ejecutar la macro: Puedes ahora ejecutar esta macro manualmente desde `Desarrollador` > `Macros` > `Selecciona ActualizarTablaDinamica` > `Ejecutar`, o esperarla a que se ejecute automáticamente según los eventos que hayas configurado.
Este método te proporcionará una manera efectiva de mantener tus tablas dinámicas actualizadas de manera automática mediante VBA en Excel.