Yes, there are a number of ways to do this;
Here is one;
You will have to amend the code for your
own situation, but this should get you started;
<PRE><FONT color=blue>Option Explicit</FONT>
<FONT color=blue>Option Base</FONT> 1
<FONT color=blue>Sub </FONT>GetValueFromClosedFile_ViaFormula()
<FONT color=blue>Dim </FONT>sDir <FONT color=blue>As</FONT><FONT color=blue> String</FONT>
<FONT color=blue>Dim </FONT>ShtCellLoc(3) <FONT color=blue>As</FONT><FONT color=blue> String</FONT>
<FONT color=blue>Dim </FONT>DataRg <FONT color=blue>As</FONT> <FONT color=blue>Range</FONT>
<FONT color=blue>Dim </FONT>Files
<FONT color=blue>Dim </FONT>x <FONT color=blue>As</FONT><FONT color=blue> Double</FONT>
<FONT color=#339966>'/////////////////////////////////////////////////////////////////
</FONT>
<FONT color=#339966>'// Info: /
</FONT>
<FONT color=#339966>'// Files :"P046000.xls" to "P057999.xls". /
</FONT>
<FONT color=#339966>'// /
</FONT>
<FONT color=#339966>'// Cells to extract information from: "C2, I57, I58". /
</FONT>
<FONT color=#339966>'// /
</FONT>
<FONT color=#339966>'// Info to be copied to A2, B2, C2 and so on for 12000 rows, /
</FONT>
<FONT color=#339966>'// keeping the 3 columns common. /
</FONT>
<FONT color=#339966>'// Amend as Required!
</FONT>
<FONT color=#339966>'/////////////////////////////////////////////////////////////////
</FONT>
<FONT color=#339966>'// This is the Dir to search in
</FONT>
sDir = "C:Excelfiles"
<FONT color=#339966>'// This is the Location/cell address
</FONT>
ShtCellLoc(1) = "Sheet1'!$C$2"
ShtCellLoc(2) = "Sheet1'!$I$57"
ShtCellLoc(3) = "Sheet1'!$I$58"
Files = Dir(sDir & "*.xls")
<FONT color=#339966>'// Clear area Column A to place data in
</FONT>
Columns("A:C").Clear
<FONT color=#339966>'speed things up
</FONT>
Application.ScreenUpdating =<FONT color=blue> False</FONT>
Application.Calculation = xlCalculationManual
x = 2
<FONT color=blue>On Error</FONT> <FONT color=blue>GoTo</FONT> FileError
<FONT color=blue>Do </FONT>While Len(Files) > 0
Cells(x, 1) = "='" & sDir & "[" & Files & "]" & ShtCellLoc(1)
Cells(x, 2) = "='" & sDir & "[" & Files & "]" & ShtCellLoc(2)
Cells(x, 3) = "='" & sDir & "[" & Files & "]" & ShtCellLoc(3)
x = x + 1
Files = Dir()
<FONT color=blue>Loop</FONT>
<FONT color=#339966>'// calculate NOW!!
</FONT>
Application.Calculate
<FONT color=blue>Set </FONT>DataRg = <FONT color=blue>Range</FONT>(<FONT color=blue>Range</FONT>("A2:C2"), <FONT color=blue>Range</FONT>("A2:C2").End(xlDown))
DataRg.Copy
DataRg.PasteSpecial Paste:=xlValues
Columns("A:C").Columns.EntireColumn.AutoFit
Application.CutCopyMode =<FONT color=blue> False</FONT>
<FONT color=blue>Set </FONT>DataRg =<FONT color=blue> Nothing</FONT>
Application.Calculation = xlCalculationAutomatic
Application.Calculate
Application.ScreenUpdating =<FONT color=blue> True</FONT>
MsgBox "Done!...updating complete", vbInformation + vbSystemModal, "Update Status" <FONT color=#339966>'64+4096
</FONT>
<FONT color=blue>Exit Sub</FONT>
FileError:
MsgBox Err.Number & Chr(13) & _
Err.Description & Chr(13) _
, vbCritical + vbMsgBoxHelpButton, _
"File Error", _
Err.HelpFile, _
Err.HelpContext
<FONT color=blue>End Sub</FONT>
</PRE>