Multi-page and Scroll bars

G

Guest

I have a multipage object on a userform. I programatically add a number of
controls. Depending on the number of conrols I add, I want to have the
scrollbars function to allow the user to see all of the controls.

I can make the vertical scroll bar visible and keep it visible...but
regardless of what I do, the scroll bars don't function.

Any advice?
 
G

Guest

What code have you attached to the scrollbar _Change event? Forgive me if I
am telling you something you already know here, but in case not: When you add
a scroll bar to a user form it does not automatically give you the ability to
scroll the page. It is just an empty control like any other until you tell
it how to respond. So you would need to have code that moves your controls
on the page in synch with the scroll bar. As a quick example you can try
something like this and see what it can do (you need a button on the form,
any location to start with):

Private Sub ScrollBar1_Change()

CommandButton1.Top = (Me.Height - CommandButton1.Height) * _
(ScrollBar1.Value - ScrollBar1.Min) / (ScrollBar1.Max - ScrollBar1.Min)

End Sub

You could potentially iterate through all controls with a For Each
statement. You would need to modify the above so it tracks the control's
start position and does everything relative to that (my simple code always
brings it to the top of the form)
 
G

Guest

Thank you for the feedback. I am surprised by the response. I figured that
the scroll bar is a part of the control and not a control itself..a as the
scrollbar was not added by me, but made visible as a property of the page
itself. I don't know if this sheds any additional lighton the issue. I will
look to write code to 'scroll' the contents of the page.

Thanks for your quick reply.
 
T

Tom Ogilvy

Yes, there is a built in scrollbar for the userform (and the multipage
control). K Dales is speaking of the scrollbar control which is different.

Size your multipage (assume multipage1) so you can put all your controls on
the the multipage (on the first page/tab, page index zero). Then select the
bottom the multipage and make the multipage about half its height. (so half
the controls are not visible). Now put this code in the Userform Module:

Private Sub UserForm_Initialize()
MultiPage1.Pages(0).ScrollBars = _
fmScrollBarsVertical
MultiPage1.Pages(0).KeepScrollBarsVisible = _
fmScrollBarsVertical
MultiPage1.Pages(0).ScrollHeight = _
2 * MultiPage1.Height
MultiPage1.Pages(0).ScrollTop = _
MultiPage1.Height / 2
End Sub

Now display the userform and the scrollbar should work.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top