¿Cómo actualizar una tabla dinámica cuando se actualiza una celda específica con VBA?

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.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

Deja un comentario