Con esta opción se cargan todas las hojas en un combobox control-activex.
OPCIÓN 1.
Primero, debes tener una hoja llamada "principal" para poner el combobox. Siempre estará visible la hoja "principal" y la hoja que selecciones.
Segundo, en la hoja "principal", debes crear el combobox control-activex
Pon la siguiente macro en los eventos de workbook.
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'Por.Dante Amor
cargarhojas
End Sub
Private Sub Workbook_Open()
'Por.Dante Amor
cargarhojas
End Sub
Sub cargarhojas()
'Por.Dante Amor
Sheets("principal").ComboBox1.Clear
For Each hoja In Sheets
If hoja.Name <> "principal" Then
Sheets("principal").ComboBox1.AddItem hoja.Name
End If
Next
End Sub
Instrucciones para poner la macro en ThisWorkbook
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
- Del lado derecho copia la macro
Pon la siguiente macro en los eventos de la hoja "principal"
Private Sub ComboBox1_Change()
'Por.Dante Amor
Application.ScreenUpdating = False
For Each hoja In Sheets
If hoja.Name <> "principal" Then
hoja.Visible = False
End If
If hoja.Name = ComboBox1 Then
hoja.Visible = True
End If
Next
Sheets(ComboBox1.Value).Select
End Sub
Sigue las Instrucciones para poner la macro en worksheet
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(Principal)
- Del lado derecho copia la macro
Para ocultar las hojas y seleccionar una hoja, ve a la hoja principal y selecciona la hoja del combobox
Si no quieres manejar una hoja "principal", puedes utilizar esta opción:
OPCIÓN 2.
Pon la siguiente macro en un módulo:
Sub Crearmenu()
'Por.Dante Amor
Dim Hoja As Worksheet
On Error Resume Next
CommandBars("Menu de hojas").Delete
With CommandBars.Add(Name:="Menu de hojas")
With .Controls.Add(Type:=msoControlDropdown)
For Each Hoja In Worksheets
.AddItem Hoja.Name
.OnAction = "Irahoja"
.TooltipText = "Seleccione hoja"
Next
End With
.Visible = True
End With
End Sub
Ejecuta la macro anterior. Lo que te hace es crear una cinta llamada "Complementos" (un nuevo menú) .
En esa cinta vas a encontrar un "combobox" con las hojas del libro.
Ahora pon la siguiente macro en otro módulo o en el mismo módulo:
Sub Irahoja()
'Por.Dante Amor
Application.ScreenUpdating = False
With CommandBars.ActionControl
h = .List(.ListIndex)
End With
Sheets(h).Visible = True
For Each Hoja In Sheets
If Hoja.Name <> h Then
Hoja.Visible = False
End If
Next
End Sub
Entra a la cinta "complementos", selecciona una hoja del "combobox".
Saludos. Dante Amor
Recuerda valorar la respuesta.