Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
872to876
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
872to876
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

rekursives Auslesen von Dateien

rekursives Auslesen von Dateien
31.05.2007 02:00:49
Dateien
Hallo Excel-Freaks,
ich möchte rekursiv aus einer Liste von Verzeichnissen (die ich in der Excel-Tabelle eingegeben habe) auslesen und alle Dateien, die nach einem bestimmten Datum geändert wurden in einem 2. Tabellenblatt ausgeben.
Ich habe mir schon folgenden Code zusammengebaut, der aber leider nicht die Dateien, die in den Unterverzeichnissen beinhaltet sind berücksichtigt. Was mache ich verkehrt?
Hier mein Code:
Option Compare Text
Public datum As Date, pfad, vz_alt, zz

Private Sub CommandButton1_Click()
Dim s As Long
datum = Range("D2")
von = Range("D5")
bis = Range("D7")
Sheets("tab2").Cells.ClearContents
zz = 1
For nr = von + 1 To bis + 1
vz_alt = (Range("B" & nr))
pfad = ""
ebene = 0
i_alt = ""
Call Verzeichnis(vz_alt)
Next nr
End Sub


Function Verzeichnis(ByVal pfad$)
Dim i&, verznr&, verzmax&, vrz$(), dat$, fs, f, s
Dim checkd As Date
verzmax = 20: ReDim vrz(verzmax)
If pfad = "" Then pfad = CurDir()
dat = Dir(pfad, 0 + 1 + 2 + 4 + 16)
Do While dat ""
If dat "." And dat ".." Then
test = GetAttr(pfad & dat)
If GetAttr(pfad & dat) 16 And GetAttr(pfad & dat) 17 And GetAttr(pfad & dat) 8208 And GetAttr(pfad & dat) 8209 Then
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(pfad & dat)
checkd = Left(f.DateLastModified, 10)
If checkd >= datum Then
Sheets("tab2").Range("A" & zz) = pfad & dat
Sheets("tab2").Range("B" & zz) = checkd
zz = zz + 1
'copy noch einbauen
End If
Else 'Verzeichnis
vrz(verznr) = dat: verznr = verznr + 1
If verznr > verzmax Then
verzmax = verzmax + 20: ReDim Preserve vrz(verzmax)
End If
End If
End If
dat = Dir()
Loop
' Unterverzeichnisse rekursiv durcharbeiten
For i = 0 To verznr - 1
Verzeichnis (vrz(i))
Next i
Verzeichnis = 0
End Function


Vielen Dank für Euere Hilfe! Klaus

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: rekursives Auslesen von Dateien
01.06.2007 17:18:59
Dateien
Hallo Rolf,
Dein Link hat mir nicht viel geholfen, da die Beispiele meist nur für Verzeichnisbäume, jedoch nicht für Dateien sind.
Ich habe durch "Ausprobieren" nun jedoch meinen Code so hinbekommen, dass er funktioniert.
Trotzdem danke!
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige