ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Getting value from closed workbook (https://www.excelbanter.com/excel-programming/295756-getting-value-closed-workbook.html)

Dyawlak

Getting value from closed workbook
 
I have found the following function :

Private Function GetValue(path, file, sheet, ref)
' Retrieves a value from a closed workbook
Dim arg As String

' Make sure the file exists
If Right(path, 1) < "\" Then path = path & "\"

If Dir(path & file) = "" Then
GetValue = 0
Exit Function
End If

' Create the argument
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address()


' Execute an XLM macro
GetValue = ExecuteExcel4Macro(arg)
End Function


in my cell I have a formula that calls a function call Calc_Calls

Function calc_calls(fn)
file = fn & ".xls"
path = "\\sth-data\Ops Data\CSATS"
calc_calls = GetValue(path, file, "Report", "C7")
End Function


the value in fn is 07042004

The result of the arg value (from GETVALUE function) is '\\sth-data\Ops
Data\CSATS\[07042004.xls]Report'!$c$7 the function returns 0 if the file
does not exist which is correct - but #Value error when a file exists. I
have pasted the result of ARG directly in to a cell (preceeding with =") and
it works fine.

Any ideas ?

Many thanks



Dave Peterson[_3_]

Getting value from closed workbook
 
This looks suspiciously like the code on John Walkenbach's site:
http://j-walk.com/ss/excel/eee/eee009.txt

And it can't be used in a cell on a worksheet--even if you try to bury it in
other functions (xl is too smart).

But Harlan Grove posted a function that opens another instance of excel and then
retrieves the value from that closed workbook.

http://google.com/groups?threadm=oZx...wsra nger.com

Dyawlak wrote:

I have found the following function :

Private Function GetValue(path, file, sheet, ref)
' Retrieves a value from a closed workbook
Dim arg As String

' Make sure the file exists
If Right(path, 1) < "\" Then path = path & "\"

If Dir(path & file) = "" Then
GetValue = 0
Exit Function
End If

' Create the argument
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address()

' Execute an XLM macro
GetValue = ExecuteExcel4Macro(arg)
End Function

in my cell I have a formula that calls a function call Calc_Calls

Function calc_calls(fn)
file = fn & ".xls"
path = "\\sth-data\Ops Data\CSATS"
calc_calls = GetValue(path, file, "Report", "C7")
End Function

the value in fn is 07042004

The result of the arg value (from GETVALUE function) is '\\sth-data\Ops
Data\CSATS\[07042004.xls]Report'!$c$7 the function returns 0 if the file
does not exist which is correct - but #Value error when a file exists. I
have pasted the result of ARG directly in to a cell (preceeding with =") and
it works fine.

Any ideas ?

Many thanks


--

Dave Peterson



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

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