Dir und Unterverzeichnisse
17.02.2004 21:04:48
Jorainbo
Ich möchte einen Ordnerinhalt in einer Tabelle auflisten, klappt soweit:
Sub InhaltAnzeigen()
Pfad = Range("A11").Value
Datei = Dir(Pfad, vbDirectory) 'Ersten Eintrag abrufen.
Range("A13:A1000").ClearContents
Range("A13").Select
Do While Datei <> ""
If Datei <> "." And Datei <> ".." Then
ActiveCell.Value = Datei
ActiveCell.Offset(1, 0).Select
End If
Datei = Dir 'Nächsten Eintrag abrufen.
Loop
End Sub
Wenn nun in dem Ordner wieder ein Ordner ist, will ich dessen Inhalt auch auflisten. Hab mir gedacht, bastel ich doch zwei Schleifen ineinander:
Sub InhaltAnzeigen()
Pfad1 = Range("A11").Value
Datei1 = Dir(Pfad1, vbDirectory) 'Ersten Eintrag abrufen.
Range("A13:A1000").ClearContents
Range("A13").Select
Do While Datei1 <> ""
If Datei1 <> "." And Datei1 <> ".." Then
If (GetAttr(Pfad1 & Datei1) And vbDirectory) = vbDirectory Then
Pfad2 = Pfad1 & Datei1
MsgBox Pfad2
Datei2 = Dir(Pfad2, vbDirectory)
Do While Datei2 <> ""
If Datei2 <> "." And Datei2 <> ".." Then
ActiveCell.Value = " " & Datei2
ActiveCell.Offset(1, 0).Select
End If
Datei2 = Dir
Loop
Else
ActiveCell.Value = Datei1
ActiveCell.Offset(1, 0).Select
End If
End If
Datei1 = Dir 'Nächsten Eintrag abrufen.
Loop
End Sub
Geht aber nicht. Ich vermute, das Problem liegt bei dem Datei = Dir am Ende der Schleife, weil dann nicht mehr eindeutig ist, welcher Pfad dem Befehl Dir zugeordnet ist. Hat jemand von Euch Profis eine Idee? Oder gehts womöglich viel einfacher ?
Ich danke allen schonmal im Voraus, die sich mit dem Ding befassen und vielleicht sogar eine Lösung anbieten
ciao
Tom