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":
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:
Espero puedan ayudarme.
Gracias!
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
0