Not sure why it is not recognizing all worksheets unless some of them are
Chart sheets. Here is a modification to create the hyperlinks you need:
Sub Sheet_Names()
Dim ws As Worksheet
With Worksheets.Add
.Name = "Sheet Names"
' .Move before:=Worksheets(1)'sheets always added on the left
End With
' Sheets("Sheet Names").Activate 'newly added sheet is the active sheet
' Range("a1").Activate 'automatically active on a new sheet
For Each ws In Worksheets
If ws.Name <> "Sheet Names" Then
ActiveCell.Value = ws.Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:= _
ws.Name & "!A1", TextToDisplay:=ws.Name
ActiveCell.Offset(1, 0).Select
End If
Next
End Sub
Notice I commented out some unnecessary lines. A note that this macro will
add a new sheet each time it is ran. If you intend to add more sheets and
then run this to update your index page then some more code would be needed
to check if Sheet Names already exists.
Mike F
"Automatically create index of worksheets" <Automatically create index of
(E-Mail Removed)> wrote in message
news:7CC3C802-3FE5-42EE-BCB2-(E-Mail Removed)...
> Hello,
>
> I would like to create basically an index or outline page with a list (and
> hyperlinks if possible) of all of my worksheet titles or names.
>
> I found the following macros in previous questions, however, I had these 2
> problems:
> 1) It is not recognizing ALL of my worksheets
> 2) I do not know how to make sure it constently updates
>
> I am a total Macro ROOKIE so please give me the idiot's version of the
> answer
>
> Here is the macro I found and tried to use:
> Sub Sheet_Names()
> Dim ws As Worksheet
> With Worksheets.Add
> .Name = "Sheet Names"
> .Move before:=Worksheets(1)
> End With
> Sheets("Sheet Names").Activate
> Range("a1").Activate
> For Each ws In Worksheets
> If ws.Name <> "Sheet Names" Then
> ActiveCell.Formula = ws.Name
> ActiveCell.Offset(1, 0).Select
> End If
> Next
> End Sub