VBA - Actualizar tabla dinámica / Todas las tablas dinámicas

Este tutorial demostrará cómo actualizar una tabla dinámica o todas las tablas dinámicas usando VBA.

Las tablas dinámicas son una herramienta de datos excepcionalmente poderosa de Excel. Las tablas dinámicas nos permiten analizar e interpretar grandes cantidades de datos agrupando y resumiendo campos y filas.

Cuando creamos una tabla dinámica, los datos se almacenan en lo que se conoce como caché de tabla dinámica. Por lo tanto, los datos se almacenan en la memoria caché de la PC, lo que acelera la tabla dinámica.

Si la fuente de datos de la tabla dinámica se actualiza, la tabla dinámica en sí no se actualiza. El usuario en Excel debe hacer clic en el Refrescar todo en la pestaña Datos de la cinta para actualizar los datos de origen de la tabla dinámica.

Alternativamente, podemos escribir macros en VBA que actualizarán los datos por nosotros.

Actualizar todas las conexiones de datos

El método más simple para actualizar los datos es usar VBA para imitar lo que Refrescar todo hace el botón en la cinta.

123 Sub RefreshConnections ()ActiveWorkbook.RefreshAllEnd Sub

Este método actualizará todas las conexiones a cualquier dato en el libro de trabajo que tenga activo. Tampoco solo actualizará una sola tabla dinámica, sino que actualizará varias tablas dinámicas si tiene más de una conectada a diferentes conjuntos de datos.

Actualizar todas las tablas dinámicas

Para actualizar solo las tablas dinámicas en nuestro libro de trabajo pero excluir cualquier otra conexión de datos, podemos usar un método llamado RefreshTable.

Si tenemos varias tablas dinámicas en nuestro libro de trabajo, necesitaríamos recorrer todas las tablas dinámicas para actualizarlas todas. Para hacer esto, primero declaramos una variable de tabla dinámica y luego creamos un ciclo para cada ciclo para recorrer todas las tablas dinámicas en el libro de trabajo activo.

123456 Sub RefreshPivotsOnly ()Dim tblPivot como tabla dinámicaPara cada tblPivot en ActiveWorkbook.tblPivot.RefreshTableSiguiente tblPivotEnd Sub

Podemos usar una macro similar para actualizar las tablas dinámicas en nuestro Hoja activa en lugar de todo el libro. Luego, recorreríamos las tablas dinámicas en el Hoja activa en lugar del ActiveWorkbook.

123456 Sub RefreshActiveSheetPivotsOnly ()Dim tblPivot como tabla dinámicaPara cada tblPivot en ActiveSheet.tblPivot.RefreshTableSiguiente tblPivotEnd Sub

Esta macro sería más útil si tuviéramos fácil acceso a ella en nuestro Hoja activa. Para ello, podemos crear un botón en la hoja para ejecutar la macro.

Actualizar una tabla dinámica

Si solo queremos actualizar la tabla dinámica en la que estamos trabajando y no todas las demás tablas dinámicas del libro de trabajo, debemos identificar la tabla dinámica específica. Esto, por supuesto, siempre que sepa el nombre de la tabla dinámica, en este caso PivotTable1.

123 Sub RefreshOneTableActiveSheet.PivotTables ("PivotTable1"). RefreshTableEnd Sub

Actualizar la caché de la tabla dinámica

Si tenemos varias tablas dinámicas en nuestro libro de trabajo, pero todas usan los mismos datos, podemos actualizar la caché de la tabla dinámica en lugar de actualizar la tabla dinámica real. La actualización de la caché actualizará automáticamente todas las tablas dinámicas que utilizan los datos contenidos en la caché.

123456 Sub RefreshCache ()Dim chPivot como PivotCachePara cada chPivot en ActiveWorkbook.PivotCacheschPivot.RefreshSiguiente chPivotEnd Sub
wave wave wave wave wave