Navigate workbook with userform buttons

SimmonsDeux

New Member
Joined
Dec 29, 2014
Messages
17
I have a userform with two buttons. butNext and butPrev. I was wondering if it is possible to navigate to the adjacent worksheet using these buttons respectively.
Thanks!
 

Excel Facts

Links? Where??
If Excel says you have links but you can't find them, go to Formulas, Name Manager. Look for old links to dead workbooks & delete.
I have a userform with two buttons. butNext and butPrev. I was wondering if it is possible to navigate to the adjacent worksheet using these buttons respectively.
Thanks!


Hi,
see if this code does what you want:

CommandButton Code
Code:
Private Sub butNext_Click()
SelectSheet Direction:=xlNext
End Sub


Private Sub butPrev_Click()
SelectSheet Direction:=xlPrevious
End Sub

Navigation code: (can go in standard module or Forms Code page)

Code:
Sub SelectSheet(ByVal Direction As XlSearchDirection)
Dim indx As Integer, r As Integer
Dim wsCount As Integer


      wsCount = ThisWorkbook.Worksheets.Count
      indx = ActiveSheet.Index
    'set value of r
     r = indx + IIf(Direction = xlPrevious, -1, 1)
     'ensure value of r stays within sheet count
      If r < 1 Then r = 1
      If r > wsCount Then r = wsCount
      
      ThisWorkbook.Worksheets(r).Select
End Sub

Code assumes all sheets are visible.

Dave
 
Upvote 0
Here's an example that takes into consideration hidden sheets, and other types of sheets (ie. chart sheet)...

Code:
[COLOR=darkblue]Private[/COLOR] [COLOR=darkblue]Sub[/COLOR] butPrev_Click()
    [COLOR=darkblue]Dim[/COLOR] ShtCnt      [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]Long[/COLOR]
    [COLOR=darkblue]Dim[/COLOR] ShtIndx     [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]Long[/COLOR]
    ShtCnt = Sheets.Count
    ShtIndx = ActiveSheet.Index
    [COLOR=darkblue]Do[/COLOR]
        [COLOR=darkblue]If[/COLOR] ShtIndx <> 1 [COLOR=darkblue]Then[/COLOR]
            ShtIndx = ShtIndx - 1
        [COLOR=darkblue]Else[/COLOR]
            ShtIndx = ShtCnt
        [COLOR=darkblue]End[/COLOR] [COLOR=darkblue]If[/COLOR]
    [COLOR=darkblue]Loop[/COLOR] [COLOR=darkblue]Until[/COLOR] Sheets(ShtIndx).Visible
    Sheets(ShtIndx).Select
[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]Sub
[/COLOR]
[COLOR=darkblue]Private[/COLOR] [COLOR=darkblue]Sub[/COLOR] butNext_Click()
    [COLOR=darkblue]Dim[/COLOR] ShtCnt      [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]Long[/COLOR]
    [COLOR=darkblue]Dim[/COLOR] ShtIndx     [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]Long[/COLOR]
    ShtCnt = Sheets.Count
    ShtIndx = ActiveSheet.Index
    [COLOR=darkblue]Do[/COLOR]
        [COLOR=darkblue]If[/COLOR] ShtIndx <> ShtCnt [COLOR=darkblue]Then[/COLOR]
            ShtIndx = ShtIndx + 1
        [COLOR=darkblue]Else[/COLOR]
            ShtIndx = 1
        [COLOR=darkblue]End[/COLOR] [COLOR=darkblue]If[/COLOR]
    [COLOR=darkblue]Loop[/COLOR] [COLOR=darkblue]Until[/COLOR] Sheets(ShtIndx).Visible
    Sheets(ShtIndx).Select
[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]Sub[/COLOR]

Hope this helps!
 
Upvote 0

Forum statistics

Threads
1,215,223
Messages
6,123,727
Members
449,116
Latest member
Aaagu

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top