Modificar tabla dinamica desde macro

22/05/2009 - 18:07 por ahuescar | Informe spam
Hola a quien pueda ayudarme, y gracias desde este momento

Tengo unas 200 tablas dinámicas y necesito hacer dos cosas con ellas:
1) cambiar el filtro de todas de manera automática
2) que el nuevo filtro lo determine una lista desplegable. Es decir,
si en la lista desplegable elijo la opción 2, se ejecute una macro que
me modifique todas las tablas que tengo poniéndoles como nuevo filtro
el 2 (que, obviamente, es un valor que existe en la lista de campos)

Cualquier ayuda será bienvenida. Gracias


Augusto

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
22/05/2009 - 23:38 | Informe spam
hola, Augusto !

Tengo unas 200 tablas dinamicas y necesito hacer dos cosas con ellas:
1) cambiar el filtro de todas de manera automatica
2) que el nuevo filtro lo determine una lista desplegable.
Es decir, si en la lista desplegable elijo la opcion 2
se ejecute una macro que me modifique todas las tablas que tengo poniéndoles como nuevo filtro el 2
(que, obviamente, es un valor que existe en la lista de campos)



supongamos que "la lista" (o su valor) esta indicado en la celda F1 de "(alg)una" de las hojas (pongamos que la hoja1)
y supongamos tambien que cada TD esta en su hoja "correspondiente" (???)
prueba usando el siguiente codigo en el modulo de "esa" hoja (la hoja1 ?)

Private Sub Worksheet_Calculate()
Dim Hoja As Worksheet
For Each Hoja In Worksheets(Array("hoja2", "hoja3", "hoja4", "hoja5"))
Hoja.PivotTables(1).PageFields(1).CurrentPage = CStr(Range("f1"))
Next
End Sub

el evento podria optimizarse al conocer (exactamente) si los cambios en "la lista" disparan el evento '_change' (???)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 ahuescar
25/05/2009 - 10:27 | Informe spam
Hola, Hector, y muchas gracias

He probado este código que me pones, poniendo bien la celda de
referencia y demás, pero las dinámicas no cambian...siguen filtradas
por la misma variable.

Lo que necesito yo es justo lo que dices: hacer que los cambios en la
lista disparen el evento "_change", que consistiría en modificar todas
las dinámicas de otra hoja según el nuevo parámetro que diga la
lista...

Se te ocurre algo??



On 22 mayo, 23:38, "Héctor Miguel"
wrote:
hola, Augusto !

> Tengo unas 200 tablas dinamicas y necesito hacer dos cosas con ellas:
> 1) cambiar el filtro de todas de manera automatica
> 2) que el nuevo filtro lo determine una lista desplegable.
> Es decir, si en la lista desplegable elijo la opcion 2
> se ejecute una macro que me modifique todas las tablas que tengo poniéndoles como nuevo filtro el 2
> (que, obviamente, es un valor que existe en la lista de campos)

supongamos que "la lista" (o su valor) esta indicado en la celda F1 de "(alg)una" de las hojas (pongamos que la hoja1)
y supongamos tambien que cada TD esta en su hoja "correspondiente" (???)
prueba usando el siguiente codigo en el modulo de "esa" hoja (la hoja1 ?)

Private Sub Worksheet_Calculate()
  Dim Hoja As Worksheet
  For Each Hoja In Worksheets(Array("hoja2", "hoja3", "hoja4", "hoja5"))
    Hoja.PivotTables(1).PageFields(1).CurrentPage = CStr(Range("f1"))
  Next
End Sub

el evento podria optimizarse al conocer (exactamente) si los cambios en "la lista" disparan el evento '_change'    (???)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Héctor Miguel
26/05/2009 - 04:02 | Informe spam
hola, Augusto !

He probado este codigo que me pones, poniendo bien la celda de referencia y demas
pero las dinamicas no cambian...siguen filtradas por la misma variable.
Lo que necesito yo es justo lo que dices: hacer que los cambios en la lista disparen el evento "_change"
que consistiria en modificar todas las dinamicas de otra hoja segun el nuevo parametro que diga la lista...
Se te ocurre algo??



(para empezar...)
que comentes los detalles que (desde este lado del mensaje) se tendrian que imaginar/suponer/(tratar de) "adivinar"/... (p.e.)

1) que es (exactamente) "la lista" ???
- reglas de validacion ?
- algun "combo" ? (de que tipo ?, formularios, cuadro de controles)
- de donde se toman los datos para "la lista" ?
- cual es la celda que toma el dato de "la lista" ?

2) donde estan las ~200 tabas dinamicas ?
- 10 por hoja ?
- cada una en "su hoja" ?
- cuantos filtros de pagina tiene cada TD ?
- cuantas (y cuales) son las hojas con tablas dinamicas ?

3) como podriamos (re)construir un modelo de trabajo (exactamente) "igual al tuyo" ?

saludos,
hector.

__ previos __
Tengo unas 200 tablas dinamicas y necesito hacer dos cosas con ellas:
1) cambiar el filtro de todas de manera automatica
2) que el nuevo filtro lo determine una lista desplegable.
Es decir, si en la lista desplegable elijo la opcion 2
se ejecute una macro que me modifique todas las tablas que tengo poniéndoles como nuevo filtro el 2
(que, obviamente, es un valor que existe en la lista de campos)



supongamos que "la lista" (o su valor) esta indicado en la celda F1 de "(alg)una" de las hojas (pongamos que la hoja1)
y supongamos tambien que cada TD esta en su hoja "correspondiente" (???)
prueba usando el siguiente codigo en el modulo de "esa" hoja (la hoja1 ?)

Private Sub Worksheet_Calculate()
Dim Hoja As Worksheet
For Each Hoja In Worksheets(Array("hoja2", "hoja3", "hoja4", "hoja5"))
Hoja.PivotTables(1).PageFields(1).CurrentPage = CStr(Range("f1"))
Next
End Sub

el evento podria optimizarse al conocer (exactamente) si los cambios en "la lista" disparan el evento '_change' (???)
Respuesta Responder a este mensaje
#4 tommyvc
01/06/2009 - 00:35 | Informe spam
On 25 mayo, 22:02, "Héctor Miguel"
wrote:
hola, Augusto !

> He probado este codigo que me pones, poniendo bien la celda de referencia y demas
> pero las dinamicas no cambian...siguen filtradas por la misma variable.
> Lo que necesito yo es justo lo que dices: hacer que los cambios en la lista disparen el evento "_change"
> que consistiria en modificar todas las dinamicas de otra hoja segun el nuevo parametro que diga la lista...
> Se te ocurre algo??

(para empezar...)
que comentes los detalles que (desde este lado del mensaje) se tendrian que imaginar/suponer/(tratar de) "adivinar"/... (p.e.)

1) que es (exactamente) "la lista" ???
    - reglas de validacion ?
    - algun "combo" ? (de que tipo ?, formularios, cuadro de controles)
    - de donde se toman los datos para "la lista" ?
    - cual es la celda que toma el dato de "la lista" ?

2) donde estan las ~200 tabas dinamicas ?
    - 10 por hoja ?
    - cada una en "su hoja" ?
    - cuantos filtros de pagina tiene cada TD ?
    - cuantas (y cuales) son las hojas con tablas dinamicas ?

3) como podriamos (re)construir un modelo de trabajo (exactamente) "igual al tuyo" ?

saludos,
hector.

__ previos __

>> Tengo unas 200 tablas dinamicas y necesito hacer dos cosas con ellas:
>> 1) cambiar el filtro de todas de manera automatica
>> 2) que el nuevo filtro lo determine una lista desplegable.
>> Es decir, si en la lista desplegable elijo la opcion 2
>> se ejecute una macro que me modifique todas las tablas que tengo poniéndoles como nuevo filtro el 2
>> (que, obviamente, es un valor que existe en la lista de campos)

> supongamos que "la lista" (o su valor) esta indicado en la celda F1 de "(alg)una" de las hojas (pongamos que la hoja1)
> y supongamos tambien que cada TD esta en su hoja "correspondiente" (???)
> prueba usando el siguiente codigo en el modulo de "esa" hoja (la hoja1 ?)

> Private Sub Worksheet_Calculate()
> Dim Hoja As Worksheet
> For Each Hoja In Worksheets(Array("hoja2", "hoja3", "hoja4", "hoja5"))
> Hoja.PivotTables(1).PageFields(1).CurrentPage = CStr(Range("f1"))
> Next
> End Sub

> el evento podria optimizarse al conocer (exactamente) si los cambios en "la lista" disparan el evento '_change' (???)



Hola Amigos

HAce un tiempo he estado buscando alguna solucion a un problema que
tengo con las TD y las macros, me cuelgo de este post porque es
parecido a lo que busco, sorry si causa alguna molestia, pero necesito
esto de forma urgente.

El tema es así:

Supongamos que en la Hoja1 tengo los datos con los cuales construi las
TD y en la Hoja2 tengo 2 TD's que se basan en los mismos datos, pero
muestran algunos valores diferentes (como por ejemplo una muestra
ingresos en un periodo y la otra egresos). El asunto es que quiero
filtrar un campo que contiene fechas, pero hay tantos datos basura en
la base que me salen muchas cosas que no corresponden a fechas, la
idea es dejar la base como esta y trabajar con las TD's. Entonces cada
vez que introduzco nuevos datos tengo que filtrar manualmente el campo
fecha y me toma mucho tiempo.

Mi idea es por ejemplo , en la hoja donde estan las tablas dinamicas,
en alguna celda introducir una fecha y que al hacer correr una macro
actualice las tablas con los nuevos datos y ademas filtre
automaticamente el campo fecha de la TD de acuedo a la fecha que esta
introducida en esa celda.

Se puede hacer algo asi?y que pasaria por ejemplo si la fecha
introducida no esta en el rango de datos?muchas gracias de
antemano por la ayuda.

Saludos,
Rodrigo
Respuesta Responder a este mensaje
#5 Héctor Miguel
01/06/2009 - 01:55 | Informe spam
hola, Rodrigo !

(hasta donde se) las suposiciones por lo general llevan a equivocaciones (?)

en tanto comentas detalles concretos (al igual que el OP de la consulta donde te cuelgas)...
ve si te sirve algo de lo comentado en las siguientes conversacines: -> http://tinyurl.com/llzjjz

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
Supongamos que en la Hoja1 tengo los datos con los cuales construi las TD
y en la Hoja2 tengo 2 TD's que se basan en los mismos datos, pero muestran algunos valores diferentes
(como por ejemplo una muestra ingresos en un periodo y la otra egresos).
El asunto es que quiero filtrar un campo que contiene fechas
pero hay tantos datos basura en la base que me salen muchas cosas que no corresponden a fechas
la idea es dejar la base como esta y trabajar con las TD's.
Entonces cada vez que introduzco nuevos datos tengo que filtrar manualmente el campo fecha y me toma mucho tiempo.
Mi idea es por ejemplo , en la hoja donde estan las tablas dinamicas, en alguna celda introducir una fecha
y que al hacer correr una macro actualice las tablas con los nuevos datos
y ademas filtre automaticamente el campo fecha de la TD de acuedo a la fecha que esta introducida en esa celda.
Se puede hacer algo asi?y que pasaria por ejemplo si la fecha introducida no esta en el rango de datos?
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida