Activar una hoja al hacer doble clic en una celda

Resuelto
Walles Mensajes publicados 15 Estado Miembro -  
Walles Mensajes publicados 15 Estado Miembro -
Hola a todos (perdón por los acentos, pero tengo un teclado qwerty...),

Me gustaría abrir una hoja de mi archivo de Excel al hacer doble clic en una celda.

El objetivo sería tener en la primera página celdas que contengan texto y cuando uno haga doble clic en una celda, se abriría la página con el mismo nombre. Más o menos he conseguido hacerlo, pero de manera muy rudimentaria y nada evolutiva.

Les doy un ejemplo:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Target.Value = ("A") Then
Sheets("A").Activate
End If

If Target.Value = ("B") Then
Sheets("B").Activate
End If

If Target.Value = ("C") Then
Sheets("C").Activate
End If

If Target.Value = ("D") Then
Sheets("D").Activate
End If

End Sub

He intentado crear bucles, declarar variables pero no hay manera, solo esto está funcionando por ahora.

Además, este archivo será evolutivo, debería ser que si tenemos que agregar algo, llenamos una nueva celda, creamos la hoja con el mismo nombre y el vínculo se haga automáticamente.

Espero haber sido claro, no duden en pedirme más información si la necesitan.

Gracias de antemano.

3 respuestas

  1. Gyrus Mensajes publicados 3360 Estado Miembro 526
     
    Hola,

    Intenta con
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim Ws As Worksheet
    For Each Ws In Worksheets
    If Ws.Name = Target.Value Then
    Sheets(Target.Value).Activate
    Exit For
    End If
    Next Ws
    End Sub

    ¡Hasta luego!
    1
  2. ccm81 Mensajes publicados 11033 Estado Miembro 2 434
     
    Hola

    Tienes los enlaces hipertexto que hacen eso sin recurrir a VBA
    Si no, prueba esto (para un doble clic en el rango B2:B5)

    Const rango = "B2:B5"

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range(rango)) Is Nothing Then
    Sheets(Target.Value).Select
    End If
    End Sub

    Saludos
    0
  3. Walles Mensajes publicados 15 Estado Miembro
     
    ¡Muchas gracias, en efecto, funciona muy bien!
    0