ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Is it possible...lookup macro (https://www.excelbanter.com/excel-programming/394645-possible-lookup-macro.html)

Haxer

Is it possible...lookup macro
 
Hi, I don't have any idea of the correct syntax of what I am trying to do but
here it is. On a userform (named search) a person selects a name from a drop
down and hits submit. The idea is to have code in the submit button that
takes that value and does a lookup on it comparing it to data in a sheet. I
don't know how many items will be on the sheet but they could be entered in
column a row 3 to 1000. I do have the code in the macro to sort the items so
a lookup would work. The look uped value should then populate a text box in
another userform. This is what I think i am trying should look like but since
it doesn't work I know that my syntax is probably way off. Can anyone help?

UserFormview.V1.Value =
LOOKUP((UserFormSearch.S1.Value),Sheets("Data").Ce lls(3,
19:1000,19),Sheets("Data").Cells(3, 1:1000,1))

Haxer

Is it possible...lookup macro
 
Thank you very much. I knew there had to be a cleaner way to do what I
wanted, a way to do it all in a macro. You have answered a couple of my
questions several years ago and they have always been exactly what I was
looking for, again thank you!

"Tom Ogilvy" wrote:

Dim r as Range, r1 as Range
With Worksheets("Data")
set r = .Range(.cells(3,19),.cells(1000,19))
set r1 = .Range(.cells(3,1),.cells(1000,1))

End With

UserFormview.V1.Value =
LOOKUP((UserFormSearch.S1.Value),r,r1)

--
Regards,
Tom Ogilvy


"Haxer" wrote:

Hi, I don't have any idea of the correct syntax of what I am trying to do but
here it is. On a userform (named search) a person selects a name from a drop
down and hits submit. The idea is to have code in the submit button that
takes that value and does a lookup on it comparing it to data in a sheet. I
don't know how many items will be on the sheet but they could be entered in
column a row 3 to 1000. I do have the code in the macro to sort the items so
a lookup would work. The look uped value should then populate a text box in
another userform. This is what I think i am trying should look like but since
it doesn't work I know that my syntax is probably way off. Can anyone help?

UserFormview.V1.Value =
LOOKUP((UserFormSearch.S1.Value),Sheets("Data").Ce lls(3,
19:1000,19),Sheets("Data").Cells(3, 1:1000,1))


Haxer

Is it possible...lookup macro
 
I hate to ask this after just saying that it is what I was looking for but
now I'm not sure. It looked like it was exactly what I wanted but when I
actually put the code in place and try to run it VBA doesn't recognize
lookup. I looked at the object browser and couldn't find it either. Is there
something else that should be there instead of lookup? Thanks for your time.

"Tom Ogilvy" wrote:

Dim r as Range, r1 as Range
With Worksheets("Data")
set r = .Range(.cells(3,19),.cells(1000,19))
set r1 = .Range(.cells(3,1),.cells(1000,1))

End With

UserFormview.V1.Value =
LOOKUP((UserFormSearch.S1.Value),r,r1)

--
Regards,
Tom Ogilvy


"Haxer" wrote:

Hi, I don't have any idea of the correct syntax of what I am trying to do but
here it is. On a userform (named search) a person selects a name from a drop
down and hits submit. The idea is to have code in the submit button that
takes that value and does a lookup on it comparing it to data in a sheet. I
don't know how many items will be on the sheet but they could be entered in
column a row 3 to 1000. I do have the code in the macro to sort the items so
a lookup would work. The look uped value should then populate a text box in
another userform. This is what I think i am trying should look like but since
it doesn't work I know that my syntax is probably way off. Can anyone help?

UserFormview.V1.Value =
LOOKUP((UserFormSearch.S1.Value),Sheets("Data").Ce lls(3,
19:1000,19),Sheets("Data").Cells(3, 1:1000,1))


Haxer

Is it possible...lookup macro
 
I figured out a way to make it work...

Dim i As Long
Dim iLastRow As Long
With Sheets("Data")
iLastRow = .Cells(.Rows.Count, "S").End(xlUp).Row
For i = 1 To iLastRow Step 1
If .Cells(i, "S").Value = S1.Value Then
UserFormview.V1.Value = .Cells(i, "A").Value
End If
Next i
End With

S1.Value = ""

I can't find any problems with it. If you do know of an easier way I would
love to learn it. I'm going to need to use this code alot in the workbook I'm
working on. Thank you for your time.

"Tom Ogilvy" wrote:

Dim r as Range, r1 as Range
With Worksheets("Data")
set r = .Range(.cells(3,19),.cells(1000,19))
set r1 = .Range(.cells(3,1),.cells(1000,1))

End With

UserFormview.V1.Value =
LOOKUP((UserFormSearch.S1.Value),r,r1)

--
Regards,
Tom Ogilvy


"Haxer" wrote:

Hi, I don't have any idea of the correct syntax of what I am trying to do but
here it is. On a userform (named search) a person selects a name from a drop
down and hits submit. The idea is to have code in the submit button that
takes that value and does a lookup on it comparing it to data in a sheet. I
don't know how many items will be on the sheet but they could be entered in
column a row 3 to 1000. I do have the code in the macro to sort the items so
a lookup would work. The look uped value should then populate a text box in
another userform. This is what I think i am trying should look like but since
it doesn't work I know that my syntax is probably way off. Can anyone help?

UserFormview.V1.Value =
LOOKUP((UserFormSearch.S1.Value),Sheets("Data").Ce lls(3,
19:1000,19),Sheets("Data").Cells(3, 1:1000,1))


Tom Ogilvy

Is it possible...lookup macro
 
I didn't look at that line closely i was focused on showing how to do the
range arguments.

UserFormview.V1.Value =
Application.LOOKUP(UserFormSearch.S1.Value,r,r1)

You will have to check the syntax of the worksheetfunction LOOKUP and make
sure you arguments conform to that. Since you are looping 1000 rows, it
might be better to use the Lookup which should be much faster or use the VBA
FIND method of the Range object.

--
Regards,
Tom Ogilvy




"Haxer" wrote:

I figured out a way to make it work...

Dim i As Long
Dim iLastRow As Long
With Sheets("Data")
iLastRow = .Cells(.Rows.Count, "S").End(xlUp).Row
For i = 1 To iLastRow Step 1
If .Cells(i, "S").Value = S1.Value Then
UserFormview.V1.Value = .Cells(i, "A").Value
End If
Next i
End With

S1.Value = ""

I can't find any problems with it. If you do know of an easier way I would
love to learn it. I'm going to need to use this code alot in the workbook I'm
working on. Thank you for your time.

"Tom Ogilvy" wrote:

Dim r as Range, r1 as Range
With Worksheets("Data")
set r = .Range(.cells(3,19),.cells(1000,19))
set r1 = .Range(.cells(3,1),.cells(1000,1))

End With

UserFormview.V1.Value =
LOOKUP((UserFormSearch.S1.Value),r,r1)

--
Regards,
Tom Ogilvy


"Haxer" wrote:

Hi, I don't have any idea of the correct syntax of what I am trying to do but
here it is. On a userform (named search) a person selects a name from a drop
down and hits submit. The idea is to have code in the submit button that
takes that value and does a lookup on it comparing it to data in a sheet. I
don't know how many items will be on the sheet but they could be entered in
column a row 3 to 1000. I do have the code in the macro to sort the items so
a lookup would work. The look uped value should then populate a text box in
another userform. This is what I think i am trying should look like but since
it doesn't work I know that my syntax is probably way off. Can anyone help?

UserFormview.V1.Value =
LOOKUP((UserFormSearch.S1.Value),Sheets("Data").Ce lls(3,
19:1000,19),Sheets("Data").Cells(3, 1:1000,1))


Haxer

Is it possible...lookup macro
 
Thanks very much! This will save me a lot of time. The way I figured out does
work but to do it for many different arguments takes quite a while. Thanks,
hopefully someday I will be able to answer someones questions instead of
always asking.

"Tom Ogilvy" wrote:

I didn't look at that line closely i was focused on showing how to do the
range arguments.

UserFormview.V1.Value =
Application.LOOKUP(UserFormSearch.S1.Value,r,r1)

You will have to check the syntax of the worksheetfunction LOOKUP and make
sure you arguments conform to that. Since you are looping 1000 rows, it
might be better to use the Lookup which should be much faster or use the VBA
FIND method of the Range object.

--
Regards,
Tom Ogilvy




"Haxer" wrote:

I figured out a way to make it work...

Dim i As Long
Dim iLastRow As Long
With Sheets("Data")
iLastRow = .Cells(.Rows.Count, "S").End(xlUp).Row
For i = 1 To iLastRow Step 1
If .Cells(i, "S").Value = S1.Value Then
UserFormview.V1.Value = .Cells(i, "A").Value
End If
Next i
End With

S1.Value = ""

I can't find any problems with it. If you do know of an easier way I would
love to learn it. I'm going to need to use this code alot in the workbook I'm
working on. Thank you for your time.

"Tom Ogilvy" wrote:

Dim r as Range, r1 as Range
With Worksheets("Data")
set r = .Range(.cells(3,19),.cells(1000,19))
set r1 = .Range(.cells(3,1),.cells(1000,1))

End With

UserFormview.V1.Value =
LOOKUP((UserFormSearch.S1.Value),r,r1)

--
Regards,
Tom Ogilvy


"Haxer" wrote:

Hi, I don't have any idea of the correct syntax of what I am trying to do but
here it is. On a userform (named search) a person selects a name from a drop
down and hits submit. The idea is to have code in the submit button that
takes that value and does a lookup on it comparing it to data in a sheet. I
don't know how many items will be on the sheet but they could be entered in
column a row 3 to 1000. I do have the code in the macro to sort the items so
a lookup would work. The look uped value should then populate a text box in
another userform. This is what I think i am trying should look like but since
it doesn't work I know that my syntax is probably way off. Can anyone help?

UserFormview.V1.Value =
LOOKUP((UserFormSearch.S1.Value),Sheets("Data").Ce lls(3,
19:1000,19),Sheets("Data").Cells(3, 1:1000,1))



All times are GMT +1. The time now is 04:50 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com