Ocultar Libros y Celdas según criterios de Usuario

Mi pregunta es para mejorar la presentación de un reporte de meses, el cual va para diferentes gerentes y por ende no a todos les sirve ver la misma información.

Una TD queda muy robusta así que necesito decirle al Excel que según una lista desplegable en otra hoja (eso es lo de menos) oculte determinados libros y luego celdas, para que vea solo que necesita cada usuario.

Sé que existen dashboard que facilitaran el tema, pero demandan tiempo de diseño y hasta VoBo del "dueño del aviso", por eso Excel es lo mas practico.

¿Cómo puedo proceder? ¿Cómo hago la macro?

1 respuesta

Respuesta
1

¿Lo qué quieres es esconder hojas de un libro dependiendo de un combobox? De ser asi pegale una ojeada a la respuesta de James Bond en esta pregunta

como esconder las-hojas en excel

Quizas el pueda darte una mano a adaptar su ejemplo a tu trabajo

Perdona James por recomendarte sin consultarte xD jajaja es que justo tu idea concuerda con la pregunta..

Saludos - Si la respuesta te fue de utilidad no olvides valorarla.

Gracias por tu pronta respuesta, sin embargo, el combobox no me sirve, la seleccion del usuario seria solo al principio y por solo una vez, ya que localmente queda guardado en cada gerente, por lo que un combobox cada vez que abre el libro no es funcional.

Lo que tengo en mente es: libro uno, 1ra vez, le digo al excel: voy a ver de febrero a septiembre y de la sucursal 23 a la 56 (de 450 en total), con esto, corre la macro y me oculta los meses que no voy a usar y las surcursales que no usare, sé que suena sencillo, pero el archivo es bastante amplio y tiene muchas cosas, que van hasta la celda DA y la fila 583, por eso es mas practico que, con una macro, simplemente oculte lo que no se necesita una sola vez y ya.

De pronto esta ampliación sirva para que con la experiencia tuya o de quien lo lea, me pueda aportar alguna idea para programar la macro, yo me encargo de decirle a excel que consulte en el 1er libro lo que el usuario selecciono y es ahí donde "patino" para que la macro sepa que libros y que rango de celdas y filas ocultar.

Gracias y buena noche.

LM

Puntualmente: si en Hoja 1 en la celda B1 dice: octubre, entonces oculte este libro llamado "octubre"

En las demás hojas (imagino que toca nombrarlas una a uno) oculte el rango: C:G y J:AA y toda la fila 30 hasta la 120.

Así es como dice la teoría que es, pero en el lenguaje es que patino. 

LM

Pensando que le dices "Libro" a las hojas crea un modulo y dentro pon esto

Sub OcultaHoja()
If Worksheets(1).Range("B1").Value = "Octubre" Then
Sheets("Octubre").Visible = False
Else
Sheets("Octubre").Visible = True
End If
End Sub

Cuando ejecutes esa macro si en la celda B1 de la hoja 1 dice Octubre entonces oculta la hoja Octubre , si borras la palabra y vuelves a ejecutar la macro la vuelve a a hacer visible

¿Esto es lo que necesitas?

De ser así explícame la parte de las filas para poder agregarla a la macro

También podrías agregarlo al modulo de la hoja para que cuando lo escribas y salgas de B1 lo haga automático

Esto iría dentro del modulo de la hoja 1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("B1").Value = "Octubre" Then
Sheets("Octubre").Visible = False
Else
Sheets("Octubre").Visible = True
End If
End Sub

Genial, muchas gracias, te complemento entonces:

en hoja: "INICIO" tendrá un listado de los libros a ocultar, haré una lista de los nombres de los libros con una formula en AB1:AB12 que de como resultado algo como "ocultar libro" (según la selección del usuario en la parte de A:D del mismo libro), luego de esto, de que me oculte de 1 o 6 libros (son 7 en total) de las que quedan visibles hará la 2da validación y es buscar las meses que usara, (ahí me toca hacer una matriz para que excel sepa que si el libro: "Sucursal Cali" quedo visible, y van a ver ENE, FEB y MAR (misma seleccion del usuario en el rango visible para él en A:D), entonces oculte las demás, esta matriz le dirá que de "Sucursal Cali" y ocultando todas excepto las antes mencionadas es el rango A350:BD954 (por ejemplo).

Así lo tengo pensado

Sigo con la misma intriga... a que le dices libros ¿? ¿?

si, que pena, libro para mi serian la popular hoja, esas de abajo de hoja1, hoja2 y hoja3, Gracias Sebas!

¿Algo así te sirve?

Si en la hoja INICIO en la celda B2 dice "Sucursal Cali" entonces muestra las hojas "ENE", "FEB", "MAR" y "Sucursal Cali" ... de lo contrario si están visibles y cambios el texto en B2 de la hoja inicio (que ya no diga "Sucursal Cali" entonces se vuelven a ocultar...

Pega esta macro dentro del modulo de la hoja "INICIO"y no olvides ponerle los nombres a las hojas

Private Sub Worksheet_Change(ByVal Target As Range)
Set h2 = Sheets("ENE")
Set h3 = Sheets("FEB")
Set h4 = Sheets("MAR")
Set h5 = Sheets("Sucursal Cali")
If Range("B2").Value = "Sucursal Cali" Then
    h2.Visible = True
    h3.Visible = True
    h4.Visible = True
    h5.Visible = True
Else
    h2.Visible = False
    h3.Visible = False
    h4.Visible = False
    h5.Visible = False
End If
End Sub

¡Gracias! así es lo que buscaba!

Espero tengas una excelente semana!

Me alegro que te haya funcionado compañero

Recuerda que si deseas que no puedan habilitar la hoja desde click derecho sobre hojas "mostrar hojas"

Cambia "=false" por "xlVeryHidden" de esta forma solo se podrá hacer visibles las hojas si escribes "Sucursal Cali"

Perdón no olvides el "=" de lo contrario no funcionara je je aclaro por las dudas...

"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas