¿Cómo actualizar una tabla dinámica cuando cambian los datos de origen con VBA?

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.

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