I have a multipage in a userform. During run-time, the user can choose to add x number of pages at any time. The elements of each page will be the same. I am wondering if there is a way to duplicate these elements, or would I need to re-create these same elements for each new page? If so, how do I specify locations on the page where the element should be placed?
Asked
Active
Viewed 1.0k times
2 Answers
9
The trick is to put all controls in a frame in the 1st page and then the rest becomes easy :)
This code will copy the controls from Page1
to Page2
after creating Page2
and align them accordingly.
Option Explicit
Private Sub CommandButton2_Click()
Dim l As Double, r As Double
Dim ctl As Control
MultiPage1.Pages.Add
MultiPage1.Pages(0).Controls.Copy
MultiPage1.Pages(1).Paste
For Each ctl In MultiPage1.Pages(0).Controls
If TypeOf ctl Is MSForms.Frame Then
l = ctl.Left
r = ctl.Top
Exit For
End If
Next
For Each ctl In MultiPage1.Pages(1).Controls
If TypeOf ctl Is MSForms.Frame Then
ctl.Left = l
ctl.Top = r
Exit For
End If
Next
End Sub
SNAPSHOT

Siddharth Rout
- 147,039
- 17
- 206
- 250
-
When I run the above code, I get a "Run-time error '-2147417949 (80010108)': Automation error the object invoked as diconnected from its clients." – Ehudz May 30 '12 at 19:46
-
which line is giving you the error? I just tested it again and it works. – Siddharth Rout May 30 '12 at 19:47
-
if I comment everything out and leave just `MultiPage1.Pages.Add` it gives me the error – Ehudz May 30 '12 at 19:50
-
That's strange. Can you upload thefile that you created just now and upload it in say wikisend.com and then share the link here. – Siddharth Rout May 30 '12 at 19:53
-
I think there's some underlying issue affecting all my userforms in that same project. I created a new project add userform and tried the above code and it works. I'll try re-creating the userform and see what happens – Ehudz May 30 '12 at 20:11
-
You don´t actually have to use a frame if you are just going to replicate the page inside the Multipage. Just use controls.copy and then .paste and that should do. – cyberponk May 23 '19 at 03:54
1
The "Run-time error '-2147417949 (80010108)' may be caused by having a Frame somewhere else on the form. Try removing any other frames and running again.

Kazarenko
- 11
- 1