Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Ordnerstruktur auslesen?

Ordnerstruktur auslesen?
24.09.2020 21:42:56
Sergej
Hallo Leute,
ich habe dieses Makro im Internet gefunden, um in Excel von dem Verzeichnispfad (Zeile A1) die Ordnerstruktrur auszulesen. Soweit funktioniert das Makro perfekt. Wie kann ich bitte einstellen, dass nur 4 Verzeichnisebenen ab dem Verzeichnispfad ausgelesen werden und nicht alle Verzeichnisebenen?
Public Sub OrdnerListen_Start()
Dim fso As Object
Dim path As String
'path = "P:\Daten\Projekte\2020\Aufträge"
path = Range("A1")
Cells.NumberFormat = "@"
With ActiveSheet
.UsedRange.ClearContents
Set fso = CreateObject("Scripting.FileSystemObject")
Range("A1") = path
Call OrdnerListen(fso, path, .Range("A3")) ' Pfad anpassen!
Set fso = Nothing
End With
End Sub
Private Sub OrdnerListen(fso As Object, Ordnerangabe As String, rng As Range, Optional Zeile As  _
Long, Optional Spalte As Long)
Dim o, uo
Set o = fso.GetFolder(Ordnerangabe)
rng.Offset(Zeile, Spalte).Value = o.Name
Zeile = Zeile + 1
For Each uo In o.SubFolders
Spalte = Spalte + 1
Call OrdnerListen(fso, uo.path, rng, Zeile, Spalte)
Spalte = Spalte - 1
Next
Set o = Nothing
Set uo = Nothing
End Sub
Besten Dank im Voraus!
Gruß,
Sergej
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordnerstruktur auslesen?
24.09.2020 22:03:12
ralf_b
du könntest die Spaltenanzahl begrenzen. Durch die Rekursion des Programmaufrufes läßt sich nur anhand der Pfadangabe oder der Position der Eintragungen(Spalte) feststellen wo sich das Programm gerade abarbeitet. Glaub ich zumindest. Deshalb wird wohl bei Spalte 4 die 4. Ebene der Ordnerstruktur sein.
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Ordnerstruktur in Excel auslesen und grafisch darstellen


Schritt-für-Schritt-Anleitung

Um die Ordnerstruktur mit Excel VBA auszulesen, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDateiName)" > Einfügen > Modul.

  3. Kopiere und füge den folgenden Code ein:

    Public Sub OrdnerListen_Start()
       Dim fso As Object
       Dim path As String
       path = Range("A1")
       Cells.NumberFormat = "@"
       With ActiveSheet
           .UsedRange.ClearContents
           Range("A1") = path
           Set fso = CreateObject("Scripting.FileSystemObject")
           Call OrdnerListen(fso, path, .Range("A3")) ' Pfad anpassen!
           Set fso = Nothing
       End With
    End Sub
    
    Private Sub OrdnerListen(fso As Object, Ordnerangabe As String, rng As Range, Optional Zeile As Long, Optional Spalte As Long)
       Dim o, uo
       Set o = fso.GetFolder(Ordnerangabe)
       rng.Offset(Zeile, Spalte).Value = o.Name
       Zeile = Zeile + 1
       For Each uo In o.SubFolders
           Spalte = Spalte + 1
           Call OrdnerListen(fso, uo.path, rng, Zeile, Spalte)
           Spalte = Spalte - 1
       Next
       Set o = Nothing
       Set uo = Nothing
    End Sub
  4. Ändere die maximale Verzeichnisebene: Um nur 4 Verzeichnisebenen auszulesen, kannst du die Bedingung in der For Each-Schleife anpassen, um die Spalte zu überprüfen.

  5. Gib den Verzeichnispfad in Zelle A1 ein und führe das Makro OrdnerListen_Start aus.


Häufige Fehler und Lösungen

  • Fehler: "Pfad nicht gefunden"
    Lösung: Stelle sicher, dass der eingegebene Pfad in Zelle A1 korrekt ist und existiert.

  • Problem: Zu viele Verzeichnisebenen werden ausgelesen
    Lösung: Passe die Rekursion an, indem du die Bedingung in der OrdnerListen-Subroutine überprüfst und die maximale Spaltenanzahl begrenzt.


Alternative Methoden

Falls du nicht mit VBA arbeiten möchtest, kannst du auch Power Query verwenden, um die Ordnerstruktur auszulesen. Hier sind die Schritte:

  1. Gehe zu Daten > Abrufen und transformieren.
  2. Wähle "Aus Ordner" und gib den entsprechenden Pfad ein.
  3. Importiere die Daten und filtere die gewünschte Verzeichnistiefe.

Praktische Beispiele

Wenn du die Ordnerstruktur grafisch darstellen möchtest, kannst du die gesammelten Daten in ein Organigramm oder eine Baumstruktur umwandeln. Du kannst dazu die SmartArt-Funktion in Excel verwenden:

  1. Markiere die Daten in deinem Arbeitsblatt.
  2. Gehe zu Einfügen > SmartArt > Hierarchie und wähle ein passendes Layout.
  3. Füge die Daten in die SmartArt ein, um die Ordnerstruktur grafisch darzustellen.

Tipps für Profis

  • Nutze die Option Application.ScreenUpdating = False am Anfang deines Makros, um die Ausführungsgeschwindigkeit zu erhöhen.
  • Exportiere die Daten in eine CSV-Datei, wenn du die Ordnerstruktur außerhalb von Excel verwenden möchtest. Das geht einfach mit Open "Dateiname.csv" For Output As #1.

FAQ: Häufige Fragen

1. Wie kann ich die Ordnerstruktur auslesen, wenn ich nur bestimmte Dateitypen möchte?
Du kannst die Schleife zur Durchsuchung der Unterordner anpassen und eine Bedingung hinzufügen, um nur bestimmte Dateitypen zu erfassen.

2. Gibt es eine Möglichkeit, die Ordnerstruktur in Excel automatisch zu aktualisieren?
Ja, du kannst das Makro mit einem Button verknüpfen oder es in regelmäßigen Abständen mit einem Timer ausführen lassen.

3. Funktioniert das Auslesen der Ordnerstruktur in allen Excel-Versionen?
Ja, das Beispiel sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen. Achte darauf, dass die Makros in deinen Excel-Einstellungen aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige