[Video] Actualizar automáticamente una Tabla dinámica en Excel usando macros
En esta ocasión les comparto la manera de cómo obtener una macro de Excel mediante la grabadora de macros que realice la acción de actualizar una Tabla dinámica de manera automática al activar una hoja.
Cómo lo hacemos
Tenemos una tabla de Sucursales, la cual usaremos para crear nuestra Tabla dinámica. Pero antes convertiremos el rango en una Tabla. Para eso, estando situados sobre el rango, elegimos Inicio > Dar formato como tabla y elegimos un estilo de Tabla.
Figura 1. Dar formato como Tabla en Excel.
El formato como Tabla nos ayudará a que cuando ingresemos un registro a la tabla no necesitemos cambiar el tamaño del rango, puesto que se tomará la tabla completa. Ahora insertaremos la Tabla dinámica en una hoja nueva. Nos vamos a la pestaña Insertar > Tabla dinámica.
Figura 2. Insertar Tabla dinámica en Excel.
Cambiar nombre a Tabla dinámica
A continuación les comparto la macro que usaremos para que se actualice automática la Tabla dinámica, pero antes le cambiaremos el nombre a la Tabla dinámica creada para usar el nuevo nombre en la macro. Para cambiarle el nombre elegimos la pestaña Analizar > Tabla dinámica > Nombre de Tabla dinámica e ingresamos TD_VENTAS.
Figura 3. Cambiar nombre a Tabla dinámica en Excel.
Macro para actualizar automáticamente Tabla dinámica
Para ingresar la macro damos click derecho sobre la hoja donde esté nuestra Tabla dinámica y seleccionamos Ver código. Al abrir el IDE de vba ingresaremos la siguiente macro. La macro se ejecutará en el Evento Activate de la hoja.
La macro que usaremos es:
Private Sub Worksheet_Activate()
ActiveSheet.PivotTables(“TD_VENTAS”).PivotCache.Refresh
End Sub
Figura 4. Macro para actualizar automáticamente Tabla dinámica.
Prueba de la macro
Por último y más importante validaremos que la macro funciona. Ingresamos datos de prueba al final de la Tabla y al regresar a la hoja con la Tabla dinámica, veremos que los datos se actualizaron.
Figura 5. Actualizar Tabla dinámica automáticamente.