Macro que oculte hojas

31/08/2007 - 16:06 por Marta | Informe spam
Hola a todos,

A ver si me echáis una manita con esto.

Tengo un documento con varias hojas, la primera de ellas siempre se ve y las
demás están ocultas.
En la primera hoja (la que está siempre visible) hay una serie de botones
cada uno con una macro. Si pincho en el botón 1 la macro lo que hace es
mostrar de las hojas ocultas aquellas que relacionadas con el grupo 1. Si
pincho en el botón 2, me muestra de las hojas ocultas las relacionadas con el
grupo 2... y así sucesivamente con todos los botones que tengo.

El problema es que lo que quiero es que si por ejemplo, pincho en botón 1 y
se muestran todas las hojas del grupo 1. Si ahora pincho en el botón 2 quiero
que se oculten todas las que no sean del grupo 2 y se muestren las del grupo
2.

No consigo hacer una macro que diga "ocultar todas las hojas que están
visibles excepto la hoja Control Panel" (que es la primera, donde están los
botones)... ya que cada hoja tiene nombres distintos y cada vez que pincho en
un botón de antemano no sé cómo se van a llamar las hojas que están mostradas
y quiero ocultar.

¿Me explico?

Pues eso, muchísimas gracias a todos por vuestra ayuda,
Martape

Preguntas similare

Leer las respuestas

#11 Marta
03/09/2007 - 21:32 | Informe spam
Buenas de nuevo!

Te cuento avances, después de leer tus respuestas, comprobé que
efectivamente transcribí mal esa línea, y que estaba escrita en el código tal
cual me la pusiste tú.
Después de hacer mil pruebas, te digo en qué punto estoy (a punto de
volverme loca con algo que no puedo comprender):
- Volví a pegar el código tal cual me lo pusiste tú. Da el error que te
dije... Entonces, en lugar de eliminar esa línea, lo que he hecho es eliminar
del código el grupo Ncds. Resultado: la macro funciona PERFECTAMENTE si
utilizo solo los grupos All, UK, DE, FR, ES, NL y prescindo del grupo Ncds,
¿¿¿????
- Hasta tal punto que de todas las hojas asociadas al grupo he comprobado
que todos los espacios, guiones, nombres, etc estén bien... Y LO ESTÁN.
- Tercer paso: cambio el nombre del grupo, y lo llamo NR. Cambio el nombre
del botón a NR (incluso elimino el botón y creo uno nuevo y lo llamo NR).
Entro en el código y cambio Ncds por NR. A las hojas asociadas al grupo les
cambio el nombre y pongo NR. Conclusión: SIGUE SIN FUNCIONAR.
- No solo para ese grupo, es decir, si tengo entre los grupos Ncds, o NR, o
como quiera que se llame el grupo maldito, entonces la macro no funciona para
ningún grupo y da el error en la línea que te puse.
- Me estoy volviendo loca porque no le veo ningún sentido... he copiado
incluso las hojas asociadas a otro grupo y renombradas a NR para probar, y
nada!

En fin, a ver si se os ocurre algún motivo por el que esto pueda pasar
porque no lo entiendo.

Lo curioso es que también he comprobado que si entras en Menú - Formato -
Hoja - Mostrar, donde no deberían aparecer las hojas asociadas ya que usamos
el VeryHidden en la macro, pues resulta que dos de las hojas del grupo de
Ncds sí están ahí presentes. Si en la macro elimino la línea que da problemas
y la ejecuto sobre el botón Ncds, el resultado es que me desoculta dos hojas
solo (en lugar de 4).

Si, sí, seguro que el problema se debe al nombre de las hojas o que va por
ahí, pero de verdad que no doy crédito porque por muchos cambios que hago
esto sigue igual!

Mil gracias,
Martape

"Héctor Miguel" wrote:

hola, Marta !

> Te cuento avances: en el codigo elimine directamente la linea que aparecia en amarillo
> ... sospecho que esa linea es la que hace que las hojas ocultas NO se muestran en el menu: formato / hoja / mostrar...
> Realmente esto no me hace falta...

ok, estoy de acuerdo en que no haga falta que no te aparezcan en el menu de formato/hoja/mostrar
pero es tambian la linea que se encarga de ocultar las hojas, por eso es que al eliminarla...

> ... ahora al pinchar en cualquier boton, se hacen visibles las 4 hojas correspondientes a ese grupo.
> El problema es que no se ocultan las demas, y necesitaria que se ocultaran.

revisa los comentarios en tu mensaje anterior [es probable que encuentres alguna hoja *discordante* con el patron de nombres]

> ... si aun estamos a tiempo... me gustaria que despues de... aparecer sus 4 pesta#as
> ... quedar el cursor en la... pesta#a "Summary_x" del grupo que corresponda... en la celda A1.

Sub Grupo_x()
Application.ScreenUpdating = False
Oculta_todas
nHojas = Split(Hojas, ",")
For hX = LBound(nHojas) To UBound(nHojas)
Worksheets(nHojas(hX) & "_" & _
ActiveSheet.Buttons(Application.Caller).Caption).Visible = True
Next
Worksheets("summary_" & ActiveSheet.Buttons(Application.Caller).Caption).Activate
Range("a1").Select
End Sub

saludos,
hector.



Respuesta Responder a este mensaje
#12 Héctor Miguel
04/09/2007 - 01:20 | Informe spam
hola, Marta !

-> te puedo asegurar que la macro propuesta *paso por varias pruebas* ANTES de exponerla como propuesta ;)
[me hice un libro nuevo con 29 hojas, una con los botones y 28 con los siguientes nombres E-XAC-TA-MEN-TE]...

1) si revisas tu exposicion *original* con relacion a los nombres de las hojas [y grupos]...
Opcion 2: te comento detalles:
- Los botones son... desde la barra de herramientas de formulario, y a cada uno le he asignado una macro.
- Tengo en total 7 grupos, cada uno de ellos tiene asociadas 4 hojas. Te pongo la estructura:
Grupo 1: se llama "All Markets" y las hojas asociadas se llaman: "Summary_All", "Totals_All", "Averages_All", "Sickness Rate_All"
Grupo 2: se llama "UK" y las hojas asociadas se llaman: "Summary_UK", "Totals_UK", "Averages_UK", "Sickness Rate_UK"
Grupo 3: se llama "DE" y las hojas asociadas se llaman: "Summary_DE", "Totals_DE", "Averages_DE", "Sickness Rate_DE"
Grupo 4: se llama "FR" y las hojas asociadas se llaman: "Summary_FR", "Totals_FR", "Averages_FR", "Sickness Rate_FR"
Grupo 5: se llama "ES" y las hojas asociadas se llaman: "Summary_ES", "Totals_ES", "Averages_ES", "Sickness Rate_ES"
Grupo 6: se llama "NL" y las hojas asociadas se llaman: "Summary_NL", "Totals_NL", "Averages_NL", "Sickness Rate_NL"
Grupo 7: se llama "Nordics" y las hojas asociadas se llaman: "Summary_Nrds", "Totals_Nrds", "Averages_Nrds", "Sickness Rate_Nrds"



2) si revisas las *notas* [u observaciones] de la propuesta con relacion a los cambios:
1) con los siguientes *entendidos*:
a) 7 botones de la barra de herramientas formularios [NO cuadro de controles]
b) 7 grupos [uno por cada boton]: "All Markets", "UK", "DE", "FR", "ES", "NL" y "Nordics"
c) cada grupo con 4 hojas de nombre *generico*: "Summary_", "Totals_", "Averages_", Sickness Rate_"

2) haces las siguientes modificaciones:
a) los *Caption* [o titulo] de los botones 1 y 7 los cambias a 1="All" 7="Nrds" [para que coincidan con el *sufijo* de las hojas]
b) A TODOS los botones les asignas LA MISMA macro que en este ejemplo se llama: -> "Grupo_x()"
c) *el resto*... lo hacemos en el codigo [p.e.]
1) se ocultan todas las hojas excepto [obviamente] las que esten *fuera* de las constantes "Hojas" y "Grupos"
2) se muestran solo las hojas del boton *pinchado*



3) te puedo asegurar que *el problema* sigue estando en la coincidencia [o falta de ella] en el nombre de las hojas :))

4) te recuerdo que el *patron* inicial de los nombres de las hojas esta en la variable:
-> Public Const Hojas As String = "totals,summary,averages,sickness rate"
y que el *patron* para los grupos y nombres de los botones es la variable:
-> Public Const Grupos As String = "all,uk,de,fr,es,nl,nrds"
=> de donde has sacado el [nuevo ?] grupo de NCDS ???[segun tu exposicion origina debia ser NRDS -claro que en minusculas-]

saludos,
hector.

P.D. si necesitas un libro con la propuesta y el codigo *funcionando*...
a que direccion te lo hago llegar ?

__ 1 __
- Volvi a pegar el codigo tal cual me lo pusiste to. Da el error que te dije... Entonces
en lugar de eliminar esa linea, lo que he hecho es eliminar del codigo el grupo Ncds.
Resultado: la macro funciona PERFECTAMENTE si utilizo solo los grupos All, UK, DE, FR, ES, NL y prescindo del grupo Ncds
- ... de todas las hojas asociadas al grupo he comprobado que todos los espacios, guiones, nombres, etc estan bien... Y LO ESTAN.


__ 2 __
- Tercer paso: cambio el nombre del grupo, y lo llamo NR. Cambio el nombre del boton a NR
(incluso elimino el boton y creo uno nuevo y lo llamo NR).
Entro en el codigo y cambio Ncds por NR. A las hojas asociadas al grupo les cambio el nombre y pongo NR.
Conclusion: SIGUE SIN FUNCIONAR.
- No solo para ese grupo, es decir, si tengo entre los grupos Ncds, o NR, o como quiera que se llame el grupo maldito
entonces la macro no funciona para ningun grupo y da el error en la linea que te puse.
- Me estoy volviendo loca porque no le veo ningun sentido
... he copiado incluso las hojas asociadas a otro grupo y renombradas a NR para probar, y nada!
En fin, a ver si se os ocurre algun motivo por el que esto pueda pasar porque no lo entiendo.


__ 3 __
Lo curioso es que tambien he comprobado que si entras en Menu - Formato - Hoja - Mostrar
donde no deberian aparecer las hojas asociadas ya que usamos el VeryHidden en la macro
pues resulta que dos de las hojas del grupo de Ncds si estan ahi presentes.
Si en la macro elimino la linea que da problemas y la ejecuto sobre el boton Ncds
el resultado es que me desoculta dos hojas solo (en lugar de 4).

Si, si, seguro que el problema se debe al nombre de las hojas o que va por ahi­
pero de verdad que no doy credito porque por muchos cambios que hago esto sigue igual!

Mil gracias,
Martape
Respuesta Responder a este mensaje
#13 Marta
04/09/2007 - 11:40 | Informe spam
Hey Héctor!

Ya puedo respirar tranquila, ya va!!!

Lo último que decías, NCDS-NRDS, sí, utilizaba el que te comenté en el foro.

Está claro que en algún nombre de hoja estaba el asunto, no sé en cuál pero
al final lo que hice fue crear el libro de cero, mano a mano poniendo cada
nombre, y ahora sí funciona, 100% tal cual necesito.
En algún sitio estaba el fallo y sea cual sea ya está solucionado.

Muchísimas gracias por toda la ayuda a todos!!!!!

Saludos,
Martape

"Héctor Miguel" wrote:

hola, Marta !

-> te puedo asegurar que la macro propuesta *paso por varias pruebas* ANTES de exponerla como propuesta ;)
[me hice un libro nuevo con 29 hojas, una con los botones y 28 con los siguientes nombres E-XAC-TA-MEN-TE]...

1) si revisas tu exposicion *original* con relacion a los nombres de las hojas [y grupos]...
> Opcion 2: te comento detalles:
> - Los botones son... desde la barra de herramientas de formulario, y a cada uno le he asignado una macro.
> - Tengo en total 7 grupos, cada uno de ellos tiene asociadas 4 hojas. Te pongo la estructura:
> Grupo 1: se llama "All Markets" y las hojas asociadas se llaman: "Summary_All", "Totals_All", "Averages_All", "Sickness Rate_All"
> Grupo 2: se llama "UK" y las hojas asociadas se llaman: "Summary_UK", "Totals_UK", "Averages_UK", "Sickness Rate_UK"
> Grupo 3: se llama "DE" y las hojas asociadas se llaman: "Summary_DE", "Totals_DE", "Averages_DE", "Sickness Rate_DE"
> Grupo 4: se llama "FR" y las hojas asociadas se llaman: "Summary_FR", "Totals_FR", "Averages_FR", "Sickness Rate_FR"
> Grupo 5: se llama "ES" y las hojas asociadas se llaman: "Summary_ES", "Totals_ES", "Averages_ES", "Sickness Rate_ES"
> Grupo 6: se llama "NL" y las hojas asociadas se llaman: "Summary_NL", "Totals_NL", "Averages_NL", "Sickness Rate_NL"
> Grupo 7: se llama "Nordics" y las hojas asociadas se llaman: "Summary_Nrds", "Totals_Nrds", "Averages_Nrds", "Sickness Rate_Nrds"

2) si revisas las *notas* [u observaciones] de la propuesta con relacion a los cambios:
> 1) con los siguientes *entendidos*:
> a) 7 botones de la barra de herramientas formularios [NO cuadro de controles]
> b) 7 grupos [uno por cada boton]: "All Markets", "UK", "DE", "FR", "ES", "NL" y "Nordics"
> c) cada grupo con 4 hojas de nombre *generico*: "Summary_", "Totals_", "Averages_", Sickness Rate_"
>
> 2) haces las siguientes modificaciones:
> a) los *Caption* [o titulo] de los botones 1 y 7 los cambias a 1="All" 7="Nrds" [para que coincidan con el *sufijo* de las hojas]
> b) A TODOS los botones les asignas LA MISMA macro que en este ejemplo se llama: -> "Grupo_x()"
> c) *el resto*... lo hacemos en el codigo [p.e.]
> 1) se ocultan todas las hojas excepto [obviamente] las que esten *fuera* de las constantes "Hojas" y "Grupos"
> 2) se muestran solo las hojas del boton *pinchado*

3) te puedo asegurar que *el problema* sigue estando en la coincidencia [o falta de ella] en el nombre de las hojas :))

4) te recuerdo que el *patron* inicial de los nombres de las hojas esta en la variable:
-> Public Const Hojas As String = "totals,summary,averages,sickness rate"
y que el *patron* para los grupos y nombres de los botones es la variable:
-> Public Const Grupos As String = "all,uk,de,fr,es,nl,nrds"
=> de donde has sacado el [nuevo ?] grupo de NCDS ???[segun tu exposicion origina debia ser NRDS -claro que en minusculas-]

saludos,
hector.

P.D. si necesitas un libro con la propuesta y el codigo *funcionando*...
a que direccion te lo hago llegar ?

__ 1 __
> - Volvi a pegar el codigo tal cual me lo pusiste to. Da el error que te dije... Entonces
> en lugar de eliminar esa linea, lo que he hecho es eliminar del codigo el grupo Ncds.
> Resultado: la macro funciona PERFECTAMENTE si utilizo solo los grupos All, UK, DE, FR, ES, NL y prescindo del grupo Ncds
> - ... de todas las hojas asociadas al grupo he comprobado que todos los espacios, guiones, nombres, etc estan bien... Y LO ESTAN.
__ 2 __
> - Tercer paso: cambio el nombre del grupo, y lo llamo NR. Cambio el nombre del boton a NR
> (incluso elimino el boton y creo uno nuevo y lo llamo NR).
> Entro en el codigo y cambio Ncds por NR. A las hojas asociadas al grupo les cambio el nombre y pongo NR.
> Conclusion: SIGUE SIN FUNCIONAR.
> - No solo para ese grupo, es decir, si tengo entre los grupos Ncds, o NR, o como quiera que se llame el grupo maldito
> entonces la macro no funciona para ningun grupo y da el error en la linea que te puse.
> - Me estoy volviendo loca porque no le veo ningun sentido
> ... he copiado incluso las hojas asociadas a otro grupo y renombradas a NR para probar, y nada!
> En fin, a ver si se os ocurre algun motivo por el que esto pueda pasar porque no lo entiendo.
__ 3 __
> Lo curioso es que tambien he comprobado que si entras en Menu - Formato - Hoja - Mostrar
> donde no deberian aparecer las hojas asociadas ya que usamos el VeryHidden en la macro
> pues resulta que dos de las hojas del grupo de Ncds si estan ahi presentes.
> Si en la macro elimino la linea que da problemas y la ejecuto sobre el boton Ncds
> el resultado es que me desoculta dos hojas solo (en lugar de 4).
>
> Si, si, seguro que el problema se debe al nombre de las hojas o que va por ahi­
> pero de verdad que no doy credito porque por muchos cambios que hago esto sigue igual!
>
> Mil gracias,
> Martape



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