6

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?

enter image description here

1
  • You can duplicate them by copying and pasting or by creating from scratch. Commented May 30, 2012 at 19:11

2 Answers 2

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

enter image description here

Sign up to request clarification or add additional context in comments.

6 Comments

When I run the above code, I get a "Run-time error '-2147417949 (80010108)': Automation error the object invoked as diconnected from its clients."
which line is giving you the error? I just tested it again and it works.
if I comment everything out and leave just MultiPage1.Pages.Add it gives me the error
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.
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
|
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.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.