Crear indice a partir de una hoja determinada

De antemano agradecer por la ayuda que me puedan brindar.

Tengo el siguiente código para crear un indice en una hoja determinada y el propósito es que en esa hoja me aparezca el listado de " indice " pero de determinada hoja en adelante .

Private Sub Worksheet_Activate()
Dim cHoja As Worksheet
Dim L As Long
L = 1

With Me
.Columns(1).ClearContents
.Cells(1, 1) = "INDICE"
.Cells(1, 1).Name = "Indice"
End With

For Each cHoja In Worksheets

If cHoja.Name <> Me.Name Then
L = L + 1

With cHoja
.Range("f1").Name = "Inicio" & cHoja.Index
'.Hyperlinks.Add Anchor:=.Range("d1"), Address:=" ", SubAddress:="", TextToDisplay:=""'
End With
Me.Hyperlinks.Add Anchor:=Me.Cells(L, 1), Address:=" ", SubAddress:="Inicio" & cHoja.Index, TextToDisplay:=cHoja.Name

End If

Next cHoja
End Sub

1 Respuesta

Respuesta
1

[Hola 

va la macro actualizada

Sub indice_hx()
'
    Dim cHoja As Worksheet
    Dim L As Long
    L = 1
    '
    Set h = Sheets("Hoja2") ' DETERMINAR HOJA
    With h
    .Columns(1).ClearContents
    .Cells(1, 1) = "INDICE"
    .Cells(1, 1).Name = "Indice"
    End With
    For Each cHoja In Worksheets
        If cHoja.Name <> h.Name Then
            L = L + 1
            With cHoja
            .Range("f1").Name = "Inicio" & cHoja.Index
            '.Hyperlinks.Add Anchor:=.Range("d1"), Address:=" ", SubAddress:="", TextToDisplay:=""'
            End With
            '
            h.Hyperlinks.Add Anchor:=h.Cells(L, 1), Address:=" ", SubAddress:="Inicio" & cHoja.Index, TextToDisplay:=cHoja.Name
        End If
    Next cHoja
    h.Select
End Sub

cordial saludo.

te explico mejor la pregunta:

 Tengo un libro con 5 hojas  a manera de ejemplo, y una de ellas llamada indice que es la que me va a generar el listado de las demás; la idea es que me genere  ese listado por ejemplo, a partir de la hoja 3 y que no aparezcan en ese listado las hojas 1 y 2.

Mil gracias por dedicar tu valioso tiempo a ayudarme.

Bendiciones .

Va la macro

Valora la respuesta



Sub indice_hx()
'
    Dim cHoja As Worksheet
    Dim L As Long
    L = 1
    '
    Set h = Sheets("INDICE") ' DETERMINAR HOJA PRINCIPAL
    With h
    .Columns(1).ClearContents
    .Cells(1, 1) = "INDICE"
    .Cells(1, 1).Name = "Indice"
    End With
    For Each cHoja In Worksheets
        If cHoja.Name <> h.Name Then
        Select Case cHoja.Name
            Case "Hoja2", "Hoja3" ' HOJA QUE NO VAN AL ÍNDICE
            Case Else
                L = L + 1
                With cHoja
                .Range("f1").Name = "Inicio" & cHoja.Index
                '.Hyperlinks.Add Anchor:=.Range("d1"), Address:=" ", SubAddress:="", TextToDisplay:=""'
                End With
                '
                h.Hyperlinks.Add Anchor:=h.Cells(L, 1), Address:=" ", SubAddress:="Inicio" & cHoja.Index, TextToDisplay:=cHoja.Name
        End Select
        End If
    Next cHoja
    h.Select
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas