Crear índice que busque hojas con nombres como "B, B (1), B (2) etc." la hoja origen y las que se crean al copiar.

Tengo este índice y funciona bien con nombres que no incluyan paréntesis, por ejemplo una letra B, o un nº 145 etc., ahora bien, si copio una hoja el nombre será B (2) o si es nº 145 (2), al pulsar para ver este tipo de hojas en el índice me da el error "La referencia no es válida", en las otras sin paréntesis me dirige bien.

¿Me podéis ayudar? Gracias.

Private Sub Worksheet_Activate()
'Nos situamos en una celda de partida
    Range("K1").Select   
'Iniciamos un recorrido por todas las hojas de nuestro libro
    For Each wks In Worksheets 'Para cada wks (variable implícita que representa una hoja) en la colección de hojas
        ActiveCell.Value = wks.Name 'Asignamos a la celda el nombre de la hoja
        ActiveCell.Hyperlinks.Add Anchor:=ActiveCell, Address:="", SubAddress:=wks.Name & "!A1", TextToDisplay:=wks.Name 'Asignamos un hipervínculo
ActiveCell.Offset(1, 0).Select ' Desplazamos el cursor hacía abajo una celda
    Next
'Nos situamos en la celda de partida
    Range("K1").Select
End Sub

1 respuesta

Respuesta
1

He encontrado esto por la red y funciona. He intentado hacer que el otro abra las hojas copiadas, no he podido, mis conocimientos son escasos, aunque me gustaría saber que le falta. Saludos.

Private Sub Worksheet_Activate()
Dim PivotCell As Range, Tmp As Range
Set PivotCell = [K1]
With PivotCell
    .EntireColumn.ClearContents: .FormulaR1C1 = "Índice"
    .Font.Bold = True: .HorizontalAlignment = xlCenter
End With
For Each hoja In Application.Sheets
    If ActiveSheet.Name = hoja.Name Then GoTo Loop1
    Set Tmp = PivotCell.Offset(2000, 0).End(xlUp).Offset(1, 0)
    Tmp = hoja.Name
    ActiveSheet.Hyperlinks.Add Anchor:=Tmp, Address:="", _
        SubAddress:="'" & hoja.Name & "'!A1"
Loop1:
Next hoja
    
    PivotCell.EntireColumn.AutoFit
Set Tmp = Nothing
Set PivotCell = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas