View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Vergel Adriano Vergel Adriano is offline
external usenet poster
 
Posts: 857
Default Multi Page Scroll Bar

I believe Excel might automatically adjust the scroll position if the active
control is outside of the visible area... you can try to intercept it in the
scroll event of the multipage. something like this:

Option Explicit

Public bInitializing As Boolean

Private Sub MultiPage2_Scroll(ByVal Index As Long, _
ByVal ActionX As MSForms.fmScrollAction, _
ByVal ActionY As MSForms.fmScrollAction, _
ByVal RequestDx As Single, ByVal RequestDy As Single, _
ByVal ActualDx As MSForms.ReturnSingle, _
ByVal ActualDy As MSForms.ReturnSingle)

If bInitializing Then
ActualDx = 0
bInitializing = False
End If
End Sub


Private Sub UserForm_Initialize()

bInitializing = True
MultiPage2.Pages(0).ScrollBars = fmScrollBarsHorizontal
MultiPage2.Pages(0).ScrollWidth = 800

End Sub




--
Hope that helps.

Vergel Adriano


"Brandt" wrote:

First, forgive the Repost. I didn't get any replies over the weekend.

I am trying to get the horizontal scroll bar on a MultiPage page to work. I
have a main MultiPage (MultiPage1). On each page of the main MP there is
another (sub-) MultiPage (i.e. MultiPage2 is on Page1 (index 0) of
MultiPage1). The following code works to insert Horizontal Scroll Bars on the
correct page (of the sub- MultiPage) and with the correct horizontal scroll
range, but nothing I do will affect the ScrollLeft Property. (I've included 3
examples of what I have tried - none of them do anything.) I do not get any
kind of errors, just a scroll bar that is positioned wherever excel wants it
(usually about 1/8 of the way from the left edge). As a note, I have tried a
Me.Repaint at the end of the Sub with no effect. I have many of these pages
that are created programmatically and it is not possible to set them manually.

Thanks in advance for any help!!

Private Sub UserForm_Initialize()
hWnd = FindWindow(vbNullString, Me.Caption)
SetWindowLong hWnd, -16, &H84CE0080
MultiPage2.Pages(0).ScrollBars = fmScrollBarsHorizontal
MultiPage2.Pages(0).KeepScrollBarsVisible = fmScrollBarsHorizontal
MultiPage2.Pages(0).ScrollWidth = 805
MultiPage2.Pages(0).ScrollLeft = MultiPage2.Pages(0).ScrollWidth _
- MultiPage2.Width
MultiPage2.Pages(0).ScrollLeft = 0
MultiPage2.Pages(0).ScrollLeft = MultiPage2.Width / 2
End Sub