I have a workbook which has quite a few worksheets. I'd like to have a table
of contents which lists each worksheet but does not necessarily have to link
to said worksheet. How might I accomplish this task?
Thanks in advance for your assistance!
I have a workbook which has quite a few worksheets. I'd like to have a table
of contents which lists each worksheet but does not necessarily have to link
to said worksheet. How might I accomplish this task?
Thanks in advance for your assistance!
The free Excel add-in "XL Extras" will do that. (plus other good stuff)
Download from ... http://www.realezsites.com/bus/primitivesoftware
No registration required.
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware
"aellorac"
<[email protected]>
wrote in message
I have a workbook which has quite a few worksheets. I'd like to have a table
of contents which lists each worksheet but does not necessarily have to link
to said worksheet. How might I accomplish this task?
Thanks in advance for your assistance!
To have a linked form.............
Use VBA code from Bob Phillips..............
Sub BrowseSheets()
Const nPerColumn As Long = 38 'number of items per column
Const nWidth As Long = 13 'width of each letter
Const nHeight As Long = 18 'height of each row
Const sID As String = "___SheetGoto" 'name of dialog sheet
Const kCaption As String = " Select sheet to goto"
'dialog caption
Dim i As Long
Dim TopPos As Long
Dim iBooks As Long
Dim cCols As Long
Dim cLetters As Long
Dim cMaxLetters As Long
Dim cLeft As Long
Dim thisDlg As DialogSheet
Dim CurrentSheet As Worksheet
Dim cb As OptionButton
Application.ScreenUpdating = False
If ActiveWorkbook.ProtectStructure Then
MsgBox "Workbook is protected.", vbCritical
Exit Sub
End If
On Error Resume Next
Application.DisplayAlerts = False
ActiveWorkbook.DialogSheets(sID).Delete
Application.DisplayAlerts = True
On Error GoTo 0
Set CurrentSheet = ActiveSheet
Set thisDlg = ActiveWorkbook.DialogSheets.Add
With thisDlg
.Name = sID
.Visible = xlSheetHidden
'sets variables for positioning on dialog
iBooks = 0
cCols = 0
cMaxLetters = 0
cLeft = 78
TopPos = 40
For i = 1 To ActiveWorkbook.Worksheets.Count
If i Mod nPerColumn = 1 Then
cCols = cCols + 1
TopPos = 40
cLeft = cLeft + (cMaxLetters * nWidth)
cMaxLetters = 0
End If
Set CurrentSheet = ActiveWorkbook.Worksheets(i)
cLetters = Len(CurrentSheet.Name)
If cLetters > cMaxLetters Then
cMaxLetters = cLetters
End If
iBooks = iBooks + 1
.OptionButtons.Add cLeft, TopPos, cLetters * nWidth, 16.5
.OptionButtons(iBooks).text = _
ActiveWorkbook.Worksheets(iBooks).Name
TopPos = TopPos + 13
Next i
.Buttons.Left = cLeft + (cMaxLetters * nWidth) + 24
CurrentSheet.Activate
With .DialogFrame
.Height = Application.Max(68, _
Application.Min(iBooks, nPerColumn) * nHeight + 10)
.Width = cLeft + (cMaxLetters * nWidth) + 24
.Caption = kCaption
End With
.Buttons("Button 2").BringToFront
.Buttons("Button 3").BringToFront
Application.ScreenUpdating = True
If .Show Then
For Each cb In thisDlg.OptionButtons
If cb.Value = xlOn Then
ActiveWorkbook.Worksheets(cb.Caption).Select
Exit For
End If
Next cb
Else
MsgBox "Nothing selected"
End If
Application.DisplayAlerts = False
.Delete
End With
End Sub
Gord Dibben MS Excel MVP
On Tue, 15 Aug 2006 13:49:01 -0700, aellorac
<[email protected]> wrote:
>I have a workbook which has quite a few worksheets. I'd like to have a table
>of contents which lists each worksheet but does not necessarily have to link
>to said worksheet. How might I accomplish this task?
>
>Thanks in advance for your assistance!
Gord Dibben MS Excel MVP
Alternative to first post.
Private Sub ListSheets()
'list of sheet names starting at A1
Dim Rng As Range
Dim i As Integer
Set Rng = Range("A1")
For Each Sheet In ActiveWorkbook.Sheets
Rng.Offset(i, 0).Value = Sheet.Name
i = i + 1
Next Sheet
End Sub
Just a list of sheets on a new sheet.
On Tue, 15 Aug 2006 13:49:01 -0700, aellorac
<[email protected]> wrote:
>I have a workbook which has quite a few worksheets. I'd like to have a table
>of contents which lists each worksheet but does not necessarily have to link
>to said worksheet. How might I accomplish this task?
>
>Thanks in advance for your assistance!
Gord Dibben MS Excel MVP
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks