Agrupar y esquema complejo

07/04/2008 - 18:16 por Daniel Domínguez | Informe spam
Hola a todos.

Tengo un problema algo complejo de resolver (o eso creo...)

Voy a intentar explicarlo lo mejor posible

- Tengo una hoja excel en la que mediante un combo puedo acceder a una
vision A y una visión B
- En dicho excel tengo un listado de indicadores por oficina, y mediante
agrupar y esquema puedo abrir por producto. Por ejemplo:

+ Oficina1
Producto1
Producto2
Producto3
+ Oficina2
Producto1
Producto2
Producto3

- Los nombres de los productos son distintos para la visión A y para la
visión B, y se asignan automáticamente en función del valor del combo.

Y aquí viene el problema. El número de productos de la visión A y de la
visión B son distintos, por lo que mi idea era que al cambiar de visión se
ocultaran y desocultaran las filas que me interesen para no mostrar filas
vacías. Lo hago con una instrucción como esta:

ThisWorkbook.ActiveSheet.Range("A20:A21").EntireRow.Hidden = True / False

El problema es que, por ejemplo, si paso a la visión B, se ocultan 2 filas,
pero al cerrar y vovler a abrir el esquema (agrupar y desagrupar), dichas
filas vuelven a estar visibles...

De alguna manera necesitaria detectar cuando se agrupa / desagrupa para
colocar un pequeño código en ese evento.

¿Alguien me puede ayudar?

Muchas gracias y un saludo

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
08/04/2008 - 05:27 | Informe spam
hola, Daniel !

1) no estoy muy convencido de que agrupar y esquema sean la opcion mas adecuada a tus intenciones
a) no se de algun medio que por este mecanismo puedas establecer "a discrecion" que filas permanecen visibles/ocultas
b) no se de algun evento que detecte la accion de ampliar/reducir las filas/columnas en un esquema de agrupaciones
(a menos que combines con el evento '_calculate' y/o alguno otro ?)

2) por otro lado, si comentas que por codigo tienes +/- "controlada" la situacion, considera los siguientes puntos:
a) agrupar y esquema (al igual que los auto/filtros/avanzados) lo que administran en precisamente el entirerow.hidden = true/false
b) aun si por codigo estableces la altura de fila en 0 (cero), es casi seguro que al ampliar un esquema agrupado se volveran a mostrar

3) probablemente, en lugar de buscar el control a traves de la propiedad entirerow.hidden = true/false...
si modificas la altura (NO en ceros) entre 0.1 y la propiedad .AutoFit de las "determinadas o aplicables" celdas de cada "vision" -?-
prueba con instrucciones +/- como:
Range("a20:a21").RowHeight = 0.1 ' para reducir CASI a cero la altura de dichas filas '
Range("a20:a21").Rows.AutoFit ' para volver a "mostrar" dichas filas cuando se trate de la vision apropiada '

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

__ la consulta original __
- Tengo una hoja excel en la que mediante un combo puedo acceder a una vision A y una vision B
- ... tengo un listado de indicadores por oficina, y mediante agrupar y esquema puedo abrir por producto. Por ejemplo:
+ Oficina1
Producto1
Producto2
Producto3
+ Oficina2
Producto1
Producto2
Producto3
- Los nombres de los productos son distintos para la vision A y para la... B
y se asignan automaticamente en funcion del valor del combo.
... el problema. El numero de productos de la vision A y de la... B son distintos
por lo que mi idea era que al cambiar de vision se ocultaran y desocultaran las filas que me interesen para no mostrar filas vacoas.
Lo hago con una instruccion como esta:
ThisWorkbook.ActiveSheet.Range("A20:A21").EntireRow.Hidden = True / False
El problema es que, por ejemplo, si paso a la vision B, se ocultan 2 filas
pero al cerrar y vovler a abrir el esquema (agrupar y desagrupar), dichas filas vuelven a estar visibles...
De alguna manera necesitaria detectar cuando se agrupa / desagrupa para colocar un pequeno codigo en ese evento...
Respuesta Responder a este mensaje
#2 Daniel Domínguez
09/04/2008 - 18:54 | Informe spam
Muchas gracias por la respuesta.

He probado algunas de las cosas que dices pero no he conseguido lo que
quería así que al final lo he dejado por imposible (era sólo un tuneo que
quería hacer para que quedara mejor gráficamente). De todas formas, gracias

"Héctor Miguel" wrote:

hola, Daniel !

1) no estoy muy convencido de que agrupar y esquema sean la opcion mas adecuada a tus intenciones
a) no se de algun medio que por este mecanismo puedas establecer "a discrecion" que filas permanecen visibles/ocultas
b) no se de algun evento que detecte la accion de ampliar/reducir las filas/columnas en un esquema de agrupaciones
(a menos que combines con el evento '_calculate' y/o alguno otro ?)

2) por otro lado, si comentas que por codigo tienes +/- "controlada" la situacion, considera los siguientes puntos:
a) agrupar y esquema (al igual que los auto/filtros/avanzados) lo que administran en precisamente el entirerow.hidden = true/false
b) aun si por codigo estableces la altura de fila en 0 (cero), es casi seguro que al ampliar un esquema agrupado se volveran a mostrar

3) probablemente, en lugar de buscar el control a traves de la propiedad entirerow.hidden = true/false...
si modificas la altura (NO en ceros) entre 0.1 y la propiedad .AutoFit de las "determinadas o aplicables" celdas de cada "vision" -?-
prueba con instrucciones +/- como:
Range("a20:a21").RowHeight = 0.1 ' para reducir CASI a cero la altura de dichas filas '
Range("a20:a21").Rows.AutoFit ' para volver a "mostrar" dichas filas cuando se trate de la vision apropiada '

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

__ la consulta original __
> - Tengo una hoja excel en la que mediante un combo puedo acceder a una vision A y una vision B
> - ... tengo un listado de indicadores por oficina, y mediante agrupar y esquema puedo abrir por producto. Por ejemplo:
> + Oficina1
> Producto1
> Producto2
> Producto3
> + Oficina2
> Producto1
> Producto2
> Producto3
> - Los nombres de los productos son distintos para la vision A y para la... B
> y se asignan automaticamente en funcion del valor del combo.
> ... el problema. El numero de productos de la vision A y de la... B son distintos
> por lo que mi idea era que al cambiar de vision se ocultaran y desocultaran las filas que me interesen para no mostrar filas vacoas.
> Lo hago con una instruccion como esta:
> ThisWorkbook.ActiveSheet.Range("A20:A21").EntireRow.Hidden = True / False
> El problema es que, por ejemplo, si paso a la vision B, se ocultan 2 filas
> pero al cerrar y vovler a abrir el esquema (agrupar y desagrupar), dichas filas vuelven a estar visibles...
> De alguna manera necesitaria detectar cuando se agrupa / desagrupa para colocar un pequeno codigo en ese evento...



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida