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
 

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...

Preguntas similares