Macro para Abrir agrupaciones Nivel 1 / 2

04/05/2007 - 18:45 por Arcano | Informe spam
Hola a todos, tengo un problema con las agrupaciones (datos>agrupar y
esquema):

Necesito una macro que abra el nivel 1 sin que abra el nivel 2, luego
otra macro que abra solo el nivel dos. Esta ultima si lo logré con:
Range("A37").Select
ExecuteExcel4Macro "Show.DETAIL(1, 37, True, 12)"
Pero cuando quice abrir solo el nivel 1 con un codigo similar, abre
cualquier cosa, y hasta el nivel 3 se abre...

Segundo, es posible ocultar esta columna que indica el nivel de
apertura y que contiene los (+)/(-) ? Es para tener una hoja de Excel
limpia, tipo presentacion preliminar de Power Point.

Gracias.
 

Leer las respuestas

#1 Héctor Miguel
05/05/2007 - 04:52 | Informe spam
hola, cristian ?

Necesito una macro que abra el nivel 1 sin que abra el nivel 2, luego otra macro que abra solo el nivel dos.
Esta ultima si lo logre con:
Range("A37").Select
ExecuteExcel4Macro "Show.DETAIL(1, 37, True, 12)"
Pero cuando quice abrir solo el nivel 1 con un codigo similar, abre cualquier cosa, y hasta el nivel 3 se abre...

Segundo, es posible ocultar esta columna que indica el nivel de apertura y que contiene los (+)/(-)
Es para tener una hoja de Excel limpia, tipo presentacion preliminar de Power Point.



1) la macro-funcion de excel4 que estas ejecutando [show.detail] usa los siguientes parametros:
show.detail(fila_col, fila_col_num, expandir, mostrar_campo) donde:
fila_col: 1 aplicada a filas, 2 aplicada a columnas, 3 la fila_col 'activas' [se ignora el siguiente argumento[
fila_col_num: especifica que numero de fila/columna se oculta/muestra
expandir: true: lo expande false: lo colapsa 'omitido': lo inverso de lo actual expandido <-> colapsado
mostrar_campo: <- este argumento solo es aplicable a tablas dinamicas :))

a) de acuerdo con el segundo argumento... no es necesaria una seleccion 'previa' de cual fila/columna se afectara [p.e.]
de tu instruccion: -> Range("A37").Select
ya estas indicando cual fila: "show.detail(.37)"

b) la forma 'nativa' de vba para 'trabajar' con los niveles de agrupacion [outline] es +/- la siguiente [adapta/modifica el ejemplo]:

Sub Alternar_niveles_de_grupo()
Dim n_Fila As Byte, n_Col As Byte
n_Fila = InputBox("Que nivel de fila ?")
n_Col = InputBox("Que nivel de columna ?")
ActiveSheet.Outline.ShowLevels n_Fila, n_Col
End Sub

[segundo]: para mostrar/ocultar el area donde se pueden seleccionar los niveles de agrupacion...
-> prueba con al atajo de teclado {ctrl}+8 [se alterna si se muestran/ocultan]
o desde [menu] herramientas / opciones / [ficha] ver / [seccion] opciones de ventana -> simbolos de esquema

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares