¿Cómo verificar si una tabla dinámica está actualizada con VBA?

Para verificar si una tabla dinámica está actualizada usando VBA en Excel, puedes comparar la última vez que la tabla dinámica fue actualizada con la última vez que los datos de origen fueron modificados. Aquí tienes un ejemplo básico de cómo podrías hacerlo:

Sub VerificarActualizacionTablaDinamica()
    Dim ws As Worksheet
    Dim pt As PivotTable
    Dim dataRange As Range
    Dim lastDataModification As Date
    Dim lastPivotRefresh As Date
    
    ' Cambia "Sheet1" al nombre de la hoja donde se encuentra la tabla dinámica
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' Cambia "PivotTable1" al nombre de tu tabla dinámica
    Set pt = ws.PivotTables("PivotTable1")
    
    ' Supongamos que el origen de datos está en una tabla llamada "DataTable"
    ' Cambia esto para reflejar tu fuente de datos real
    Set dataRange = ThisWorkbook.Sheets("DataSheet").Range("DataTable")
    
    ' Obtener la última fecha de modificación de los datos de origen
    lastDataModification = WorksheetFunction.Max(dataRange.Worksheet.UsedRange.SpecialCells(xlCellTypeLastCell).Parent.Cells.SpecialCells(xlCellTypeLastCell).Parent.UsedRange.Cells.SpecialCells(xlCellTypeLastCell).Parent.Cells.SpecialCells(xlCellTypeLastCell).Value)

    ' Obtener la última fecha de actualización de la tabla dinámica
    lastPivotRefresh = pt.RefreshDate
    
    ' Comparar las fechas
    If lastPivotRefresh >= lastDataModification Then
        MsgBox "La tabla dinámica está actualizada."
    Else
        MsgBox "La tabla dinámica NO está actualizada."
    End If
End Sub

Notas:

  • Data Range: Asegúrate de que `DataTable` en el ejemplo sea reemplazado por el rango correcto o nombre de tabla de tu origen de datos.
  • Fechas de Modificación: La obtención de la última fecha de modificación (`lastDataModification`) está basada en un supuesto de que la modificación más reciente es un valor reciente en las celdas numéricas o de fecha. Si tienes un campo de fecha de modificación en tus datos, sería más preciso emplearlo.
  • Refresh Date: `pt.RefreshDate` te da la última vez que la tabla dinámica fue refrescada.
  • Nombre de la Hoja y la Tabla Dinámica: Cambia `»Sheet1″` y `»PivotTable1″` para que coincidan con los nombres reales en tu libro de Excel.

Este script es muy básico y puede requerir ajustes dependiendo de cómo esté estructurado tu libro de Excel y tus datos.

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