Actualizar PivotTable automáticamente

Tengo una PivotTable en una hoja diferente de donde están los datos por los que se actualiza, y quisiera saber si hay una macro para actualizarla automáticamente, me refiero a que cada que yo modifique los valores de mi tabla, la pivot table que esta en otra hoja se actualize automanticamente.

Nota ; tengo excel 2010 en ingles

Respuesta
1

Las líneas que necesitas adicionar en el código de la hoja que contiene los datos son las siguientes:

Application.EnableEvents = False
 Sheets(1).PivotTables("Tabla dinámica1").PivotCache.Refresh
 Application.EnableEvents = True

(Puede ser necesario modificar el nombre de la tabla, o el indice de la hoja que se actualiza, eso depende de tu situación)

Si tienes problemas, te dejo un archivo en el cual puedes ver como se actualiza la tabla al modificar los datos.

5 respuestas más de otros expertos

Respuesta
2

Otra vez Shaveax,

Si lo puedes hacer con macro, pero no te lo recomiendo, dependiendo del volumen de información que manejes podría colgarte la PC.

Ingresa con Alt+F11 al editor de macros, dale doble click a la hoja donde tienes los datos (OJO LOS DATOS, no la tabla dinámica).

Busca el evento Change del objeto Worksheet y allí ingresas el código:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim pt As PivotTable
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.RefreshTable
Next pt
Next ws

End Sub

Ojo como la pivottable no esta en la misma hoja que los datos, el código buscará todas las pivottable que haya en el libro y las refrescará, en otras palabras si tienes mas de una tabla dinámica, todas se actualizarán.

Respuesta
1

Te preparo un ejemplo y te lo mando...

Un momento

Te mando mi ejemplo:

Copia esta macro en el objeto hoja que tiene la tabla dinámica ya creada. Mediante esta macro cuando modifiques el contenido de la tabla principal luego vas a ver la hoja donde está la dinámica y la tendrás actualizada.

Private Sub Worksheet_Activate()
tot = ActiveSheet.PivotTables.Count
For x = 1 To tot
ActiveSheet.PivotTables(x).PivotCache.Refresh
Next
End Sub

no olvides finalizar la consulta

Respuesta
1

No hay una macro que haya visto para eso, pero puedes hacerla.

En la pestaña Vista ( en español) debe llamarse view en inglés puedescrear una macro con la segunda opción de la lista del boton Macros

Respuesta
1

Espero estés muy bien!

Antes de darte una alternativa con macros, quisiera contarte esta:

Te recomiendo apliques el formato de Tabla (Menu Insertar - Tablas) a los datos y luego generes la tabla dinámica (Pivot Table) con el o los informes que necesites. A medida que vayas ingresando nuevos datos, estos irán tomando también el formato de tabla. Lo que debes hacer luego de haber ingresado nuevos datos es ir a la Pívot Table hacer clic derecho y escoger la opción actualizar y listo!

Considero que es una buena alternativa y casi igual al hecho de crear un botón con una macro para actualizar la Tabla dinámica. Sin embargo, si consideras que es más práctica la macro, me dices y la realizamos.

Estaré atento a tu apreciación. Éxitos !

Respuesta
1

Podes hacerlo con una macro gravada, realizando todos los pasos de copiar pegar, esta macro la gravas en un botón insertado en la hoja que ingresas los datos y quieres que se actualicen automáticamente, cada ves que lo presiones se actualizará. Para realizar esto vas a la pestaña programador y insertas un botón, en dicha hoja, te paras en el mismo con el botón derecho pones gravar macro y realizas todos los pasos que quieres que haga. Por ejemplo copiar toda la hoja y pegarla en la otra hoja. Esta sería una forma fácil de realizar esto.. espero que funcione, también puedes guardar los datos automáticamente con la macro gravada.

Pablo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas