Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 41
Default vlookup in VBA

I am currently trying to create a macro that has a prompt for people to enter
values. Based on these values the macro will then open 2 workbooks with
those values plus 2 different prefixes (ie. ABC123999 and DEF123999). In
another workbook I am looking up based on the one column in this workbook if
it has ABC or DEF I am trying to do a vlookup to the appropriate workbook
and then return the value of the 7th column in either the ABC or DEF workbook
to the N column of the original workbook.
I know I can do this in Excel but when I try to create the code in VBA I
am just not getting it. This is what I have so far:
Workbooks("Test").Worksheets("Sheet1").Activate
With ActiveSheet
.Range("N2:N55").Value =

If .Range("L2:L55") = "ABC" Then
VLOOKUP(B2,workbooks("ABC123999").worksheets("SMAR T")
$A$2:$H$H82,7,FALSE),0)
Any help would be gratefully appreciated.

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,758
Default vlookup in VBA

I'm kind of confused, but maybe this will help (or hurt!).

Option Explicit
Sub testme()

Dim res As Variant
Dim wkbkABC As Workbook
Dim wkbkDEF As Workbook
Dim wks As Worksheet
Dim rngABC As Range
Dim rngDEF As Range
Dim rngToUse As Range
Dim myCell As Range
Dim myNumber As String

myNumber = "1234123"

Set wks = Workbooks("test.xls").Worksheets("sheet1")

'some way to get the name and open the workbooks...
Set wkbkABC = Workbooks.Open(Filename:="c:\my docs\ABC" & myNumber & ".xls")
Set wkbkDEF = Workbooks.Open(Filename:="c:\my docs\DEF" & myNumber & ".xls")

With wkbkABC.Worksheets("Smart")
Set rngABC = .Range("A:H")
End With

With wkbkDEF.Worksheets("smart")
Set rngDEF = .Range("a:h")
End With

For Each myCell In wks.Range("B2:B55").Cells
'check 10 columns over (column L)
If UCase(myCell.Offset(0, 10).Value) = "ABC" Then
Set rngToUse = rngABC
Else
Set rngToUse = rngDEF
End If
res = Application.VLookup(myCell.Value, rngToUse, 7, False)
If IsError(res) Then
'not found, put error msg in column C (.offset(0,1)
myCell.Offset(0, 1).Value = "not found"
Else
myCell.Offset(0, 1).Value = res
End If
Next myCell

End Sub



HeatherO wrote:

I am currently trying to create a macro that has a prompt for people to enter
values. Based on these values the macro will then open 2 workbooks with
those values plus 2 different prefixes (ie. ABC123999 and DEF123999). In
another workbook I am looking up based on the one column in this workbook if
it has ABC or DEF I am trying to do a vlookup to the appropriate workbook
and then return the value of the 7th column in either the ABC or DEF workbook
to the N column of the original workbook.
I know I can do this in Excel but when I try to create the code in VBA I
am just not getting it. This is what I have so far:
Workbooks("Test").Worksheets("Sheet1").Activate
With ActiveSheet
.Range("N2:N55").Value =

If .Range("L2:L55") = "ABC" Then
VLOOKUP(B2,workbooks("ABC123999").worksheets("SMAR T")
$A$2:$H$H82,7,FALSE),0)
Any help would be gratefully appreciated.


--

Dave Peterson
  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 41
Default vlookup in VBA

Thanks actually you helped alot. I just have one other question if I am
opening those files the ABC123999 or the DEF123999 I was just wondering if
there is anyway I can check before I open them to make sure they are there so
that I don't get an error when I try to open a workbook that is not there? I
am supposed to go under the assumption that they exist but I am trying to
capture the human error which is bound to be there.
Thanks in advance for all your help.


"HeatherO" wrote:

I am currently trying to create a macro that has a prompt for people to enter
values. Based on these values the macro will then open 2 workbooks with
those values plus 2 different prefixes (ie. ABC123999 and DEF123999). In
another workbook I am looking up based on the one column in this workbook if
it has ABC or DEF I am trying to do a vlookup to the appropriate workbook
and then return the value of the 7th column in either the ABC or DEF workbook
to the N column of the original workbook.
I know I can do this in Excel but when I try to create the code in VBA I
am just not getting it. This is what I have so far:
Workbooks("Test").Worksheets("Sheet1").Activate
With ActiveSheet
.Range("N2:N55").Value =

If .Range("L2:L55") = "ABC" Then
VLOOKUP(B2,workbooks("ABC123999").worksheets("SMAR T")
$A$2:$H$H82,7,FALSE),0)
Any help would be gratefully appreciated.

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 252
Default vlookup in VBA

Sub DoesFileExist()
Dim sPath As String
Dim sMyFile As String

sPath = "C:\Documents and Settings\My Docs\"
sMyFile = "ABC123999.xls"

If Dir(sPath & MyFile) = "" Then
MsgBox "File NOT FOUND"
Else
MsgBox "File EXISTS"
End If

End Sub


"HeatherO" wrote:

Thanks actually you helped alot. I just have one other question if I am
opening those files the ABC123999 or the DEF123999 I was just wondering if
there is anyway I can check before I open them to make sure they are there so
that I don't get an error when I try to open a workbook that is not there? I
am supposed to go under the assumption that they exist but I am trying to
capture the human error which is bound to be there.
Thanks in advance for all your help.


"HeatherO" wrote:

I am currently trying to create a macro that has a prompt for people to enter
values. Based on these values the macro will then open 2 workbooks with
those values plus 2 different prefixes (ie. ABC123999 and DEF123999). In
another workbook I am looking up based on the one column in this workbook if
it has ABC or DEF I am trying to do a vlookup to the appropriate workbook
and then return the value of the 7th column in either the ABC or DEF workbook
to the N column of the original workbook.
I know I can do this in Excel but when I try to create the code in VBA I
am just not getting it. This is what I have so far:
Workbooks("Test").Worksheets("Sheet1").Activate
With ActiveSheet
.Range("N2:N55").Value =

If .Range("L2:L55") = "ABC" Then
VLOOKUP(B2,workbooks("ABC123999").worksheets("SMAR T")
$A$2:$H$H82,7,FALSE),0)
Any help would be gratefully appreciated.

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,758
Default vlookup in VBA

gocush gave you the dir() solution for checking for existence.

But you may want to consider using
application.getopenfilename

to prompt the user to point at the workbook that should be opened. I find
pointing and clicking a little safer way to get input from users (like me!).



HeatherO wrote:

Thanks actually you helped alot. I just have one other question if I am
opening those files the ABC123999 or the DEF123999 I was just wondering if
there is anyway I can check before I open them to make sure they are there so
that I don't get an error when I try to open a workbook that is not there? I
am supposed to go under the assumption that they exist but I am trying to
capture the human error which is bound to be there.
Thanks in advance for all your help.

"HeatherO" wrote:

I am currently trying to create a macro that has a prompt for people to enter
values. Based on these values the macro will then open 2 workbooks with
those values plus 2 different prefixes (ie. ABC123999 and DEF123999). In
another workbook I am looking up based on the one column in this workbook if
it has ABC or DEF I am trying to do a vlookup to the appropriate workbook
and then return the value of the 7th column in either the ABC or DEF workbook
to the N column of the original workbook.
I know I can do this in Excel but when I try to create the code in VBA I
am just not getting it. This is what I have so far:
Workbooks("Test").Worksheets("Sheet1").Activate
With ActiveSheet
.Range("N2:N55").Value =

If .Range("L2:L55") = "ABC" Then
VLOOKUP(B2,workbooks("ABC123999").worksheets("SMAR T")
$A$2:$H$H82,7,FALSE),0)
Any help would be gratefully appreciated.


--

Dave Peterson
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
If (Vlookup 0) working, but what if Vlookup cell does not exist Steve Excel Worksheet Functions 18 November 18th 09 07:33 PM
Vlookup in vlookup - taking the result as array name SupperDuck Excel Worksheet Functions 2 June 2nd 07 11:05 AM
Combine VLOOKUP and IF function so #NA isn't returned as a value from VLOOKUP buffgirl71 Excel Discussion (Misc queries) 12 November 14th 06 11:36 PM
Vlookup -=VLOOKUP(F9,LookUp1!$A$2:$B$1504,2,FALSE) MikeR-Oz New Users to Excel 1 March 22nd 06 09:01 AM
Vlookup info being used without vlookup table attached? Excel Worksheet Functions 0 January 25th 05 10:43 AM


All times are GMT +1. The time now is 08:11 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"