View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Ray Ray is offline
external usenet poster
 
Posts: 267
Default ? for Ron de Bruin -- NavToolBar

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