¿Cómo crear una macro para activar un hipervínculo?

Tengo la siguiente macro asignada a un botón, para que cuando la celda L3 cambie de nombre el botón me mande a la hoja con el nombre indicado en la celda.

Bien, ahora el problema es que debo crear cien botones pues necesito asociarlo a 100 celdas distintas, es posible hacer una macro para ir a las hojas especificadas en las celdas L3, L4, L5,... L100; o es necesario hacer las 100 macros y los 100 botones.

1 Respuesta

Respuesta
2

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

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. 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.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas