Contenido
Para actualizar una tabla dinámica automáticamente cuando se actualiza una celda específica, puedes utilizar VBA en Excel para establecer un evento que detecte cambios en esa celda y actualice la tabla dinámica en consecuencia. A continuación te muestro cómo podrías llevar a cabo este proceso.
Supongamos que quieres actualizar la tabla dinámica cuando cambie el valor de la celda A1. Aquí tienes los pasos:
- Abrir el Editor de Visual Basic para Aplicaciones (VBA):
- Presiona `ALT` + `F11` para abrir el editor de VBA.
- Seleccionar la Hoja de Trabajo:
- En el Explorador de Proyectos, busca el nombre de la hoja que contiene la celda que deseas monitorear y haz doble clic sobre ella. El nombre de la hoja será algo como `Hoja1 (NombreHoja)`.
- Ingresar el Código VBA:
Copia y pega el siguiente código en el módulo de código de la hoja seleccionada:
Private Sub Worksheet_Change(ByVal Target As Range)
' Verifica si la celda A1 cambió
If Not Intersect(Target, Me.Range("A1")) Is Nothing Then
' Nombre de la hoja donde está la tabla dinámica
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("NombreHojaDeTablaDinamica")
' Nombre o índice de la tabla dinámica
Dim pt As PivotTable
Set pt = ws.PivotTables("NombreTablaDinamica")
' Actualiza la tabla dinámica
pt.RefreshTable
End If
End Sub
- Configurar los Nombres Correctos:
- «NombreHojaDeTablaDinamica»: Sustituye este texto con el nombre de la hoja que contiene la tabla dinámica.
- «NombreTablaDinamica»: Sustituye este texto con el nombre específico de la tabla dinámica que quieres actualizar.
- Guardar y Salir del Editor de VBA:
- Después de ingresar el código, guarda el archivo de Excel (`.xlsm` si es necesario para permitir macros) y cierra el editor de VBA.
- Probar la Macro:
- Vuelve a Excel y cambia el valor de la celda A1. La tabla dinámica especificada debería actualizarse automáticamente.
Este método utiliza el evento `Worksheet_Change` que se activa cada vez que hay un cambio en la hoja, y luego verifica si el cambio ocurrió en la celda que estás monitoreando. Si es así, la tabla dinámica especificada se actualiza. Asegúrate de ajustar el nombre de la hoja y el nombre de la tabla dinámica en el código VBA antes de usarlo.