VBA Userform Vlookup and File open then print out


Board Regular
Jan 23, 2015
Hi All,
First of all thanks in advance for helping me on this. I have created a Userform that has a few simple elements in it.

1. ComboBox1
2. ComboBox2
3. TextBox1
4. Okay, clear and close buttons

From ComboBox 1 you select the job role.
From ComboBox 2 you select the relevant file you want printed. This changes depending on your entry in the above.
In TextBox1, you input how many copies you want printed and then the idea is is that when you click okay, it opens the file and prints x copies of it.

I have managed to get two ComboBoxes working, and made them dynamic, so that when a new file is entered into the Locations sheet, it updates the selections possible from the ComboBoxes. I did this using the name manager, arrays and the following code:

Private Sub UserForm_Initialize()
'Populate Role combo box.
Dim rngRole As Range
Dim ws As Worksheet
Set ws = Worksheets("Data")
For Each rngRole In ws.Range("Role")
Me.ComboBox1.AddItem rngRole.Value
Next rngRole
End Sub

Private Sub ComboBox1_Change()
Dim xRg As Range
Set xRg = Range(Me.ComboBox1.Text)
Me.ComboBox2.List = Application.WorksheetFunction.Transpose(xRg)
End Sub
But from here I can't seem to figure out the rest. The Locations sheet looks kinda like this:

Role (A1)Template (B1)Destination (C1)
ReceptionFire Safety Sheetsc:\templates\reception\fire v4.xlsx
NursesPEG Chartc:\templates\Nurses\PEG chart.xlsx
MaintenanceMini Bus Weekly ChecklistC:\templates\maintenance\Mini Bus weekly checklist
ReceptionVisitor Log Bookc:\templates\reception\visitor log book.xlsx


So using an array formula and the name manager, this information is transferred and re-organised alphabetically so that it looks right in the ComboBoxes into a sheet called Data.

What I want is that when someone selects Reception in ComboBox1, then Fire Safety Sheets in ComboBox2, you can then type in 10 in TextBox1, click on the okay button and then it will open the corresponding file then print off 10 copies of it.

Can anyone please help me?

Some videos you may like

Excel Facts

Workdays for a market open Mon, Wed, Friday?
Yes! Use "0101011" for the weekend argument in NETWORKDAYS.INTL or WORKDAY.INTL. The 7 digits start on Monday. 1 means it is a weekend.


Board Regular
Jan 23, 2015
Or can anyone please just help me with the opening a file from the C column? I'll work out the print stuff. It's this bit that's really giving me a headache

Watch MrExcel Video

Forum statistics

Latest member

This Week's Hot Topics