Indice de hojas

Hola. 
Tengo un libro con varias hojas. Quiero hacer una lista de esas hojas. Use un macro (que saque de todo expertos):
Sub Macro2() 
Dim fill As Long, w As Worksheet, sHoja As String 
fill = 5 
For Each w In ThisWorkbook.Worksheets 
sHoja = w.Name 
Cells(fill, 2).FormulaR1C1 = sHoja 
ActiveSheet.Hyperlinks.Add Anchor:=Cells(fill, 2), Address:="", _ 
SubAddress:=sHoja & "!A1", TextToDisplay:=sHoja 
fill = fill + 1 
Next w 
End Sub 
Ahora bien, como lista funciona bien, pero necesito que se actualice automáticamente cuando cree hojas nuevas y ademas quiero que 3 hojas no figuren en esa lista. ¿Se puede?
Muchas gracias

1 respuesta

Respuesta
1
Lo que podes hacer para los cambios que propones es ejecutar el código en el evento NewSheet (que ocurre cuando insertás una nueva fila), debería quedarte algo más o menos así
Private Sub Workbook_NewSheet(ByVal Sh As Object)
macro2
End Sub
Respecto a que no aparezcan 3 hojas en particular, lo que te recomiendo es que "preguntes" primero por el nombre del libro, la macro modificada quedaría más o menos
Sub Macro2() 
Dim fill As Long, w As Worksheet, sHoja As String 
fill = 5 
For Each w In ThisWorkbook.Worksheets 
If w.Name <> "Hoja1" and w.Name <> "Hoja2" and w.Name <> "Hoja3" Then
    sHoja = w.Name 
    Cells(fill, 2).FormulaR1C1 = sHoja 
    ActiveSheet.Hyperlinks.Add Anchor:=Cells(fill, 2), Address:="", _ 
    SubAddress:=sHoja & "!A1", TextToDisplay:=sHoja 
    fill = fill + 1 
End If
Next w 
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas