Ayuda Excel. Hipervínculo a hojas ocultas

16 envíos / 0 nuevos
Último envío
porrompo
Imagen de porrompo
Offline
última acción: Hace 4 años 2 días
alta: 26/02/2020 - 15:31
Puntos: 55
Ayuda Excel. Hipervínculo a hojas ocultas

Buenas tardes, soy nuevo en esto de la programacion VBA y las macros. Os comento mi problema, espero que alguien pueda ayudarme. 

Necesito crear hipervínculos a hojas ocultas. El caso es que en el momento que la hoja está oculta, el hipervínculo deja de funcionar. 

Muchas gracias de antemano. 

Etiquetas: 

FernandoML
Imagen de FernandoML
Offline
última acción: Hace 1 año 9 meses
alta: 01/02/2018 - 19:53
Puntos: 265
Ayuda Excel. Hipervínculo a hojas ocultas

Hola:

En thisworkbook, inserta el siguiente código y nos comentas que tal te ha funcionado.

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
    If Sheets(Target.Name).Visible = False Then
        Sheets(Target.Name).Visible = True
        Sheets(Target.Name).Activate
    End If
End Sub

Espero te sirva

Un saludo

FernandoML

 


Espero te sirva
Un Saludo
Fernando

porrompo
Imagen de porrompo
Offline
última acción: Hace 4 años 2 días
alta: 26/02/2020 - 15:31
Puntos: 55
Gracias

Muchas gracias. Lo pruebo y te digo 

porrompo
Imagen de porrompo
Offline
última acción: Hace 4 años 2 días
alta: 26/02/2020 - 15:31
Puntos: 55
No me sale :(

Buenos días, lo he probado y no me funciona. Seguramente será porque no lo he puesto bien. 

Lo que yo quiero es que todas las hojas de un documento estén ocultas y los hipervínculos están en la primera hoja. Y cuando voy entrando a los hipervínculos, estas hojas se muestren, y cuando salgamos de ellas, se vuelvan a ocultar. No se si me he explicado bien. 

Si podría darme indicaciones de como hacerlo, teniendo en cuenta que no soy ningún experto en la materia, se lo agradecería. 

FernandoML
Imagen de FernandoML
Offline
última acción: Hace 1 año 9 meses
alta: 01/02/2018 - 19:53
Puntos: 265
Ayuda Excel. Hipervínculo a hojas ocultas

Hola de nuevo porrompo

Prueba el siguiente código insertandolo en thiswokbook

Espero que esta vez vaya todo mejor

Cualquier problema o duda aqui estamos todos

 

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 <> "Menu" Then Sheets(Sh.Name).Visible = False
End Sub

Te envio un ejemplo

Un Saludo

Fernando

AdjuntoTamaño
File ocultar_libros.xlsm23.36 KB

 


Espero te sirva
Un Saludo
Fernando

porrompo
Imagen de porrompo
Offline
última acción: Hace 4 años 2 días
alta: 26/02/2020 - 15:31
Puntos: 55
Ayuda Excel. Hipervínculo a hojas ocultas

Buenas tardes, vamos avanzando :D 

Es algo muy parecido a esto, pero no todas las hojas tienen que estar ocultas. 

Te adjunto un documento donde se refleja a grandes rasgos lo que me interesa. Hay algunas hojas que tienen que estar ocultas y solo se muestren cuando se muestren. Hay otras hojas que siempre tienen que estar presentes como son PYG, Balance... 

Gracias de antemano 

AdjuntoTamaño
File prueba_vba.xlsx12.7 KB
ALONDRA GALLEGO...
Imagen de ALONDRA GALLEGOS ROJAS
Offline
última acción: Hace 3 años 11 meses
alta: 02/04/2020 - 16:39
Puntos: 10
ERROR EN TIEMPO DE EJECUCIÓN

Hola buen día, 

Disculpa Fernando, revisé tu archivo y es justo lo que necesito. Sin embargo, cuando trato de validar la funcionabilidad de éste me aparece el sigueinte error:

"Se ha producido el error '9' en tiempo de ejecución:

Subíndice fuera de intervalo" 

¿Me pudieras ayudar a resolverlos por favor? Soy nueva con esto de macros y VBA. Te lo agradecería muchísimo. 

Saludos

AdjuntoTamaño
Image icon error.png5.24 KB
FernandoML
Imagen de FernandoML
Offline
última acción: Hace 1 año 9 meses
alta: 01/02/2018 - 19:53
Puntos: 265
Ayuda Excel. Hipervínculo a hojas ocultas

Buenas tardes:

Disculpa la demora, he estado enfermo y no he podido contestar antes

Prueba el siguiente codigo a ver si es lo que necesitas.

 

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)
    Select Case Sh.Name
        Case "Menu", "Hoja3", "Hoja4", "Hoja5": Exit Sub
        Case Else
            If Sh.Name <> "Menu" Then Sheets(Sh.Name).Visible = False
    End Select
End Sub

He echo alguna modificación. Copia el código en thisworkbook.

Comprueba si es lo que necesitas

Un saludo

AdjuntoTamaño
File copia_de_ocultar_libros.xlsm24.6 KB

 


Espero te sirva
Un Saludo
Fernando

visitante (no verificado)
Imagen de visitante
Buenos días. Lo pruebo y te

Buenos días. Lo pruebo y te digo. Ya siento responder tan tarde, pero llevo muchisimo lio encima. 

Muchas gracias de antemano. 

FABIAN.V
Imagen de FABIAN.V
Offline
última acción: Hace 3 años 7 meses
alta: 19/08/2020 - 17:50
Puntos: 10
APOYO

HOLA ESTE ARCHIVO ES EXCELENTE, POR FAVOR M EPODRIAS AYUDAR COMO PUEDO IMPLEMENTARLO PARA MAS DE 130 HOJAS DE CALCULO, NO PUDE, SOLAMENTE LO DEJA CON LAS HOJAS QUE TIENE EL ARCHIVO.

 

MIL GRACIAS

Francisco B (no verificado)
Imagen de visitante
Hola FernandoML.Llegué aqui

Hola FernandoML.

Llegué aqui buscando la forma de hacer hipervinculos a hojas ocultas de excel y que al regresar se vuelvan a ocultar, exactamente como lo hace tu código, pero nada más me funciona con dos de las ocho hojas que tengo ocultas, en las demas me aparece "Error '9' en tiempo de ejercucion: Subíndice fuera de intervalo". No soy nada bueno en esto, pero ya me quebre la cabeza buscando el motivo de que solo  en esas dos funcione y no encuentro.

Por favor me ayudas con algun consejo o una pista de que deba revisar, de antemano gracias.

Saludos.

 

DM (no verificado)
Imagen de visitante
Buenas tardesRequiero un

Buenas tardes

Requiero un código muy similar a este pero que funcione al presionar el hipervinculo de un botón, es decir a una forma le coloqué el hipervinculo y requiero que haga lo mismo que te lleve a la hoja oculta y al volver al menu se vuelva a ocultar

 

gracias de antemano!

FernandoML
Imagen de FernandoML
Offline
última acción: Hace 1 año 9 meses
alta: 01/02/2018 - 19:53
Puntos: 265
Ayuda Excel. Hipervínculo a hojas ocultas

Hola @porrompo

Ahora debe funcionar.

He modificado el codigo


Dim DirLink As String       'DIRECCION DEL HIPERVINCULO SELECCIONADO

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
    Dim Cont As Integer
    
    Cont = Range(ActiveCell.Address).Hyperlinks.Count   'COMPRUEBO SI EXISTE UN VINCULO A UNA HOJA OCULTA
    
    If Cont = 1 Then
        'SI LA HOJA A LA QUE QUEREMOS ACCEDER ESTA OCULTA EJECUTO ESTE CODIGO
        DirLink = ActiveCell.Hyperlinks(1).SubAddress                       'OBTENGO LA DIRECCION DEL HIPERVINCULO
        DirLink = Left(DirLink, InStr(1, DirLink, "!", vbTextCompare) - 2)  'ELIMINO PARTE DEL LA DIRECCION PARA OBTENER SOLAMENTE EL NOMBRE
        DirLink = Replace(DirLink, "'", "")
        
        If Sheets(DirLink).Visible = False Then
            Sheets(DirLink).Visible = True
            Sheets(DirLink).Activate
            Sheets(DirLink).Range("A1").Select
        End If
    End If
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    Select Case Sh.Name
        Case "SUMARIO ", "VARIABLES ", "RESUMEN ", "PYG ", "BALANCE ": Exit Sub
        Case Else
            If Sh.Name <> "SUMARIO " Then Sheets(Sh.Name).Visible = False
    End Select
End Sub

 

 

 


Espero te sirva
Un Saludo
Fernando

FernandoML
Imagen de FernandoML
Offline
última acción: Hace 1 año 9 meses
alta: 01/02/2018 - 19:53
Puntos: 265
APOYO

Buenas @FABIAN.V:

En cuanto a tu consulta con 130 hojas, sin tener una plantilla o un archivo es dificil.

De todas formas prueba este codigo, cambiando lo que te indico en negrita.


Dim DirLink As String       'DIRECCION DEL HIPERVINCULO SELECCIONADO

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
    Dim Cont As Integer
    
    Cont = Range(ActiveCell.Address).Hyperlinks.Count   'COMPRUEBO SI EXISTE UN VINCULO A UNA HOJA OCULTA
    
    If Cont = 1 Then
        'SI LA HOJA A LA QUE QUEREMOS ACCEDER ESTA OCULTA EJECUTO ESTE CODIGO
        DirLink = ActiveCell.Hyperlinks(1).SubAddress                       'OBTENGO LA DIRECCION DEL HIPERVINCULO
        DirLink = Left(DirLink, InStr(1, DirLink, "!", vbTextCompare) - 2)  'ELIMINO PARTE DEL LA DIRECCION PARA OBTENER SOLAMENTE EL NOMBRE
        DirLink = Replace(DirLink, "'", "")
        
        If Sheets(DirLink).Visible = False Then
            Sheets(DirLink).Visible = True
            Sheets(DirLink).Activate
            Sheets(DirLink).Range("A1").Select
        End If
    End If
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    Select Case Sh.Name

        Cambiar "SUMARIO ", "VARIABLES ", "RESUMEN ", "PYG ", "BALANCE " del primer case por los nombres de las hojas que quieres que se vean siempre. el resto permaneceran ocultas. OJO, primero debes ocultar las hojas que no quieres que se vean.

        Case "SUMARIO ", "VARIABLES ", "RESUMEN ", "PYG ", "BALANCE ": Exit Sub
        Case Else
            If Sh.Name <> "SUMARIO " Then Sheets(Sh.Name).Visible = False
    End Select
End Sub

 

 


Espero te sirva
Un Saludo
Fernando

FernandoML
Imagen de FernandoML
Offline
última acción: Hace 1 año 9 meses
alta: 01/02/2018 - 19:53
Puntos: 265
Hola @Francisco B:En el

Hola @Francisco B:

En el ultimo codigo que envie tienes la solucion al problema que te aparece.

 

 


Espero te sirva
Un Saludo
Fernando

joss_141996
Imagen de joss_141996
Offline
última acción: Hace 2 años 11 meses
alta: 21/03/2021 - 03:02
Puntos: 10
Ayuda Hipervinculos

Hola Fernando he aplicado el ultimo codigo que nos facilitaste pero ahora todas las hojas me salen con "error 9" Subindice fuera de rango puedes ayudarme por favor