Hallo zusammen. Ich suche verzweifelt nach einer Datei auf dem Computer und habe einen VBA Code gefunden, der mir Dateien auf einem Laufwerk (Intenso) anzeigt.
Wenn ich nun auf das Laufwerk C:\ wechsele, kommt gleich die Meldung aus dem Code MsgBox. Was ist ausschlaggebend dafür, dass es einmal funktioniert oder bei dem anderen Laufwerk eben nicht?
Das Laufwerk C wird somit nicht durchsucht. Frage: Kann man den Code hier überhaupt anwenden, oder wie müsste er verändert werden?
Danke für erklärende Codetexte. Gruß Josef
Wenn ich nun auf das Laufwerk C:\ wechsele, kommt gleich die Meldung aus dem Code MsgBox. Was ist ausschlaggebend dafür, dass es einmal funktioniert oder bei dem anderen Laufwerk eben nicht?
Das Laufwerk C wird somit nicht durchsucht. Frage: Kann man den Code hier überhaupt anwenden, oder wie müsste er verändert werden?
Danke für erklärende Codetexte. Gruß Josef
Visual Basic:
Private Sub CommandButton1_Click()
Dim sPath As String
' Startpfad angeben (hier z.B. Laufwerk C:)
sPath = "C:\"
' Durchsuche das Verzeichnis und alle Unterordner nach Excel-Dateien
On Error Resume Next
RecursiveSearchForExcel sPath
On Error GoTo 0
' Meldung am Ende der Suche
MsgBox "Die Suche nach Excel-Dateien wurde abgeschlossen.", vbInformation
End Sub
Sub RecursiveSearchForExcel(ByVal sFolderPath As String)
Dim oFSO As Object
Dim oFolder As Object
Dim oSubFolder As Object
Dim oFile As Object
Dim wb As Workbook
Dim sFile As String
' Erstelle ein FileSystemObject
Set oFSO = CreateObject("Scripting.FileSystemObject")
' Überprüfe, ob der Ordner existiert
If oFSO.FolderExists(sFolderPath) Then
' Öffne den Ordner
Set oFolder = oFSO.GetFolder(sFolderPath)
' Durchsuche alle Dateien im aktuellen Ordner
For Each oFile In oFolder.Files
' Prüfe, ob es sich um eine Excel-Datei handelt
If InStr(1, oFile.Name, ".xlsx", vbTextCompare) > 0 Or InStr(1, oFile.Name, ".xlsm", vbTextCompare) > 0 Then
' Öffne die Excel-Datei
Set wb = Workbooks.Open(oFile.Path)
' Hier können weitere Aktionen mit der geöffneten Datei durchgeführt werden
' Zum Beispiel: MsgBox "Geöffnete Datei: " & wb.Name
' Schließe die Datei nach Bedarf
' wb.Close SaveChanges:=False
End If
Next oFile
' Durchsuche alle Unterordner rekursiv
For Each oSubFolder In oFolder.SubFolders
RecursiveSearchForExcel oSubFolder.Path
Next oSubFolder
End If
End Sub