calculating values depending on columns in different wkbooks.

L

Lindy

wkbk1
wkbk2
A B C
H K
MON BAL NEW CURR RATE
USD 786 CHF 0.89
EUR 8976 GBP 1.99
GBP 98765 EUR 0.78
CHF 89798
EUR 7765
GBP 98876
CHF 654
need help please.
I have 2 workbooks. for each cell in column A.rowx, check if value is equal
to any cell wkbk2 column F. if so wkbk1 column c = column b.rowx * column g
in wbk2. Hope this makes sense. I have tried to explain as simply as I can.
want to use a macro tied to a sub to do this just dont know enough vba to do
it.


-
Lindy
 
J

Joel

Change sheet names as required


Sub GetBook2()

filetoopen = Application _
.GetOpenFilename("Excel Files (*.xls), *.xls")
If filetoopen = False Then
MsgBox ("Cannot Open File - Exiting Macro")
Exit Sub
End If

bk2 = Workbooks.Open(Filename:=filetoopen)
With ThisWorkbook.Sheets("Sheet1")
RowCount = 1
Do While .Range("A" & RowCount) <> ""
MON = .Range("A" & RowCount)
With bk2.Sheets("Sheet1")
Set c = .Columns("F").Find(what:=MON, LookIn:=xlValues,
lookat:=xlWhole)
End With

If Not c Is Nothing Then
.Range("C" & RowCount) = .Range("B" & RowCount) * c.Offset(0, 1)
End If

RowCount = 1 = RowCount = 1 + 1
Loop
End With
bk2.Close savechanges:=False
End Sub
 
L

Lindy

Thks Joel

The first part works in opening the rates workbook, the second part gives me
a Run-time error 1004: Application-defined or object-defined error when it
gets to the line Do While .Range("CU" & RowCount) <> ""

my code is as follows:

Set bk2 = Workbooks.Open(Filename:=fileToOpen)
With ThisWorkbook.Sheets("fdbpre")
RowCount = RowCount + 1
Do While .Range("CU" & RowCount) <> ""
MON = .Range("CU" & RowCount)
With bk2.Sheets("Sheet1")
Set c = .Columns("A").Find(what:=MON, LookIn:=xlValues, lookat:=xlWhole)

End With

If Not c Is Nothing Then
.Range("EG" & RowCount) = .Range("CB" & RowCount) * c.Offset(0, 1)
End If

RowCount = 1 = RowCount = 1 + 1
Loop
End With
bk2.Close savechanges:=False
End Sub
 
Top