Si trabajas con tablas dinámicas basadas en tablas de datos que a su vez se alimentan de archivos externos (Excel, CSV, etc.), es muy probable que hayas observado este comportamiento tan frustrante:
- Pulsas Actualizar todo, pero los datos no parecen actualizarse correctamente.
- Pulsas Actualizar todo una segunda vez… y ahora sí, todo cuadra.
Este artículo explica:
- Cuál es el problema
- Por qué ocurre realmente
- Por qué pulsar dos veces puede “funcionar”
- Cuál es la solución correcta y profesional usando macros VBA

1 El problema: actualizaciones que no llegan a la tabla dinámica
El escenario típico es este:
- Tienes conexiones externas a archivos Excel o CSV
- Esas conexiones cargan datos en tablas de Excel (ListObjects)
- Las tablas dinámicas se construyen sobre esas tablas
- Pulsas Datos → Actualizar todo
Resultado:
- Las tablas dinámicas no reflejan los datos nuevos
- Solo lo hacen después de pulsar el botón por segunda vez
A primera vista parece un fallo, pero en realidad es un problema de orden de actualización.

2 El motivo real: Excel no respeta las dependencias lógicas
La cadena lógica de datos suele ser esta:
- Conexiones externas
- Tablas de datos
- Tablas dinámicas
Sin embargo, cuando pulsas Actualizar todo, Excel:
- Trata conexiones, tablas y tablas dinámicas como objetos independientes
- No garantiza el orden de actualización
Puede actualizar:
- primero las tablas dinámicas
- y después las tablas de datos
Esto significa que, en la primera pulsación:
- La tabla dinámica se actualiza antes de que la tabla de datos tenga la información nueva
- Por tanto, la tabla dinámica sigue mostrando datos antiguos
Excel no evalúa dependencias de actualización, solo dependencias de fórmulas.
3 La “solución” de pulsar dos veces: por qué funciona y cuándo es aceptable
Cuando pulsas Actualizar todo por segunda vez:
- Las tablas de datos ya están actualizadas
- Ahora sí, las tablas dinámicas leen los datos correctos Por eso, pulsar dos veces funciona.
¿Es aceptable esta solución? Depende del contexto:
Puede ser aceptable si:
- El archivo lo usas solo tú
- La actualización es manual y ocasional
- No hay riesgo de error humano
No es aceptable si:
- El archivo lo usan otras personas
- Es un proceso crítico o repetitivo
- Necesitas fiabilidad y trazabilidad
- Automatizas procesos
En esos casos, pulsar dos veces es solo un parche, no una solución real.
4 La solución correcta: forzar el orden de actualización con VBA
La forma profesional de resolver el problema es forzar explícitamente el orden:
- Actualizar conexiones
- Actualizar tablas de datos
- Actualizar tablas dinámicas
Esto se consigue fácilmente con una macro VBA.
Macro recomendada
Sub ActualizarEnOrdenCorrecto()
Dim ws As Worksheet
Dim cn As WorkbookConnection
Dim tbl As ListObject
Dim pt As PivotTable
Application.ScreenUpdating = False
Application.EnableEvents = False
' 1. Actualizar conexiones
For Each cn In ThisWorkbook.Connections
cn.Refresh
Next cn
' 2. Actualizar tablas de datos
For Each ws In ThisWorkbook.Worksheets
For Each tbl In ws.ListObjects
tbl.Refresh
Next tbl
Next ws
' 3. Actualizar tablas dinámicas
For Each ws In ThisWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.RefreshTable
Next pt
Next ws
Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox "Actualización completada en el orden correcto.", vbInformation
End Sub Ventajas de esta macro frente a otras alternativas
Frente a Actualizar todo:
- ✔ Respeta el orden lógico de los datos
- ✔ Evita tener que pulsar dos veces
- ✔ Es predecible y repetible
- ✔ No depende del comportamiento interno de Excel
Frente a actualizar solo tablas dinámicas:
- ✔ Garantiza que los datos base ya están actualizados
- ✔ Evita resultados inconsistentes
Frente a soluciones manuales:
- ✔ Permite automatización
- ✔ Reduce errores humanos
- ✔ Escala mejor en libros complejos

Conclusión
El hecho de tener que pulsar Actualizar todo dos veces no es casualidad ni un bug extraño: es una consecuencia directa de que Excel no respeta las dependencias de actualización entre conexiones, tablas de datos y tablas dinámicas.
Pulsar dos veces funciona, pero es solo un atajo. La solución correcta es controlar el orden.
Una macro VBA bien planteada convierte un proceso frágil en uno robusto y profesional
Si trabajas con libros complejos, esta diferencia se nota —y mucho—.
Y para finalizar, una infografía que te lo resume todo, por si necesitas un buen recordatorio.
