Excel – Actualizar automáticamente tablas dinámicas

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