Tablas dinámicas repetidas

21/12/2007 - 16:48 por Marta | Informe spam
Hola a todos,

Preguntilla: tengo un documento con una tabla de datos base. A partir de
esos datos tengo otras tres tablas dinámicas, cada una en una hoja. Las tres
sacan los datos de la misma tabla base, pero son tres diferentes porque cada
una muestras unos campos y unos detalles diferentes.
El archivo está preparado para que lo consulte gente que no tiene que
modificar el archivo, simplemente leer.
El caso es que el filtro principal de las tres tablas es el mismo, "País".
Es decir, hay una columna en la tabla base de datos que es país, y luego el
campo que está como "página" en las tres tablas dinámicas es "país".
Cada persona que entra a ver el archivo pertenece a un país diferente, y a
cada uno le interesa ver solo los datos de su país.
El problema es que cada vez que cambian de pestaña, tienen que estar
seleccionando su país en las tres tablas dinámicas, y esto no es óptimo.
Existe también una pestaña con un resumen, donde tengo funciones que resumen
todos los datos. En esta pestaña cada persona escribe las siglas de su país,
y salen los datos oportunos.
Lo que quiero saber es cómo hacer que el campo "página" de las tres tablas
dinámicas cambie en función de las siglas que se han seleccionado en la hoja
resumen.
Es decir, una persona de Alemania abre el archivo, en la pestaña principal
de resumen de datos escribe en la celda correspondiente DE, y entonces
automáticamente las tres tablas dinámicas que están cada una en una hoja
identifican el contenido de esa celda y muestran en las tablas solo los datos
de ese país (en lugar de tener que estar desplegando el campo "página" de
cada tabla dinámica y seleccionando manualmente DE).

¿Se puede?

Mil gracias,
Marta

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
21/12/2007 - 21:19 | Informe spam
hola, Marta !

(p.e.) podrias usar el evento '_calculate' de la hoja donde tienes el resumen para que...
- cuando se cambie la celda "X" (el campo de pagina) se "iguale" la seleccion en el campo de pagina (celdas "Y") de las otras hojas

tambien podrias hacer "esto mismo" usando el evento '_calculate' de todas las hojas para "igualar" los campos de pagina de las otras
y/o administrar un solo evento '_calculate' (p.e.) usando los eventos del libro (ThisWorkbook) en lugar de los de cada hoja -?-

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

__ la consulta original __
... tengo un documento con una tabla de datos base. A partir de esos datos tengo otras tres tablas dinamicas
cada una en una hoja... cada una muestras... campos y... detalles diferentes.
... esta preparado para que lo consulte gente que no tiene que modificar el archivo, simplemente leer.
... el filtro principal de las tres tablas es el mismo, "Pais"...
... cada vez que cambian de pestana, tienen que estar seleccionando su pais en las tres tablas dinamicas, y esto no es optimo.
Existe tambien una pestana... donde tengo funciones que resumen todos los datos
... cada persona escribe las siglas de su pais, y salen los datos oportunos.
... como hacer que el campo "pagina" de las tres tablas... cambie en funcion de las siglas que se han seleccionado en la hoja resumen...
Respuesta Responder a este mensaje
#2 Marta
27/12/2007 - 16:23 | Informe spam
Hola Héctor !

Muchas gracias por tu respuesta.

Podrías darme más detalles de cómo hacerlo? No soy nada experta programando,
así que te agradecería que me explicaras más paso a paso.

Te explico exactamente lo que tengo ahora mismo:
- Un libro con tres pestañas:
. Pestaña 1, llamada "By_Market". Aquí en la celda B12 tengo un combo-box
desplegable, insertado a través de la barra de herramientas formulario. A
través de este menú, la gente selecciona el país del cual quiere ver los
datos. En propiedades del menú tengo que toma la lista de los países de la
pestaña "Calcs", en la cual tengo el listado (en Calcs!$F$2:$F$12), siendo la
Cell link Calcs!$E$1.
En esta pestaña "Calcs", a la izquierda de cada país los tengo numerados, lo
cual me sirve luego para las fórmulas de referencia y vlookup.
. Pestaña 3, llamada "Editor_Detail". Aquí está la tabla dinámica. En la
tabla tengo el campo País (realmente llamado Primary_Market) en el campo de
página (Page), y luego tengo otros campos en filas, columnas y datos.

Como ves, lo que quiero es que cuando alguien en el desplegable de la
pestaña "By_Market" seleccione un país determinado, automáticamente la tabla
dinámica muestre ese país, y no tenga que estar seleccionándolo en el campo
página de la pivot table.

Muchas gracias por tu ayuda,
Marta


"Héctor Miguel" wrote:

hola, Marta !

(p.e.) podrias usar el evento '_calculate' de la hoja donde tienes el resumen para que...
- cuando se cambie la celda "X" (el campo de pagina) se "iguale" la seleccion en el campo de pagina (celdas "Y") de las otras hojas

tambien podrias hacer "esto mismo" usando el evento '_calculate' de todas las hojas para "igualar" los campos de pagina de las otras
y/o administrar un solo evento '_calculate' (p.e.) usando los eventos del libro (ThisWorkbook) en lugar de los de cada hoja -?-

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

__ la consulta original __
> ... tengo un documento con una tabla de datos base. A partir de esos datos tengo otras tres tablas dinamicas
> cada una en una hoja... cada una muestras... campos y... detalles diferentes.
> ... esta preparado para que lo consulte gente que no tiene que modificar el archivo, simplemente leer.
> ... el filtro principal de las tres tablas es el mismo, "Pais"...
> ... cada vez que cambian de pestana, tienen que estar seleccionando su pais en las tres tablas dinamicas, y esto no es optimo.
> Existe tambien una pestana... donde tengo funciones que resumen todos los datos
> ... cada persona escribe las siglas de su pais, y salen los datos oportunos.
> ... como hacer que el campo "pagina" de las tres tablas... cambie en funcion de las siglas que se han seleccionado en la hoja resumen...



Respuesta Responder a este mensaje
#3 Héctor Miguel
27/12/2007 - 23:39 | Informe spam
hola, Marta !

- Un libro con tres pestanas:... 1, llamada "By_Market"... en... B12 tengo un combo-box... de la barra de herramientas formulario
... que toma la lista de los paises de...l listado (en Calcs!$F$2:$F$12), siendo la Cell link Calcs!$E$1.
En... "Calcs", a la izquierda de cada pais los tengo numerados, lo cual me sirve luego para las formulas de referencia y vlookup.
Pestana 3, llamada "Editor_Detail". Aqui esta la tabla dinamica. En la tabla tengo el campo Pais (realmente llamado Primary_Market)
en el campo de pagina (Page), y luego tengo otros campos en filas, columnas y datos.
... lo que quiero es que cuando alguien en el desplegable de la pestana "By_Market" seleccione un pais determinado
automaticamente la tabla dinamica muestre ese pais, y no tenga que estar seleccionandolo en el campo pagina de la pivot table...



hay dos o tres detalles que convierten en "poco sencillo" el procedimiento de auto-actualizacion de datos por combos incrustados...
1) los cambios de la seleccion en el combo (al modificarse la celda vinculada) no disparan los eventos de la hoja (solo el calculate)
2) los combos de formlularios muestran el contenido de la lista pero... depositan el numero (o indice) de la seleccion en el listado
3) (de todas formas) administrar tablas dinamicas (como la seleccion en campos de pagina) requiere del uso de codigo

para (tratar de) hacerlo sencillo, voy a suponer que en la hoja "Calcs" en la celda $F$1 determinas el pais seleccionado segun cambios en $E$1
y que usas una formula del tipo =buscarv(a1,e2:f12,2) (por lo que se podria detectar el evento '_calculate' en la hoja "calcs")
y... (esto es importante) que en la hoja "Editor_Detail", el campo de pagina (el combo de seleccion TD) ES la celda $D$3 <= OJO

1) haz un clic-secundario sobre la etiqueta de tu hoja "calcs" y seleccionas -> "ver codigo..."
2) copia/pega las siguientes instrucciones... y haz algunas pruebas...

Private Sub Worksheet_Calculate()
Worksheets("editor_detail").PivotTables(1).PageFields(1).CurrentPage = CStr(Range("f1"))
End Sub

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 Marta
28/12/2007 - 10:11 | Informe spam
Hola Héctor!

Perfecto, ha funcionado a la primera! Hace justo lo que necesito y de manera
muy sencilla.

Solo una cosa, cómo tendría que poner el código si en lugar de tener la
tabla dinámica en la hoja "Editor_Detail" la tuviera en la pestaña
"By_Market", siendo en este caso el campo de pagina (el combo de seleccion
TD) la celda $B$21? Sería posible?

Muchas gracias!!!
Marta

"Héctor Miguel" wrote:

hola, Marta !

> - Un libro con tres pestanas:... 1, llamada "By_Market"... en... B12 tengo un combo-box... de la barra de herramientas formulario
> ... que toma la lista de los paises de...l listado (en Calcs!$F$2:$F$12), siendo la Cell link Calcs!$E$1.
> En... "Calcs", a la izquierda de cada pais los tengo numerados, lo cual me sirve luego para las formulas de referencia y vlookup.
> Pestana 3, llamada "Editor_Detail". Aqui esta la tabla dinamica. En la tabla tengo el campo Pais (realmente llamado Primary_Market)
> en el campo de pagina (Page), y luego tengo otros campos en filas, columnas y datos.
> ... lo que quiero es que cuando alguien en el desplegable de la pestana "By_Market" seleccione un pais determinado
> automaticamente la tabla dinamica muestre ese pais, y no tenga que estar seleccionandolo en el campo pagina de la pivot table...

hay dos o tres detalles que convierten en "poco sencillo" el procedimiento de auto-actualizacion de datos por combos incrustados...
1) los cambios de la seleccion en el combo (al modificarse la celda vinculada) no disparan los eventos de la hoja (solo el calculate)
2) los combos de formlularios muestran el contenido de la lista pero... depositan el numero (o indice) de la seleccion en el listado
3) (de todas formas) administrar tablas dinamicas (como la seleccion en campos de pagina) requiere del uso de codigo

para (tratar de) hacerlo sencillo, voy a suponer que en la hoja "Calcs" en la celda $F$1 determinas el pais seleccionado segun cambios en $E$1
y que usas una formula del tipo =buscarv(a1,e2:f12,2) (por lo que se podria detectar el evento '_calculate' en la hoja "calcs")
y... (esto es importante) que en la hoja "Editor_Detail", el campo de pagina (el combo de seleccion TD) ES la celda $D$3 <= OJO

1) haz un clic-secundario sobre la etiqueta de tu hoja "calcs" y seleccionas -> "ver codigo..."
2) copia/pega las siguientes instrucciones... y haz algunas pruebas...

Private Sub Worksheet_Calculate()
Worksheets("editor_detail").PivotTables(1).PageFields(1).CurrentPage = CStr(Range("f1"))
End Sub

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



Respuesta Responder a este mensaje
#5 Héctor Miguel
28/12/2007 - 10:26 | Informe spam
hola, Marta !

Solo una cosa, como tendria que poner el codigo si en lugar de tener la tabla dinamica en la hoja "Editor_Detail"
la tuviera en la pestana "By_Market"
siendo en este caso el campo de pagina (el combo de seleccion TD) la celda $B$21? ...



olvida mi "despiste" cuando te indicaba en el correo anterior lo siguiente:
y... (esto es importante) que en la hoja "Editor_Detail", el campo de pagina (el combo de seleccion TD) ES la celda $D$3 <= OJO





en realidad, en lugar de "buscar" la celda que corresponde al desplegable del campo de pagina de la TD...
resulta mas sencillo indicar la propiedad "CurrentPage" del campo de pagina correspondiente...
-> en este caso se asume un solo campo de pagina con el objeto: PageFields(1)

para esta consulta, solo necesitas cambiar el nombre de la hoja/pestana/etiqueta/... de la hoja que contiene la TD (p.e.)
de: -> Worksheets("editor_detail")
a: -> Worksheets("by_market")

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida