Las tablas dinámicas son una herramienta muy útil que nos ayuda a analizar datos. Pero cuando hay cambios en los datos de origen es necesario actualizar las tablas dinámicas para que muestren los últimos cambios. En este tutorial te mostramos los pasos a seguir para actualizar automáticamente tablas dinámicas.
Actualizar manualmente tabla dinámica
Cuando hemos realizado cambios en los datos de origen en necesario actualizar la tabla dinámica para que muestre esos cambios. Es una tarea sencilla, tan solo debemos clicar con el botón derecho sobre nuestra tabla dinámica y elegir la opción Actualizar.
Sin embargo, con unos sencillos pasos podemos hacer que nuestras tablas se actualicen automáticamente.
Damos formato de tabla a los datos de origen
El primer paso para conseguir actualizar automáticamente tablas dinámicas es dar formato de tabla a los datos origen a partir de los que vamos a crear nuestra tabla dinámica.
- Nos colocamos sobre cualquier celda del rango de datos origen.
- Vamos a la pestaña Insertar y seleccionamos la opción Tabla.
- Comprobamos que se ha seleccionado el total de los datos de origen y marcamos la casilla “La tabla tiene encabezados” (siempre que nuestra tabla los tenga) y Aceptamos.
Habilitamos nuestro libro de Excel para macros.
Para que nuestra tabla dinámica se actualice automáticamente vamos a utilizar Código de Visual Basic para Aplicaciones. Por lo que vamos a guardar nuestro archivo de Excel como un Archivo habilitado para macros.
- Vamos a la pestaña Archivo – Guardar cómo.
- Le damos un nombre y elegimos la ubicación donde queremos guardar nuestro archivo.
- En tipo de archivo seleccionamos la opción Libro de Excel habilitado para macros.

Creamos nuestra tabla dinámica en una nueva hoja
A continuación, vamos a crear nuestra tabla dinámica en una nueva hoja, ya que el código que vamos a utilizar se ejecutará cada vez que nos situemos en la hoja que contiene la tabla dinámica.
Nos colocamos en cualquiera de las celdas de nuestros datos de origen, vamos a la pestaña Insertar y seleccionamos la opción Tabla dinámica. En la ventana emergente que aparece debemos elegir una Nueva hoja de cálculo para ubicar nuestra tabla dinámica.

Seguidamente, arrastramos los campos a las áreas correspondientes para armar nuestra tabla dinámica.
Te mostramos paso a paso cómo crear tablas dinámicas en este tutorial: Crear tablas dinámicas paso a paso
Código para actualizar automáticamente tablas dinámicas.
Una vez creada nuestra tabla dinámica vamos a añadir una línea de código para que nuestra tabla dinámica se actualice automáticamente.
Necesitaremos saber el nombre de nuestra tabla dinámica. Clicamos en cualquier celda de la tabla dinámica, vamos a la pestaña Analizar y en la esquina superior izquierda aparece el nombre de nuestra tabla dinámica, que podemos editar. En nuestro caso el nombre de la tabla dinámica es TablaDinámica1.
Para abrir Visual Basic:
- Vamos a la pestaña inferior de la hoja donde está ubicada la tabla dinámica.
- Clicamos con el botón derecho del ratón y elegimos la opción Ver Código.

Una vez en la ventana de Visual Basic debemos hacer los siguiente:
- En el desplegable donde dice General, desplegamos y elegimos la opción Worksheet.
- En el desplegable donde dice SelectionChange desplegamos y elegimos la opción Activate.
- Borramos todo lo que aparece bajo la línea horizontal, ésta incluida.
Para que nuestra tabla dinámica se actualice automáticamente escribiremos la siguiente línea de código:
ActiveSheet.PivotTables(“TablaDinámica1”).PivotCache.Refresh

Entrecomillado y entre paréntesis escribimos el nombre de nuestra tabla dinámica. Por ello, anteriormente hemos buscado el nombre de nuestra tabla dinámica.
Guardamos los cambios clicando en el icono Guardar de la ventana de Visual Basic. Cerramos Visual Basic.
Comprobamos que si hacemos cualquier cambio en los datos origen o añadimos datos nuevos, al clicar sobre la pestaña de la hoja donde se encuentra nuestra tabla dinámica se actualiza automáticamente.
ME GUSTARIA PODER ACCEDER A ESTA APLICACION
Buenas tardes necesito su ayuda, siguiendo su tutorial que me había funcionado en otras ocasiones en esta me lanza un mensaje de error que es el siguiente:
error 1004 en tiempo de ejecución no se puede obtener la propiedad PIVOTTABLES de la clase WORKSHEET
espero puedan ayudarme, muchísimas gracias por su tiempo, un saludo.
Buenos días,
Me pasaba lo mismo, probé en no dejar líneas vacias entre lo escrito en el Visual Basic y funcionó.
Ej:
Private Sub Worksheet_Activate()
ActiveSheet.PivotTables(“estado”).PivotCache.Refresh
End Sub
Un sLUDO.
Eso me lleva a la siguiente pregunta
Es posible reescribir una formula a traves de macro???
eso le daria a este Escell la posibilidad de mejorar en base a IA
por ponerlo facil sin cambiar de hoja
Es que se me han ocurrido un par de ideas y comparar resultados, y mejorarlos en base a resultados no deverian de hacer entrar en bucle un core 2
gracias
Lo que si funciono es para proteger la pagina es colocar la tabla en otra hoja y “linkear” los resutados sobre el espacio correspondiente dentro de la pagina protegida.
ya no da error al intentar expandir tabla en pagina cerrada y acepta el “link” en su espacio reservado por formula
buena pregunta pues la macro actualiza imediatamente. lastima que yo uso hoja oculta para lanzar todos mis graficos y por consiguiente no se ve (es feisima) y nadie va a verla y no se va a actualizar
bueno
muy bueno me ha enseñado que como todo buen programa da opciones a mejorarlo si se tiene claro cual es el resultado en base a variables.
Gracias
el morse ya se invento y esta disponible para buena gente
vamos a usarlo
gracias otra vez
la llave del conocimiento es la generosidad del sabio al curioso
Esta actualización de datos a través del ejemplo servirá para avanzar con la gran base de datos que poseo de la empresa donde trabajo, ya que cada día debo ir avanzando en agregar datos. La idea que se vea reflejado en un Dashboard que estoy diseñando.-
Efectué paso por paso exacto y no funciono
como se puede actualizar sin nesecidad de entar a la hoja donde esta la tabla dinamica?