Files-Auflistung in Datenfeld lesen

Bild

Betrifft: Files-Auflistung in Datenfeld lesen
von: Rudi
Geschrieben am: 26.04.2005 14:35:44
Hallo
Ich habe folgenden Code, der mir alle Files der Verzeichnisses c:\Rudi ins Datenfeld filnam() schreiben sollte:


Sub Dateien_auflisten()
Dim fs, f, f1, fc
Dim filnam() As String
Dim i As Integer, x As Integer
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder("c:\Rudi")
Set fc = f.Files
x = 1
ReDim Preserve filnam(1 To x)
For i = 1 To fc.Count
    filnam(x) = fc(i).Name
    x = x + 1
Next
End Sub

Die Codeausführung stoppt immer in der Zeile "filnam(x) = fc(i).name" mit der Fehlermeldung "Laufzeitfehler 5: Ungültiger Prozeduraufruf oder ungültiges Argument". Auch wenn ich "filnam(x) = fc.Item(i).Name" schreibe, wie aus dem Überwachungsfenster zu schliessen wäre, erscheint dieselbe Fehlermeldung.
Kann mir jemand helfen?
Besten Dank.
Gruss
Rudi
Bild

Betrifft: AW: Files-Auflistung in Datenfeld lesen
von: ANdreas
Geschrieben am: 26.04.2005 14:43:01
Hallo Rudi,
anbei mein Vorschlag:

Sub Dateien_auflisten()
Dim i&, arrFiles() As String
With Application.FileSearch
    .NewSearch
    .LookIn = "c:\Rudi"
    .Filename = "*.*"
    .Execute msoSortByFileName
    
    ReDim arrFiles(.FoundFiles.Count - 1)
    For i = 1 To .FoundFiles.Count
        arrFiles(i - 1) = .FoundFiles(i)
    Next i
End With
End Sub

Gruß
Andreas
Bild

Betrifft: AW: Files-Auflistung in Datenfeld lesen
von: Rudi
Geschrieben am: 26.04.2005 15:03:26
Besten Dank, Andreas, für deine schnelle Hilfe!
Ich habe noch eine kleine Anforderung: .FoundFiles(i) bringt den ganzen Pfad. Gibt es eine Möglichkeit, daraus nur den Dateinamen zu extrahieren? Das wäre echt super.
Gruss
Rudi
Bild

Betrifft: AW: Files-Auflistung in Datenfeld lesen
von: ANdreas
Geschrieben am: 26.04.2005 15:08:29
Hallo Rudi,
dann so:

Sub Dateien_auflisten()
Const sPath = "C:\Rudi\"
Dim i&, arrFiles() As String
With Application.FileSearch
    .NewSearch
    .LookIn = sPath
    .Filename = "*.*"
    .Execute msoSortByFileName
    
    ReDim arrFiles(.FoundFiles.Count - 1)
    For i = 1 To .FoundFiles.Count
        arrFiles(i - 1) = Replace(.FoundFiles(i), sPath, "", , , vbTextCompare)
    Next i
End With
End Sub

Gruß
Andreas
Bild

Betrifft: AW: Files-Auflistung in Datenfeld lesen
von: Rudi
Geschrieben am: 26.04.2005 15:30:27
Sensationell! Klappt alles bestens. Vielen Dank nochmals.
Gruss
Rudi
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Files-Auflistung in Datenfeld lesen"