Change to
Sub test()
Dim myDir As String, fn As String, myVal, e, x, ws, msg As String
myDir = ThisWorkbook.Path '<--- change this to actual folder path
fn = "Valuefile.xlsx"
ws = GetSheetNames(myDir & "\" & fn)
fn = myDir & "\[" & fn & "]"
myVal = Sheets("sheet1").[c16]
If Not IsNumeric(myVal) Then myVal = Chr(34) & myVal & Chr(34)
For Each e In ws
x = ExecuteExcel4Macro("match(" & myVal & ",'" & fn & e & "'!c4:c4,0)")
If IsNumeric(x) Then
Sheets("sheet1").[g16] = ExecuteExcel4Macro("'" & fn & e & "'!r" & x & "c15")
msg = "Found In " & e & "!D" & x
Exit For
End If
Next
MsgBox IIf(Len(msg), msg, "Not found")
End Sub
Function GetSheetNames(fn As String)
Dim db As Object, tbl As Object, i As Long, x
Set db = CreateObject("DAO.DBEngine.120").OpenDatabase(fn, False, False, "excel 5.0;HDR=No")
ReDim x(0 To db.TableDefs.Count - 1)
For i = 0 To db.TableDefs.Count - 1
x(i) = Replace(db.TableDefs(i).Name, "$", "")
Next
GetSheetNames = x: db.Close
End Function
Bookmarks