Actualizar tabla dinámica en VBA

Por lo general, creamos una tabla dinámica cuando necesitamos crear algún tipo de parcelas o gráficos o tenemos que realizar un análisis sobre ella. Al preparar la tabla dinámica, podemos obtener una visión general e idea sobre lo que realmente está dentro de los datos. Esta es la mejor manera de encontrar una manera de ingresar a los datos. Y cada vez que hacemos cambios en los datos, también necesitamos actualizar la tabla dinámica. Para que también se complete el recuento de datos actualizados. Actualizar cualquier tabla dinámica es muy fácil, pero ¿qué pasa si tenemos 10s de tablas dinámicas en un único archivo de Excel que necesitamos actualizar? Entonces, en lugar de actualizar todas las tablas dinámicas una por una, podemos actualizar directamente todas las tablas dinámicas de una sola vez con la ayuda de VBA Refresh Pivot Table.

¿Cómo usar Actualizar tabla dinámica en Excel VBA?

A continuación se muestran los diferentes ejemplos para usar Actualizar tabla dinámica en Excel con código VBA.

Puede descargar esta plantilla Excel de VBA Refresh Pivot Table aquí - Plantilla VBA Refresh Pivot Table Excel

Tabla dinámica de actualización de VBA - Ejemplo # 1

Para actualizar la tabla dinámica, primero, necesitamos crear una tabla dinámica. A continuación tenemos datos de la línea de pedido de 1000 por la cual crearemos una tabla dinámica.

En la captura de pantalla anterior, podemos ver la última línea en 1001 y estos datos tienen información del cliente contra la cantidad vendida a ellos.

Ahora vaya a la pestaña del menú Insertar y haga clic en la opción Tabla dinámica .

Obtendremos un cuadro Crear tabla dinámica. Desde allí, primero, seleccione el rango de la tabla que queremos incluir en una tabla dinámica. Luego, seleccione cualquier ubicación en la hoja actual para la tabla dinámica. También podemos elegir Nueva hoja de trabajo.

Una vez hecho esto, haga clic en Ok.

Obtendremos la tabla dinámica creada. Ahora arrastre los campos requeridos a diferentes áreas para obtener la tabla dinámica real. Aquí, estamos arrastrando el nombre del Cliente a FILAS y la Cantidad a COLUMNAS como se muestra a continuación.

Esto completa la creación de una tabla dinámica. Pero necesitamos actualizar la tabla dinámica después de cambiar cualquier cosa en los datos, esto podría hacerse simplemente actualizando la opción de la lista del menú desplegable del botón derecho como se muestra a continuación.

Pero el mismo proceso también se puede automatizar a través de VBA. Para esto, necesitaríamos un Módulo. Entonces,

Paso 1: vaya a la pestaña del menú Insertar y seleccione la opción Módulo de la lista desplegable como se muestra a continuación.

Paso 2: en el módulo recién abierto, escriba la subcategoría de actualización dinámica de VBA o podemos elegir cualquier nombre según nuestra elección.

Código:

 Sub Pivot_Refresh2 () End Sub 

Paso 3: Primero, defina una variable como PivotCache como se muestra a continuación. PivotCache usa el caché Pivot, no los datos utilizados para crear la tabla Pivot.

Código:

 Sub Pivot_Refresh2 () Dim Tabla como PivotCache End Sub 

Paso 4: Ahora usaremos el bucle For-Each . Abra un bucle For-Each como se muestra a continuación.

Código:

 Sub Pivot_Refresh2 () Dim Table como PivotCache para cada siguiente tabla End Sub 

Paso 5: ahora dentro del bucle For-End, escribiremos la condición en la que seleccionaremos la hoja de trabajo abierta actualmente que tiene una tabla dinámica con PivotCache .

Código:

 Sub Pivot_Refresh2 () Dim Table como PivotCache para cada tabla en esteWorkbook.PivotCaches Next Table End Sub 

Paso 6: Ahora usaremos el comando Actualizar asignándole la tabla de variables definida.

Código:

 Sub Pivot_Refresh2 () Dim Table como PivotCache para cada tabla en ThisWorkbook.PivotCaches Table.Refresh Next Table End Sub 

Paso 7: Esto completa el código, ahora compila el código al error de archivo presionando la tecla funcional F8. Ahora para probar, si el código escrito no funciona, hemos cambiado la cantidad de Cliente14 a 69 .

Paso 8: ahora ejecuta el código. Veremos que el recuento total contra Customer14 se actualiza a 2183, que se resalta en color amarillo.

Tabla dinámica de actualización de VBA - Ejemplo # 2

Hay otra forma de actualizar la tabla dinámica a través de VBA. Antes de seguir adelante, podemos considerar cambiar el nombre de una tabla dinámica o también podemos usar el nombre predeterminado. Tratemos de dar un nuevo nombre a la tabla dinámica. Para esto, seleccione la tabla dinámica y vaya a la pestaña del menú Analizar como se muestra a continuación.

En la primera sección de Nombre de tabla dinámica, podemos ver el nombre predeterminado como Tabla dinámica1 .

Ahora cambiaremos este nombre. Considere escribir el nuevo nombre como Datos del cliente como se muestra a continuación.

Paso 1: Después de eso, abra un nuevo módulo y escriba la subcategoría de Actualización de VBA como se muestra a continuación.

Código:

 Sub Pivot_Refresh3 () End Sub 

Paso 2: ahora defina una variable como tabla dinámica . Aquí, con la tabla dinámica, consideraremos los datos de origen completos.

Código:

 Sub Pivot_Refresh3 () Tabla tenue como Sub tabla final dinámica 

Paso 3: Ahora use Establecer con variable definida y seleccione la hoja que está abierta actualmente.

Código:

 Sub Pivot_Refresh3 () Dim Table As PivotTable Set Table = ActiveSheet. End Sub 

Paso 4: Seleccione el nombre de la tabla dinámica que queremos actualizar junto con el tipo de datos variables que hemos utilizado como tabla dinámica .

Código:

 Sub Pivot_Refresh3 () Dim Table As PivotTable Set Table = ActiveSheet.PivotTables ("Customer Data") End Sub 

Paso 5: Finalmente, use la variable con la función RefreshTable para ejecutarla.

Código:

 Sub Pivot_Refresh3 () Dim Table As PivotTable Set Table = ActiveSheet.PivotTables ("Customer Data") Table.RefreshTable End Sub 

Paso 6: Hagamos algunos cambios más en los datos, para dar las imágenes reales del código aplicado.

Hemos cambiado el recuento de Customer2 como 56 . Ahora, si ejecutamos el código, en la tabla dinámica del Nombre del cliente, debería haber cambios en la suma de la cantidad para el Cliente2 .

Paso 7: Ahora ve a la ventana de VBA y compila el código. Si no se encuentra ningún error, ejecútelo haciendo clic en el botón de reproducción que se encuentra debajo de la barra de menú como se muestra a continuación. Notaremos que una suma de la cantidad vendida para el Cliente2 ahora aumentará a 1724 al hacer los cambios en la tabla de origen.

Con esto, podemos incluir más de una fuente de datos y crear una tabla dinámica diferente. Y automatizar esas tablas dinámicas también es fácil, ya que solo necesitamos incluir el nombre de la tabla dinámica y la hoja donde se encuentra la tabla.

Ventajas de VBA Refresh Pivot Table

  • Lleva mucho menos tiempo actualizar la tabla dinámica por código VBA.
  • Es muy fácil de implementar.

Cosas para recordar

  • Podemos agregar múltiples tablas de fuentes de datos y automatizarlas por código VBA.
  • Para ver los cambios ocurridos, mantenga la ventana de VBA y la hoja de Excel paralelas entre sí.
  • Es mejor nombrar todas y cada una de las tablas dinámicas si está manejando y manejando múltiples fuentes de datos y tablas dinámicas.
  • El código con el nombre de la tabla dinámica es fácil de entender, rastrear y localizar.

Artículos recomendados

Esta es una guía de la tabla dinámica de actualización de VBA. Aquí discutimos cómo usar Excel VBA Refresh Pivot Table junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. VBA FileSystemObject (FSO)
  2. Función de subcadena de Excel
  3. VBA longitud de cadena
  4. Fórmula ISNUMBER de Excel

Categoría: