AW: Beispieldatei funktioniert nicht
21.04.2021 21:51:38
Yal
Hallo Daniel,
hmm, es ist eine Datei von 2000 letzte mal in 2010 angepasst...
Versuch damit:
(Unter Anbindung der Library "Microsoft Scripting Runtime")
' Unter Anbindung der Library "Microsoft Scripting Runtime"
' siehe Extras >> Verweise
Private FSO As FileSystemObject
Private Ergebnisse() As String
Public Sub Datei_suchen()
Dim Dateiname As String
Dim Pfad As String
Dim E, msg
Set FSO = New FileSystemObject
Dateiname = Worksheets("Tabelle1").Range("B1")
Pfad = Worksheets("Tabelle1").Range("B2")
Verzeichnis_durchsuchen Pfad, Dateiname, AlleTreffer:=True
For Each E In Ergebnisse
msg = msg & vbCr & E
Next
MsgBox msg, vbOKOnly, "gefundene Datei(en)"
End Sub
Private Sub Verzeichnis_durchsuchen(Pfad As String, Dateiname As String, Optional AlleTreffer = False)
Dim V As Folder
Dim SV As Folder
Dim D As File
Dim l As Integer
On Error Resume Next
Set V = FSO.GetFolder(Pfad)
If V Is Nothing Then Exit Sub
'Dateien im Verzeichnis suchen
For Each D In V.Files
If InStr(1, D.Name, Dateiname, vbTextCompare) Then
l = -1
l = UBound(Ergebnisse) 'Fehler beim ersten Aufruf. L bleibt dann -1
ReDim Preserve Ergebnisse(l + 1)
Ergebnisse(UBound(Ergebnisse)) = D.Path
If Not AlleTreffer Then Exit Sub
End If
Next
'rekursiv: Unterverzeichnisse durchsuchen
For Each SV In V.SubFolders
Verzeichnis_durchsuchen SV.Path, Dateiname, AlleTreffer
Next
End Sub
Man kann mit dem guten alten DOS dasselbe erreichen:
_ wintaste +r
_ cmd eingeben
_ im schwarzen fenster:
_ cd \
_ cd <Ziel startverzeichnis>
_ dir /s /b *Dateiteilname*.xlsx
wenn es in eine Datei reinkommen soll
dir /s /b *dateiname*.xlsx > ergebnis.csv
Viel Erfolg
Yal