¿ Actualizar tablas dinámicas solas?

18/05/2005 - 09:01 por Ulises | Informe spam
Hola!!!
Estoy haciendo una plantillas de ventas y quiero que una tabla dinámica se
actualice sola respecto a los datos que están en otra hoja.
¿ Se puede hacer sin tener que actualizar la tabla dinámica manualmente?
Un saludo y gracias

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
18/05/2005 - 11:10 | Informe spam
"Ulises" escribió en el mensaje news:
Hola!!!
Estoy haciendo una plantillas de ventas y quiero que una tabla dinámica se
actualice sola respecto a los datos que están en otra hoja.
¿ Se puede hacer sin tener que actualizar la tabla dinámica manualmente?
Un saludo y gracias



Prueba con el siguiente código, pero ten en cuenta que tendrás que sustituir Hoja2 por el nombre de la hoja donde se encuentre la tabla dinámica:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range(Application.ConvertFormula(Replace(Worksheets("Hoja2").PivotTables(1).PivotCache.SourceData, "F", "R"), xlR1C1, xlA1))) Is Nothing Then Worksheets("Hoja2").PivotTables(1).PivotCache.Refresh
End Sub

El código iría en el módulo de la hoja que tiene los datos de los que se nutre la tabla dinámica. Lo único que tienes que hacer para acceder a dicho módulo es click derecho sobre la etiqueta de la hoja > Ver código.
Un saludo.


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#2 AnGeLo
18/05/2005 - 15:57 | Informe spam
Hola Fer, yo desde hace rato queria saber como hacer esto, bueno pero no me
habia dado por prenguntar, la cosa es q estoy usando el codigo poniendolo
como dices en el modulo de la hoja donde estan los datos, pero me manda este
error: "Imposible obtener la propiedad Pivot Tables de la clase Worksheet" y
no c q hacer, q puedo hacer para solucionarlo o es q estoy haciendo algo
mal???

Saludos,

"Fernando Arroyo" escribió en el mensaje
news:
"Ulises" escribió en el mensaje
news:
Hola!!!
Estoy haciendo una plantillas de ventas y quiero que una tabla dinámica se
actualice sola respecto a los datos que están en otra hoja.
¿ Se puede hacer sin tener que actualizar la tabla dinámica manualmente?
Un saludo y gracias



Prueba con el siguiente código, pero ten en cuenta que tendrás que sustituir
Hoja2 por el nombre de la hoja donde se encuentre la tabla dinámica:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target,
Range(Application.ConvertFormula(Replace(Worksheets("Hoja2").PivotTables(1).
PivotCache.SourceData, "F", "R"), xlR1C1, xlA1))) Is Nothing Then
Worksheets("Hoja2").PivotTables(1).PivotCache.Refresh
End Sub

El código iría en el módulo de la hoja que tiene los datos de los que se
nutre la tabla dinámica. Lo único que tienes que hacer para acceder a dicho
módulo es click derecho sobre la etiqueta de la hoja > Ver código.
Un saludo.


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#3 Fernando Arroyo
18/05/2005 - 16:22 | Informe spam
Ese error "suena" a que la hoja Hoja2 (o la que hayas puesto) no tiene ninguna tabla dinámica. Si pones el nombre real de la hoja donde se encuentra la tabla dinámica, el código debería funciona.

Por ejemplo, suponiendo que la hoja se llamara TablaDinámica, el código podría ser (esta vez usando un bloque With...End With para que resulte un poco más legible):

Private Sub Worksheet_Change(ByVal Target As Range)
With Worksheets("TablaDinámica").PivotTables(1).PivotCache
If Not Intersect(Target, Range(Application.ConvertFormula(Replace(.SourceData, "F", "R"), xlR1C1, xlA1))) Is Nothing Then .Refresh
End With
End Sub


Si no lo consigues, dílo y subo un ejemplo.
Un saludo.


Fernando Arroyo
MS MVP - Excel

"AnGeLo" escribió en el mensaje news:%
Hola Fer, yo desde hace rato queria saber como hacer esto, bueno pero no me
habia dado por prenguntar, la cosa es q estoy usando el codigo poniendolo
como dices en el modulo de la hoja donde estan los datos, pero me manda este
error: "Imposible obtener la propiedad Pivot Tables de la clase Worksheet" y
no c q hacer, q puedo hacer para solucionarlo o es q estoy haciendo algo
mal???

Saludos,

Respuesta Responder a este mensaje
#4 AnGeLo
18/05/2005 - 16:38 | Informe spam
Hola Fernando, pareciera como q me eh enredado,

Estoy poniendo el codigo en la hoja donde tengo los datos, no en la hoja q
tengo la tabla dinamica, y la hoja q coloco en el codigo en vez de HOja2 le
pongo el nombre donde tengo la tabla dinamica, y no me funciona. no c q
estaré haciendo mal, ya eh probado de varias formas, y otras no me manda
error pero no me actualiza nada.

Saludos,

"Fernando Arroyo" escribió en el mensaje
news:#
Ese error "suena" a que la hoja Hoja2 (o la que hayas puesto) no tiene
ninguna tabla dinámica. Si pones el nombre real de la hoja donde se
encuentra la tabla dinámica, el código debería funciona.

Por ejemplo, suponiendo que la hoja se llamara TablaDinámica, el código
podría ser (esta vez usando un bloque With...End With para que resulte un
poco más legible):

Private Sub Worksheet_Change(ByVal Target As Range)
With Worksheets("TablaDinámica").PivotTables(1).PivotCache
If Not Intersect(Target,
Range(Application.ConvertFormula(Replace(.SourceData, "F", "R"), xlR1C1,
xlA1))) Is Nothing Then .Refresh
End With
End Sub


Si no lo consigues, dílo y subo un ejemplo.
Un saludo.


Fernando Arroyo
MS MVP - Excel

"AnGeLo" escribió en el mensaje
news:%
Hola Fer, yo desde hace rato queria saber como hacer esto, bueno pero no


me
habia dado por prenguntar, la cosa es q estoy usando el codigo poniendolo
como dices en el modulo de la hoja donde estan los datos, pero me manda


este
error: "Imposible obtener la propiedad Pivot Tables de la clase Worksheet"


y
no c q hacer, q puedo hacer para solucionarlo o es q estoy haciendo algo
mal???

Saludos,

Respuesta Responder a este mensaje
#5 Fernando Arroyo
18/05/2005 - 16:50 | Informe spam
Quizás es que el código en realidad no hace lo que necesitas ¿?.

He subido un ejemplo con el código funcionando:

http://www.excelesp.com/ejemplos/Ej...50518a.xls

Un saludo.


Fernando Arroyo
MS MVP - Excel


"AnGeLo" escribió en el mensaje news:
Hola Fernando, pareciera como q me eh enredado,

Estoy poniendo el codigo en la hoja donde tengo los datos, no en la hoja q
tengo la tabla dinamica, y la hoja q coloco en el codigo en vez de HOja2 le
pongo el nombre donde tengo la tabla dinamica, y no me funciona. no c q
estaré haciendo mal, ya eh probado de varias formas, y otras no me manda
error pero no me actualiza nada.

Saludos,

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida