Consolidar tabla con nombre de hoja en hipervínculo y datos de celdas específicas

Necesito de su colaboración para crear una tabla en una hoja resumen, que consolide el nombre de todas las hojas del libro de excel ( cotizaciones) como hipervínculo y los datos de número de cotización, valor y fecha, al frente de cada hipervículo.

El hipervínculo lo logré gracias a una solución de un problema resuelto con el siguiente código:

Private Sub Worksheet_Activate()
Dim cHoja As Worksheet
Dim L As Long
Dim X As Long

L = 9

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

For Each cHoja In Worksheets
If cHoja.Name <> Me.Name Then

L = L + 1

With cHoja
.Range("A6").Name = "Inicio" & cHoja.Index
.Hyperlinks.Add Anchor:=.Range("F9"), Address:=" ", SubAddress:="Indice", TextToDisplay:="Volver al índice"
End With
Me.Hyperlinks.Add Anchor:=Me.Cells(L, 1), Address:=" ", SubAddress:="Inicio" & cHoja.Index, TextToDisplay:=cHoja.Name
End If
Next cHoja
End Sub

Me hace falta agregar frente a cada hipervínculo los datos de las celdas a1, a14 y f12 que correspondan a esa hoja y que cada vez que cree una nueva hoja de cotización, se agregue de manera automática en la hoja INDICE.

2 Respuestas

Respuesta
1

Te anexo la macro actualizada.

Private Sub Worksheet_Activate()
    Dim cHoja As Worksheet
    Dim L As Long
    Dim X As Long
    '
    L = 9
    With Me
        .Columns(1).ClearContents
        .Cells(10, 1) = "INDICE"
        .Cells(10, 1).name = "Indice"
    End With
    '
    For Each cHoja In Worksheets
        If cHoja.name <> Me.name Then
            L = L + 1
            With cHoja
                .Range("A6").name = "Inicio" & cHoja.Index
                .Hyperlinks.Add Anchor:=.Range("F9"), Address:=" ", SubAddress:="Indice", TextToDisplay:="Volver al índice"
            End With
            Me.Hyperlinks.Add Anchor:=Me.Cells(L, 1), Address:=" ", SubAddress:="Inicio" & cHoja.Index, TextToDisplay:=cHoja.name
            Me.Cells(L, 2) = cHoja.Range("A1")
            Me.Cells(L, 3) = cHoja.Range("A14")
            Me.Cells(L, 4) = cHoja.Range("F12")
        End If
    Next cHoja
End Sub

Supongo que tienes la macro en los eventos de tu hoja "indice", siendo así, cada que creas una nueva hoja y seleccionas la hoja "indice", en automático se actualiza la hoja indice.


'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
Respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas