• Skip to main content
  • Skip to primary sidebar
  • Skip to footer

Microsoft Excel Tips and Tricks - Computergaga

  • Home
  • Excel Online Courses
  • Excel Functions List
  • Free Downloads
  • Blog
  • Tutorials
  • About
Home / VBA / Excel VBA MultiPage Control on Userforms

Excel VBA MultiPage Control on Userforms

The Excel VBA MultiPage control is a useful way of logically grouping the controls of your userform. Especially if you have many (just think of the Format Cells window).

In this blog post, we will look at how to create and use the MultiPage Control on your Excel VBA userforms, and also how to modify its properties and refer to it during runtime.

For this example, we have a list of customers. And we want to use a userform when editing the details about these customers. This will provide greater validation and more reliable data entry than editing the details directly on the sheet.

We would also like to run common tasks from this userform. So the Excel VBA MultiPage control has been used to group the customer details, and common tasks onto separate tabs, or pages.

This image shows the customer details tab.

Userform with Excel VBA MultiPage control on the details tab

And this shows the Tasks tab.

Tasks tab of the Excel VBA MultiPage control

So let’s have a look at how to use the Excel VBA MultiPage Control.

Watch the Video – Excel VBA MultiPage Control

Inserting the Excel VBA Multipage Control

We have the beginnings of a userform below. And firstly we need to insert the MultiPage control.

Click the MultiPage Control button in the Toolbox, and click and drag to draw it onto the userform (do not confuse it with the TabStrip Control next to it).

Inserting the MultiPage control from the toolbox

Editing the Properties of Each Page

Once the control is inserted, we need to edit some key properties about each page of the control.

You can also edit properties of the MultiPage control, such as its name. As it is the only one on the form, this is left as MultiPage1.

You can edit these properties in two main ways. Firstly you could right mouse click on the page you want to edit.

Renaming pages on the control

From the menu that appears, you can insert additional pages (you get 2 with the control to start with). This is useful.
If you click the Rename option, you get the window below.

Editing details of the pages on the control

From here, you can change the Caption of the page. This is what the user will see in the page tab.
You can also set the Accelerator Key. This is a shortcut for the page.

In the image above, the letter d is used. This means the user can press Alt + d to access the page, instead of clicking the tab. The letter d of the caption Details will be underlined to show the user this (you can see this in the image at the beginning of the blog post).

Finally, you can set the Control Tip Text in this window. This is the text that the user sees when they position the cursor over the page.

Another way of setting the page properties is by using the Properties window.

Editing pages using the Properties window

Here you have more options including naming the page. This is important as we can refer to the page in VBA code by using this name. Name it something meaningful like pgDetails for easy reference.

You can also see the Index property for the page here. The first page has an Index of 0. This will be useful shortly when referring to the page.

Selecting a Page Tab of the Multipage Control

You will need to know some VBA to work with the MultiPage control, and something you will probably need is to be able to select a page tab during runtime.

In the video of this blog post, we have a scenario where if the user has a cell selected in the customer list, we want the userform to go to the Details page tab, whilst if the cell is blank go to the Tasks page tab.

Now here is something unexpected.

To select a page tab, you use its Value property.

So to select the first page tab of the control you would write.

MultiPage1.Value = 0

Remember that MultiPage1 is the name of our MultiPage control, and you can change this property.
And to select the second page tab of the control you would write.

MultiPage1.Value = 1

It is an unusual use of the Value property, but it is what you do with the Excel VBA MultiPage control.

This can be added to the Initialize event of the form so that the page is selected as the form opens.

Changing MultiPage Control Properties in VBA

We have looked at changing the properties of the page tabs and MultiPage control itself manually. But how can this be done using VBA.

For example, maybe I want the Caption of a page to change depending on the details of the currently selected customer.

We can modify the Caption property of a Page with this code.

MultiPage1.Pages(0).Caption = Cells(i, 1).Value & " - " & Cells(i, 2).Value

This example uses the Pages collection in the same way that you might be used to using the Worksheets, or Workbooks collections.

0 is the Index value of the first page tab.

You can also bypass the Pages collection and refer to the Page using its name. This is shown below (remember the first page was named pgDetails).

MultiPage1.pgDetails.Caption = Cells(i, 1).Value & " - " & Cells(i, 2).Value

The rest of this code is pulling data from the worksheets and assigning it to a Caption.

You can see in the image below the caption Details is replaced with 1110 – Elizabeth Lincoln (the currently selected customer).

Dynamic page tab on the Excel VBA MultiPage control with customer details

The Excel VBA MultiPage Control can be very useful when designing a userform with many controls. You can group them meaningfully so user find your forms easy to use.

Related Posts:

  • Calculate age in Excel thumbnail
    How to Calculate Age in Excel
  • Copy a formula down in Excel
    How to Copy a Formula Down in Excel
  • Case sensitive XLOOKUP feature
    Case Sensitive Lookup with XLOOKUP in Excel
  • IMAGE function in Excel
    Excel IMAGE Function - Insert Images from a Cell Value

Reader Interactions

Comments

  1. Claudio Lopez says

    1 September 2020 at 10:17 pm

    Hola, muy buen contenido, pero quisiera hacerte una consulta, ¿hay alguna posibilidad de resaltar la pestaña que se encuentra activa?, ´por ejemplo cambiando el color de la letra de la misma pestaña.

    gracias de antemano

    Reply
    • Alan Murray says

      14 September 2020 at 6:18 pm

      Hi Claudio, this is not something I have done. If there is an option to change the colour of the tab in the properties window, then it is possible.

      Reply
  2. Robin says

    2 June 2021 at 6:33 pm

    Can I hide or call pages based on the condition of a dropdown? For example: I have a drop down 2-8, I want to show specific pages on the multipage depending on the value selected in the dropdown.

    Reply
    • Alan Murray says

      26 July 2021 at 9:10 pm

      Sure. I won’t be able to help with specific requests such as this. You can contact Excel Rescue to get these solved – http://bit.ly/2Ms1d2h

      Reply
  3. Leif Pedersen says

    20 February 2023 at 3:45 am

    No you can’t change tab colours (as far as I can see). It is difficult to see which tab is selected. My work around is to locate a thick green line (made using a narrow label with green background colour). Do this for each page. Same colour or different colours. You can only see the line for the selected page. It’s quick to do, even if it sounds complicated. It works great.

    Leif

    Reply
    • Alan Murray says

      27 March 2023 at 12:00 pm

      Thank you for the tip Leif.

      Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Recent Posts

  • Excel SWITCH Function – Nested IF Function Alternative
  • Sum Formulas Only in Excel
  • How to Calculate Age in Excel
  • Custom Sort in Excel
  • Case Sensitive Lookup with XLOOKUP in Excel
Advanced Excel Success book

Footer

Contact

[email protected]

LinkedIn Twitter YouTube

Useful Links

  • Home
  • Excel Online Courses
  • Tutorials
  • Sitemap
  • Privacy Policy
  • Jobs by Jooble

Course Topics

  • Blog
  • Charts
  • Courses
  • Dashboards
  • Downloads
  • Excel Tips
  • Formulas
  • Mail Merge
  • Office
  • PivotTables
  • Power BI
  • Power Pivot
  • Power Query
  • VBA

Join Our Mailing List

© Copyright 2009 Computergaga · All Rights Reserved ·