Using VLookup on user form (VBA)

L

Lucas Reece

In my workbook I have an "Employees" sheet. Column A is headed
'Payroll Number' and column B is 'Employee Name'.

I then have a combobox in a userform which takes the Payroll Number
from the Employees sheet. To the side of this combo box I have a text
box to store the employee name. When I select a payroll number I need
the employee name to be automatically populated in the employee name
text box using a vlookup(?) from the "Employees" sheet.

My VB skills are limited so looking for a solution if anyone can help
please.

Many thanks.
 
L

Lucas Reece

Of course. File can be downloaded from http://sites.google.com/site/lucasreece/files.
Download issues.xls

Clicking on the new issue command button opens the user form. Issue ID
is automatically generated. Use the combo box to select an employee
payroll number which is taken from the Empoyees sheet. When a payroll
number has been selected, I need the name text box to display (using a
lookup maybe?) the name for the selected payroll number from the
Employees sheet.

Hope that makes sense.

Thanks.
 
L

Lucas Reece

UPDATE:

I've added this to the vba code...

Private Sub cboPayrollNumber_Change()
Me.txtName = WorksheetFunction.VLookup(Me.cboPayrollNumber, _
Worksheets("Employees").Range("A:D"), 4, 0)
End Sub

Now, when I click on the new issue button I get this...

'Run-time error: '1004':
Unable to get the VLookup property of the WorksheetFunction class.

Any ideas please? Need resolving quite urgently now if someone could
help me out please.

Thank you.
 
M

Mike H

Hi,

Add this change event code to cboPayrollNumber and every time you change the
payrol number the employee name is added to the text box called txtName.
Because you clear the combobox in the ADD button code we need on On Error
statement.

Note I convert the lookup to a value because the combobox is returning a
string

Private Sub cboPayrollNumber_Change()
Dim LastRow As Long
On Error Resume Next
LastRow = Sheets("Employees").Cells(Cells.Rows.Count, "A").End(xlUp).Row
txtName.Text = WorksheetFunction.VLookup(Val(cboPayrollNumber.Text), _
Sheets("Employees").Range("A2:B" & LastRow), 2, False)
End Sub


Mike
 
L

Lucas Reece

Excellent! That worked. Thanks for that Mike.

However I now have another issue so hoping you can help if that's OK?

When I click the Add button after creating a new issue, the message
box is displayed saying issue complete which if fine but then when I
click OK, I get a message box displayed saying "Invalid Property
Value"!

I've google this afternoon but can't seem to find a solution to this.
Any ideas please?

New file at http://sites.google.com/site/lucasreece/files. Download
issues.xls

Many thanks.


Hi,

Add this change event code to cboPayrollNumber and every time you change the
payrol number the employee name is added to the text box called txtName.
Because you clear the combobox in the ADD button code we need on On Error
statement.

Note I convert the lookup to a value because the combobox is returning a
string

Private Sub cboPayrollNumber_Change()
Dim LastRow As Long
On Error Resume Next
LastRow = Sheets("Employees").Cells(Cells.Rows.Count, "A").End(xlUp).Row
txtName.Text = WorksheetFunction.VLookup(Val(cboPayrollNumber.Text), _
Sheets("Employees").Range("A2:B" & LastRow), 2, False)
End Sub

Mike

Lucas Reece said:
I've added this to the vba code...
Private Sub cboPayrollNumber_Change()
    Me.txtName = WorksheetFunction.VLookup(Me.cboPayrollNumber, _
    Worksheets("Employees").Range("A:D"), 4, 0)
End Sub
Now, when I click on the new issue button I get this...
'Run-time error: '1004':
Unable to get the VLookup property of the WorksheetFunction class.
Any ideas please? Need resolving quite urgently now if someone could
help me out please.
 
L

Lucas Reece

Can anyone offer any assistance with this one please?

Many thanks.

Excellent! That worked. Thanks for that Mike.

However I now have another issue so hoping you can help if that's OK?

When I click the Add button after creating a new issue, the message
box is displayed saying issue complete which if fine but then when I
click OK, I get a message box displayed saying "Invalid Property
Value"!

I've google this afternoon but can't seem to find a solution to this.
Any ideas please?

New file athttp://sites.google.com/site/lucasreece/files. Download
issues.xls

Many thanks.

Add this change event code to cboPayrollNumber and every time you change the
payrol number the employee name is added to the text box called txtName..
Because you clear the combobox in the ADD button code we need on On Error
statement.
 
L

Lucas Reece

Sorry p45cal.

I've been struggling to get on PC to be honest and I've not been too
well today :blush:( I'm not purposely ignoring the help that anyone and
especially your good self has given on this thread.

Thanks for your help on this.
 

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