Probiere es mal...
22.05.2022 17:04:10
Case
Hallo, :-)
... so der Spur nach: ;-)
Option Explicit
Private Declare PtrSafe Function SearchTreeForFile Lib "imagehlp.dll" ( _
ByVal RootPath As String, ByVal InputPathName As String, _
ByVal OutputPathBuffer As String) As Long
Public Sub Main()
Dim strFileName As String
Dim strPath As String
Dim strTMP As String
strFileName = Range("G42").Value & ".xlsm"
strPath = "C:\Firma\Rechnungen\"
strTMP = FindFile(strPath, strFileName)
If strTMP "" Then
Workbooks.Open strTMP
Else
MsgBox "Fehler - Datei oder Pfad falsch!"
End If
End Sub
Function FindFile(ByVal Path As String, ByVal File As String) As String
Dim strFile As String * 1024
If SearchTreeForFile(Path, File, strFile) Then
FindFile = Left$(strFile, InStr(strFile, vbNullChar) - 1)
Else
FindFile = ""
End If
End Function
Vorgaben:
Verzeichnis - "C:\Firma\Rechnungen\" - alle darin befindlichen Unterordner werden durchsucht.
In G42 steht bei mir z. B. "Test" ohne die Anführungszeichen UND ohne ".xlsm".
Ist das bei dir anders z. B. wenn der Dateiname MIT Dateiendung in der Zelle stht, dann musst du diese Codezeile...
strFileName = Range("G42").Value & ".xlsm"
... so schreiben:
strFileName = Range("G42").Value
Code ist getestet. ;-)
Servus
Case