Anzeige
Archiv - Navigation
1296to1300
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

DateiSuche

DateiSuche
14.02.2013 12:11:45
haw
Hallo Excelfreunde,
ich habe folgenden Code, der mir als FileSearch-Ersatz dient:

Sub Dateien_Listen()
Dim fs As Object
Dim fo As Object
Dim f As Object
Dim ws As Worksheet
Dim lZeile As Long
Dim Pfad$, Suffix$
Dim wksquelle As Worksheet
Pfad = ThisWorkbook.path & "\Details-Forecast"
Pfad = "E:\EXCEL\Codebook\Dateien"
Set ws = ThisWorkbook.Worksheets("Dateiliste")
Set fs = CreateObject("Scripting.FileSystemObject")
Set fo = fs.GetFolder(Pfad)
Suffix = "xls"
For Each f In fo.Files
If fs.GetExtensionName(f.Name) = Suffix Then
lZeile = lZeile + 1
ws.Cells(lZeile, 1).Value = f.path
ws.Cells(lZeile, 2).Value = f.Name
End If
Next
End Sub

Wie kann ich auch die Unterordner miteinbeziehen?
Vielen Dank
Heinz

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: DateiSuche
14.02.2013 12:20:53
Rudi
Hallo,
ungetestet:
Sub Dateien_Listen()
Dim fs As Object
Dim fo As Object, sFo As Object
Dim f As Object
Dim ws As Worksheet
Dim lZeile As Long
Dim Pfad$, Suffix$
Dim wksquelle As Worksheet
Pfad = ThisWorkbook.Path & "\Details-Forecast"
Pfad = "E:\EXCEL\Codebook\Dateien"
Set ws = ThisWorkbook.Worksheets("Dateiliste")
Set fs = CreateObject("Scripting.FileSystemObject")
Set fo = fs.GetFolder(Pfad)
Suffix = "xls"
For Each f In fo.Files
If fs.GetExtensionName(f.Name) = Suffix Then
lZeile = lZeile + 1
ws.Cells(lZeile, 1).Value = f.Path
ws.Cells(lZeile, 2).Value = f.Name
End If
Next
For Each sFo In fo.subfolders
For Each f In sFo.Files
If fs.GetExtensionName(f.Name) = Suffix Then
lZeile = lZeile + 1
ws.Cells(lZeile, 1).Value = f.Path
ws.Cells(lZeile, 2).Value = f.Name
End If
Next
Next
End Sub

Gruß
Rudi

Anzeige
AW: DateiSuche
14.02.2013 13:02:24
haw
Hallo Rudi,
vielen Dank - funktioniert natürlich!
Gruß
Heinz

AW: DateiSuche
14.02.2013 13:10:54
Michael
Hallo Heinz,
ich habe mal nach einer bestimmten Datei (Speicherort von Adobe Reader) suchen müssen und hier folgendes gefunden und verwendet:

Private Declare Function SearchTreeForFile Lib "imagehlp.dll" ( _
ByVal RootPath As String, ByVal InputPathName As String, _
ByVal OutputPathBuffer As String) As Long
Public Function FileFind(ByRef hFileName As String, Optional ByVal hPart As String = "C:\") As  _
String
1 On Error GoTo errorHandling
2 Dim rapi As Long
3 Dim hPfad As String
4 On Error GoTo Fehler
' keine Datei übergeben
5 If Len(Trim$(hFileName)) = 0 Then Err.Raise 75
' ZielPfad vorbereiten
6 hPfad = String(MaX_PaTH, 0)
' aPI-aufruf
7 rapi = SearchTreeForFile(hPart, hFileName, hPfad)
' gefunden ?
8 If rapi = 0 Then Err.Raise 76
' Rückgabewert
9 FileFind = Left(hPfad, InStr(hPfad, Chr(0)) - 1)
10 Exit Function
11 Fehler:
12 Err.Clear
13 FileFind = ""
14 out:
15 Exit Function
16 errorHandling:
17 Resume out:
End Function
Sub testfilefind()
1 Dim Pfad As String
2 Pfad = FileFind("AcroRd32.exe", "C:\")
Debug.Print Pfad
End Sub
Wenn Du jetzt in der Routine "testfilefind" Deine For-Each Schleife mit einbaust, müsste das gehen.
Gruß,
Michael :-)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige