Excel - Ocultar pestañas por hipervinculo

 
Vista:

Ocultar pestañas por hipervinculo

Publicado por Paco (1 intervención) el 11/01/2021 16:31:56
Buenas tardes

Tengo un fichero excel con un índice con hipervínculos. Dichos hipervínculos están apuntando a otras hojas creadas dentro del propio fichero.

Listado Material asociado a la hoja HojaMaterial
Listado Personal asociado a la hoja HojaPersonal

El problema radica en que quiero que todas las hojas estén ocultas salvo el índice y que cuando pinche en el hipervínculo, se muestre la hoja asociada a dicho hipervínculo. Cuando termine de trabajar en dicha hoja y vuelva a índice, se vuelva a ocultar la hoja.

Para ello, he creado el siguiente código en la hoja "ThisWorkbook":

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim DirLink As String   'DIRECCION DEL HIPERVINCULO SELECCIONADO
 
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
 
    DirLink = ActiveCell.Hyperlinks(1).SubAddress
    DirLink = Left(DirLink, InStr(1, DirLink, "!", vbTextCompare) - 1)
 
    If Sheets(DirLink).Visible = False Then
        Sheets(DirLink).Visible = True
        Sheets(DirLink).Activate
        Sheets(DirLink).Range("A1").Select
    End If
End Sub
 
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    If Sh.Name <> "PARAMETROS" Then Sheets(Sh.Name).Visible = False
End Sub

El problema radica en que cuando pincho el hipervínculo "Listado material", en vez de mostrar la hoja asociada a este hipervínculo (Llamada HojaMaterial) me muestra un mensaje de error "Se ha producido el error '9' en tiempo de ejecución, subíndice fuera del intervalo" y cuando solicito que me depure donde esta el problema, me indica que el error está en esta línea:

1
If Sheets(DirLink).Visible = False Then


Espero puedan ayudarme.

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de NachoBM
Val: 21
Ha disminuido 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Ocultar pestañas por hipervinculo

Publicado por NachoBM (6 intervenciones) el 19/01/2021 20:09:52
Hola,
Añade
1
Sheets("PARAMETROS").Activate
antes de
1
DirLink = ActiveCell.Hyperlinks(1).SubAddress
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ocultar pestañas por hipervinculo

Publicado por Paco (1 intervención) el 20/01/2021 20:05:41
Buenas tardes

Ante disculpa la demora en la contestación, he estado fuera por motivos laborales.

Acabo de probar lo que indicas y funciona!!.... Muuuuchisimas gracias por la ayuda!!.

Ahora tengo otro problema y es que cuando protejo la estructura del libro mediante una contraseña (Para evitar que creen más pestañas y similar) no ejecuta el código, me salta un mensaje de error 1004 "No es posible asignar la propiedad Visible de la clase Worksheet.

La verdad es que no tengo ni idea de como solucionar esto.

Muchas gracias de antemano.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de NachoBM
Val: 21
Ha disminuido 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Ocultar pestañas por hipervinculo

Publicado por NachoBM (6 intervenciones) el 23/01/2021 23:22:23
Hola,
Puedes desproteger el libro y desprotegerlo mediante el siguiente código:
1
2
ThisWorkBook.Unprotect("CLAVE_DEL_LIBRO")
ThisWorkBook.Protect("CLAVE_DEL_LIBRO")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar