Hi Ron -
I think I understand the options below (esp the QAT), but not sure
about the Ribbon .. let me know if I misunderstood or if you need
further info.
I think the best option is to add a button to the Ribbon, on the Home
tab. I don't really use the 'Styles' section too much, except for
Conditional Formatting .... could that one be moved to Data menu?
Complete code from Dave below ...
Thanks alot for your help!
br//ray
NavToolBar code from Dave Peterson:
Option Explicit
Sub Auto_Close()
On Error Resume Next
Application.CommandBars("MyNavigator").Delete
On Error GoTo 0
End Sub
Sub Auto_Open()
'code written by Dave Peterson 2005-12-21
'creates a toolbar with list of sheets in active workbook
Dim cb As CommandBar
Dim ctrl As CommandBarControl
On Error Resume Next
Application.CommandBars("MyNavigator").Delete
On Error GoTo 0
Set cb = Application.CommandBars.Add(Name:="myNavigator",
Position:=msoBarBottom, temporary:=True)
With cb
.Visible = True
Set ctrl = .Controls.Add(Type:=msoControlButton,
temporary:=True)
With ctrl
.Style = msoButtonCaption
.Caption = "Refresh Worksheet List"
.OnAction = ThisWorkbook.Name & "!refreshthesheets"
End With
Set ctrl = .Controls.Add(Type:=msoControlComboBox,
temporary:=True)
With ctrl
.Width = 300
.AddItem "Click Refresh First"
.OnAction = ThisWorkbook.Name & "!changethesheet"
.Tag = "__wksnames__"
End With
End With
End Sub
Sub ChangeTheSheet()
Dim myWksName As String
Dim wks As Object
Dim IsHidden As Boolean
With Application.CommandBars.ActionControl
If .ListIndex = 0 Then
MsgBox "Please select an existing sheet"
Exit Sub
Else
myWksName = .List(.ListIndex)
End If
End With
If LCase(myWksName) Like LCase("*--HIDDEN") Then
myWksName = Left(myWksName, Len(myWksName) - Len("--HIDDEN"))
End If
Set wks = Nothing
On Error Resume Next
Set wks = Sheets(myWksName)
On Error GoTo 0
If wks Is Nothing Then
Call RefreshTheSheets
MsgBox "Please try again"
Else
wks.Visible = xlSheetVisible
wks.Select
End If
End Sub
Sub RefreshTheSheets()
Dim ctrl As CommandBarControl
Dim wks As Object
Dim myMsg As String
Set ctrl = Application.CommandBars("myNavigator") _
.FindControl(Tag:="__wksnames__")
ctrl.Clear
For Each wks In ActiveWorkbook.Sheets
If wks.Visible = xlSheetVisible Then
myMsg = ""
Else
myMsg = "--HIDDEN"
End If
ctrl.AddItem wks.Name & myMsg
Next wks
End Sub
On Jul 16, 8:15 am, "Ron de Bruin" wrote:
Hi Ray
You have a few options
Add it to the QAT
Add it to this menu in the QAT (http://www.rondebruin.nl/qat.htm)
Add a button to the ribbon (Where do you want it ?)
Add your macro to the Cell menu (right click menu)
What do you want ?
Let me know and I will make a example for you
Post the code from Dave so I can use it in my example
--
Regards Ron de Bruinhttp://www.rondebruin.nl/tips.htm