Don't know how much help you need. I assume that you have already created named views. I created three views throughout the sheet and colored a range. On sheet2, I created a list of the view names in column A
Enter Excel VBA (alt-F11 or Tools|Macro|Visual Basic). Insert a form (Insert|UserForm). Design your form with a combobox and command button. Right click on UserForm1 (either on the form itself or in the VBAProject tree.
Add the following code to the for
UserForm1
Code:
Private Sub UserForm_Initialize()
ComboBox1.ColumnCount = 1
ComboBox1.RowSource = "Sheet2!$a$1:$a$3"
ComboBox1.BoundColumn = 1
ComboBox1.Value = "Red" 'this will set the top item in list to be displayed
End Sub
Private Sub CommandButton1_Click()
' this can be done more elegantly, but you can work on that
' later - it just illustrates the concept
If ComboBox1.Value = "Red" Then
ActiveWorkbook.CustomViews("Red").Show
End If
If ComboBox1.Value = "Yellow" Then
ActiveWorkbook.CustomViews("Yellow").Show
End If
If ComboBox1.Value = "Green" Then
ActiveWorkbook.CustomViews("Green").Show
End If
End Sub
Right click on ThisWorkbook in the VBAProject tree and select view code and paste the following:
Code:
Private Sub Workbook_Open()
' this will open the navigation form whenever the notebook is opened
UserForm1.Show
End Sub
The form will stay open until the user closes it. An option that you may want to consider is to place a command button control in each section that will reopen the navigation menu if it is closed. Edit code for the button with:
Code:
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub