Como esconder las hojas en excel

Como puede hacer que no se vean las hojas en excel... Tengo en total 10 hojas la primera es la hoja menu donde tengo vinculadas todas la hojas y es donde tengo los comandos para ingresar los datos que se van a guardar en las diferentes hojas

Pero no kiero que se vean las 9 hojas donde tengas las tablas solo la primera que es el menu..

Que solo se muestren cuando les llame desde la hoja menu.

Respuesta
1

Agrego mi respuesta ya que me lo has consultado en tema anterior.

Para ocultar las hojas al abrir el libro, debes colocar la macro en el evento Open del libro (objeto ThisWorkbook)

Private Sub Workbook_Open()
Call ocultaHojas
End Sub

Luego seguramente mostrarás solo la que necesites... o no. Se puede trabajar en un 90% con la hoja oculta si está bien programado.

Pero suponiendo que necesites activarlas y tu hoja menú tiene botones para pasar a las distintas tareas. Y por ejemplo una tarea requiere trabajar con la hoja VENTAS... entonces ese botón de llamada tendrá una macro como esta:

Sub ir_Ventas()
With Sheets("VENTAS")
    .Visible = True
    .Select
End With
End Sub

Si en cambio necesitas mostrar todas las hojas, la macro sería así:

Sub muestraHojas()
For Each sh In Sheets
    sh.Visible = True
Next sh
End Sub

*Ya salió publicado el nuevo manual: Todo Bucles  ! ! 

Sdos.

Elsa

No se pegó la macro que oculta las hojas... aquí va:

Sub ocultaHojas()
For Each sh In Sheets
    'omito la hoja Menu
    If UCase(sh.Name) <> "MENU" Then sh.Visible = xlveryHidden
Next sh
End Sub

Sdos!

2 respuestas más de otros expertos

Respuesta
1

Tienes 2 maneras de ocultar las hojas

1- Click derecho sobre la pestaña de la hoja y das click a ocultar

2- Entrando a Vba y creando en un modulo una macro el cual seria algo así

Sub HojasBienOcultas()
Hoja2.Visible =xlSheetHidden
Hoja3.Visible =xlSheetHidden
Hoja4.Visible =xlSheetHidden
Hoja5.Visible =xlSheetHidden
Hoja6.Visible =xlSheetHidden
Hoja7.Visible =xlSheetHidden
Hoja8.Visible =xlSheetHidden
Hoja9.Visible =xlSheetHidden
Hoja10.Visible =xlSheetHidden
End sub

Con esta macro harias lo mismo que dando click derecho sobre la pestaña , click ocultar solo que desde una macro, si alguien da click sobre la barra y hace  click en mostrar las podra hacer visibles nuevamente

Con esta macro solo las podra hacer visible con otra macro

Sub HojasBienOcultas()
Hoja2.Visible =xlSheetVeryHidden
Hoja3.Visible =xlSheetVeryHidden
Hoja4.Visible =xlSheetVeryHidden
Hoja5.Visible =xlSheetVeryHidden
Hoja6.Visible =xlSheetVeryHidden
Hoja7.Visible =xlSheetVeryHidden
Hoja8.Visible =xlSheetVeryHidden
Hoja9.Visible =xlSheetVeryHidden
Hoja10.Visible =xlSheetVeryHidden
End sub

Si te sirvió la información no olvides valorar la respuesta

Muchas gracias lo de la macro me parece mejor... pero como haría para mostrar a través de una macro las hojas..

Sería así

Sub HojasBienOcultas()
Hoja2.Visible =xlSheetvisible
Hoja3.Visible =xlSheetvisible
Hoja4.Visible =xlSheetvisible
Hoja5.Visible =xlSheetvisible
Hoja6.Visible =xlSheetvisible
Hoja7.Visible =xlSheetvisible
Hoja8.Visible =xlSheetvisible
Hoja9.Visible =xlSheetvisible
Hoja10.Visible =xlSheetvisible
End sub
Respuesta
1

Una forma de ocultar las hojas es desde que abras el archivo excel y en automático las esconda y además las cargue en un combobox como se muestra en la siguiente imagen, del combobox seleccionas la hoja y en cuanto lo hagas esta aparecerá pudiendoocultarla de nuevo con el botón opción a la derecha.

las macros quedan así, tienes que crear dos controles activex uno para el combobox y otro para el botón option

'estas macros las pegas en la hoja VBA que tenga la funcion de menu
Private Sub ComboBox1_Change()
NOMBRE = ComboBox1.Value
If ComboBox1.ListIndex > -1 Then Sheets(NOMBRE).Visible = True
OptionButton1.Value = False
End Sub
Private Sub OptionButton1_Click()
NOMBRE = ComboBox1.Value
If ComboBox1.ListIndex > -1 Then Sheets(NOMBRE).Visible = False
End Sub
'
'y esta la pegas en el modulo thisworkbook 
Private Sub Workbook_Open()
Set LISTA = Hoja1.ComboBox1
LISTA.Clear
For Each hoja In Worksheets
    NOMBRE = UCase(hoja.Name)
    Sheets(NOMBRE).Visible = NOMBRE = "MENU"
    If NOMBRE <> "MENU" Then LISTA.AddItem hoja.Name
Next hoja
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas