Contenido
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.