Después de mucho trabajar ya hallamos el arreglo de este contratiempo que muchos lectores de este espacio presentan. Si tienes algo más que aportar no dudes en compartir tu conocimiento.
Solución:
Sí.
ThisWorkbook.RefreshAll
O, si su versión de Excel es lo suficientemente antigua,
Dim Sheet as WorkSheet, Pivot as PivotTable
For Each Sheet in ThisWorkbook.WorkSheets
For Each Pivot in Sheet.PivotTables
Pivot.RefreshTable
Pivot.Update
Next
Next
Este código de VBA actualizará todas las tablas/gráficos dinámicos en el libro de trabajo.
Sub RefreshAllPivotTables()
Dim PT As PivotTable
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
For Each PT In WS.PivotTables
PT.RefreshTable
Next PT
Next WS
End Sub
Otra opción no programática es:
- Haga clic derecho en cada tabla dinámica
- Seleccionar opciones de tabla
- Marque la ‘Actualizar al abrir’ opción.
- Haga clic en el botón Aceptar
Esto actualizará la tabla dinámica cada vez que se abra el libro de trabajo.
ActiveWorkbook.RefreshAll
actualiza todo, no solo las tablas dinámicas sino también las consultas ODBC. Tengo un par de consultas de VBA que se refieren a conexiones de datos y el uso de esta opción se bloquea cuando el comando ejecuta las conexiones de datos sin los detalles proporcionados por VBA.
Recomiendo la opción si solo quieres actualizar los pivotes
Sub RefreshPivotTables()
Dim pivotTable As PivotTable
For Each pivotTable In ActiveSheet.PivotTables
pivotTable.RefreshTable
Next
End Sub