Te presento 2 opciones:;
Opción 1, macro automática. Se ejecuta cuando cambias el valor de la celda L3, solamente tienes que poner el nombre de cualquier hoja en la celda L3 y en automático la macro te lleva a esa hoja. Si la hoja no existe te envía un mensaje.
Pon la macro en los eventos de la hoja.
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
If Target.Count > 1 Then Exit Sub
If Target.Address(False, False) = "L3" Then
For Each h In Sheets
If UCase(h.Name) = UCase(Target) Then
existe = True
Exit For
End If
Next
If existe Then
Sheets(Target.Value).Select
Else
MsgBox "El nombre de hoja no existe"
Target.Select
End If
End If
End Sub
Opción 2, macro automática. Se ejecuta cuando cambias el valor de cualquiera de las celdas de L3 a L100. Cambia el contenido de cualquier celda desde L3 a L100 y en automático la macro te lleva a esa hoja. Si la hoja no existe te envía un mensaje.
Pon la macro en los eventos de la hoja.
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("L3:L100")) Is Nothing Then
For Each h In Sheets
If UCase(h.Name) = UCase(Target) Then
existe = True
Exit For
End If
Next
If existe Then
Sheets(Target.Value).Select
Else
MsgBox "El nombre de hoja no existe"
Target.Select
End If
End If
End Sub
Sigue las Instrucciones para poner la macro en los eventos de 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(tu hoja)
- Del lado derecho copia la macro
Opción 3, macro con botón. Selecciona una celda del rango "L3:L100", esa celda deberá tener el nombre de la hoja a la que quieres ir. Después de seleccionar la celda presiona el botón (solamente tendrás un botón, lo importante es seleccionar la celda con el nombre de hoja a la que quieres ir).
Pon la macro en un módulo y asígnala a un botón.
Sub SeleccionarHoja()
'Por.Dante Amor
If ActiveCell.Column <> Columns("L").Column Then Exit Sub
hoja = ActiveCell.Value
For Each h In Sheets
If UCase(h.Name) = UCase(hoja) Then
existe = True
Exit For
End If
Next
If existe Then
Sheets(hoja).Select
Else
MsgBox "El nombre de hoja no existe"
End If
End Sub
Pueden existir más opciones combinado las macros anteriores, pero cualquier opción bastará con una sola macro para cambiar a cualquiera de tus 100 hojas.
Saludos. Dante Amor
Recuerda valorar la respuesta.