AW: Datei im Laufwerk finden
20.08.2019 17:16:31
Nepumuk
Hallo Tina,
teste mal:
Option Explicit
Private Declare Function SearchTreeForFile Lib "imagehlp.dll" ( _
ByVal RootPath As String, _
ByVal InputPathName As String, _
ByVal OutputPathBuffer As String) As Long
Private Const MAX_PATH As Long = 260&
Public Sub Tina_sucht()
Const DRIVE_NAME As String = "Projekte"
Const FILE_EXTENSION As String = "*.xlsx"
Dim objFileSystemObject As Object, objDrives As Object, objDrive As Object
Dim objWorkbook As Workbook
Dim blnFoundDrive As Boolean, blnFoundFile As Boolean
Dim strPath As String, strProject As String
Dim lngReturn As Long
strProject = "Häufigkeit" & FILE_EXTENSION 'Anpassen !!!
Set objFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set objDrives = objFileSystemObject.Drives
For Each objDrive In objDrives
With objDrive
If .IsReady Then
If InStr(.ShareName, DRIVE_NAME) > 0 Then
blnFoundDrive = True
strPath = String$(MAX_PATH, vbNullChar)
lngReturn = SearchTreeForFile(.DriveLetter & ":\", strProject, strPath)
If lngReturn <> 0 Then
blnFoundFile = True
strPath = Left$(strPath, InStr(1, strPath, vbNullChar) - 1)
Exit For
End If
End If
End If
End With
Next
If blnFoundDrive Then
If blnFoundFile Then
Set objWorkbook = Workbooks.Open(Filename:=strPath)
'mach was mit dem Workbook
Call objWorkbook.Close(SaveChanges:=False) 'oder True
Set objWorkbook = Nothing
Else
Call MsgBox("Datei nicht gefunden.", vbCritical, "Fehler")
End If
Else
Call MsgBox("Laufwerk nicht gefunden.", vbCritical, "Fehler")
End If
Set objDrive = Nothing
Set objDrives = Nothing
Set objFileSystemObject = Nothing
End Sub
Gruß
Nepumuk