Crear Hoja de √ćNDICE con LINKS Excel

ūüĒ• ¬ŅTienes archivos con muchas hojas y es dif√≠cil ubicar cada una?

No te gustar√≠a una manera sencilla de navegar entre hojas sin perder tiempo‚Ěď

ūüĎČ En este video te mostrar√© c√≥mo puedes Crear una hoja de √ćndice con hiperv√≠nculos, donde veas los nombres de las hojas y con un clic, vayas directamente a cada hoja.

Y lo mejor, si a√Īades, eliminas o mueves hojas, el √ćndice se regenerar autom√°ticamente. Todo, con macros y VBA.

Ver video Crear hoja √ćNDICE con links que detecta cambios en hojas

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

¬ŅC√≥mo funciona?

Crear hoja √ćNDICE con links en Excel - exceleinfo
Crear hoja √ćNDICE con links en Excel – exceleinfo

Tenemos una macro que nos ayuda con el proceso de creaci√≥n de la hoja √ćNDICE, la cual recorre cada de las hojas y crear un hiperv√≠nculo para ir hacia cada hoja. Pero lo mejor de esta macro, es que detecta cambios en las hojas. Mira:

  • Inserta una hoja llamada √ćNDICE donde est√°n los v√≠nculos hacia las hojas.
  • Si la hoja √ćNDICE ya existe, s√≥lo actualiza la lista de hojas.
  • Al activar la hoja √ćNDICE, la lista se regenera, asegurando de tener siempre los hiperv√≠nculos dirigidos a todas las hojas.

Código VBA de la macro

Option Explicit

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo

Sub CrearIndice()
    
    Dim i As Integer
    Dim Dato As Integer
    Dim RangoA1 As Range
    Dim NuevoNombre, Resp
    
    On Error GoTo Errores
    
    If WorksheetExists("√ćNDICE") = False Then
        
        ActiveWorkbook.Sheets.Add Before:=Sheets(1)
        Set RangoA1 = Sheets(1).Range("a1")
        Sheets(1).Range("a1").Value = "√ćNDICE"
        Sheets(1).Name = "√ćNDICE"
        
        GoTo InsertarLinks
        
    Else
        'Hoja √ćNDICE existe
        
        Sheets("√ćNDICE").Select
        
        Cells.ClearContents
        
        Set RangoA1 = Sheets(1).Range("a1")
        Sheets(1).Range("a1").Value = "√ćNDICE"
        
        GoTo InsertarLinks
        
    End If
    
    Exit Sub
    
InsertarLinks:
    Dato = ActiveWorkbook.Sheets.Count
    For i = 1 To Dato - 1
        With Sheets(1)
            .Hyperlinks.Add Anchor:=RangoA1.Offset(i, 0), Address:="", SubAddress:="'" & _
            Sheets(i).Name & "'" & "!A1", _
            TextToDisplay:=Sheets(i).Name, ScreenTip:="Ir a hoja " & Sheets(i).Name
        End With
    Next i
    
    ActiveSheet.Range("A2").EntireRow.Delete
    
    Exit Sub
    
Errores:
    MsgBox "Ha ocurrido un error: " & vbNewLine & vbNewLine & Err.Description, vbExclamation, "EXCELeINFO"
    
End Sub

Function WorksheetExists(sName As String) As Boolean
    WorksheetExists = Evaluate("ISREF('" & sName & "'!A1)")
End Function

Descarga el archivo de ejemplo

Hoja de índice con links automáticos РEXCELeINFO.zip

‚≠ź Si te gust√≥ este tutorial, por favor¬†reg√≠strate en nuestra Lista de correo¬†y¬†Suscr√≠bete a nuestro canal de YouTube¬†para que est√©s siempre enterado de lo nuevo que publicamos.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: