Thread: Worksheet Tabs
View Single Post
  #5   Report Post  
Gord Dibben
 
Posts: n/a
Default

If you right-click on the sheet navigation arrows at bottom left of status bar
you will get a pop-up with 16 sheets on it and a "more sheets" button.

Otherwise you could create a Table of Contents sheet with selectable sheet
names.

See David McRitchie's site for a TOC macro.

http://www.mvps.org/dmcritchie/excel/buildtoc.htm

Or use Bob Phillips BrowseSheets macro(posted below)which displays a form with
option button to select a sheet. I personally like this one.

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 Excel MVP

On Wed, 12 Jan 2005 10:03:02 -0800, "The Good Deeds Team" <The Good Deeds
wrote:

I have a file that contains many workseet tabs.

The tables are numbered, like, 100, 200, 300, 400, 500, etc and represent
names of departments

An individual from a given department will open the workbook, and select
their respective tab.

If thier department number is at the end of the range, it is difficult for
them to scroll across the bottom of the workbook to find thier sheet tab.

Is there a better way to organize or find worksheet tabs?

Can worksheet tabs be listed down the left margin instead of across the
bottom?

Is there a way to create a "table of contents" or something similar that
will access the individual tabs?

I did see Views, create custom view, and this looks like it work work,
however since another program creates the excel workbook and all the tabs
each month, I would have to do a l;ot of manula editing to create a custom
view. Is there a better way?