View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Vlookup macro that returns data from worksheet, then Loops

You could use a loop but it would be slower and more complex.

Dim sStr as String, rng as Range
sStr = "=IF(ISNA(MATCH(A2,source!A:A,0))=FALSE," & _
"VLOOKUP(new!$A2,source!$A$1" & _
":$B$10,2,FALSE),""Not Found"")"
With Worksheets("New")
set rng = .range(.range("A2"), .range("A2").End(xldown))
End with
rng.offset(0,1).Formula = sStr
' if you want to replace the formulas with the
' value displayed then uncomment the next line
' rng.offset(0,1).Formula = rng.offset(0,1).Value

Note that since you are using False as the 4th argument of vlookup, the data
in Source does not need to be sorted. The names would need to be unique,
however.
--
Regards,
Tom Ogilvy


"xlsxlsxls" wrote in message
...

Hi,
I have a Workbook with 2 sheets. The first sheet is called "SearchData"
and has 2 columns:

Name Code
Art 10
Ben 11
Carl 12
Doug 13
Eric 14
Fran 15
Gus 16
Henry 17
Irene 18


The second sheet is called "New" which has one column of names (of
which 5 are in the previous sheet).

Name
Allen
Bruce
Carl
Dana
Eric
Fran
Gary
Henry
John

Manually typing a formula using match and vlookup functions returns the
following desired result. (Note: Search data has to be sorted and unique
values only)

The formula is (which is searching for a match and if there is, returns
the data in colum 2 or returns "Not Found"


=IF(ISNA(MATCH(A2,source!A:A,0))=FALSE,VLOOKUP(new !$A2,source!$A$1:$B$10,2,F
ALSE),"Not
Found")

Then I fill down and get the desired result.

Name Code
Art 10
Bruce Not Found
Carl 12
Dana Not Found
Eric 14
Fran 15
Gary Not Found
Henry 17
John Not Found

In actuality, there will be thousands of records and I would like to be
able to attach this to a Button w/ a VBA Loop command with a message box
saying done when complete. Problem is I am not very good at writing code
and when I entered my formula in a module and tried to include sheet
names it got all screwed up. I know it has something to do with Do
While / Loop While the active cell in "New" is not empty. Any help
would be appreciated.

Thanks


--
xlsxlsxls
------------------------------------------------------------------------
xlsxlsxls's Profile:

http://www.excelforum.com/member.php...o&userid=13196
View this thread: http://www.excelforum.com/showthread...hreadid=271777