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

Ordnerinhalt in ListBox anzeigen

Forumthread: Ordnerinhalt in ListBox anzeigen

Ordnerinhalt in ListBox anzeigen
24.03.2022 15:51:43
xtian
Hallo zusammen, ich benötige einmal bitte eure Hilfe.
Auf einem Server befinden sich mehrere Unterordner in dem verschiede Kollegen Dateien ablegen.
Damit ich nicht jedes mal alle Ordner durchsuchen muss, ob sich in der Ordner Dateien befinden, habe
ich versucht ein Makro zu schreiben.
Im ersten Schritt prüft das Makro in welchen Ordner sich Dateien/ Unterordner befinden und listet diese
in der ListBox1 auf. Leere Ordner werden in der ListBox1 nicht aufgeführt. Das funktioniert auch soweit
ganz gut.
Im nächsten Schritt, und das bekomme ich leider überhaupt nicht hin, soll der Ordnerinhalt in der
ListBox2 angezeigt werden. Bsp: Klicke ich in der ListBox1 den Ordner Jens Müller an, soll der Inhalt,
hier z.B. Freizeit.pdf, Schule.pdf, Familie.xlsx in der ListBox2 angezeigt werden.
Viele Grüße
xtian
Hier mein Makro:

Private Sub CommandButton1_Click()
Dim fs As Object
Dim ordner As Object
Dim unterordner As Object
Set fs = CreateObject("Scripting.filesystemobject")
Set ordner = fs.getfolder("Z:\Sammlung")
For Each unterordner In ordner.subfolders
If unterordner.subfolders.Count * 1 + unterordner.Files.Count * 1 > 0 Then
Me.ListBox1.AddItem unterordner.Name
End If
Next
End Sub
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordnerinhalt in ListBox anzeigen
24.03.2022 16:40:32
UweD
Hallo
so?

Private Sub CommandButton1_Click()
Dim fs As Object
Dim ordner As Object
Dim unterordner As Object
Me.ListBox1.Clear
Set fs = CreateObject("Scripting.filesystemobject")
Set ordner = fs.getfolder("E:\excel")
For Each unterordner In ordner.subfolders
If unterordner.subfolders.Count * 1 + unterordner.Files.Count * 1 > 0 Then
Me.ListBox1.AddItem unterordner.Name
End If
Next
End Sub
Private Sub ListBox1_Change()
Dim fs As Object
Dim ordner As Object
Dim datei As Object, Item
If Me.ListBox1.ListCount  0 Then
Me.ListBox2.Clear
Set fs = CreateObject("Scripting.filesystemobject")
Set ordner = fs.getfolder("E:\excel\" & ListBox1.Value)
Set datei = ordner.Files
For Each Item In datei
Me.ListBox2.AddItem Item.Name
Next
End If
End Sub
LG UweD
Anzeige
AW: Ordnerinhalt in ListBox anzeigen
24.03.2022 17:00:09
xtian
Hallo UweD,
perfekt. Funktioniert genau so wie ich mir das vorgestellt habe. Vielen lieben Dank.
Leider zeigt die ListBox2 keine Unterordner an falls welche hochgeladen wurden. Ich
probiere das aber mal selber ob ich das noch hinbekomme. 2 Versuche schlugen schon
fehlt. Aber ich bleibe am Ball.
Viele Grüße
xtian
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Ordnerinhalt in ListBox anzeigen


Schritt-für-Schritt-Anleitung

Um den Ordnerinhalt in einer ListBox anzuzeigen, kannst du das folgende Excel VBA-Makro verwenden. Dieses Beispiel zeigt, wie du Ordner und deren Dateien auslesen kannst.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (dein Workbook)" > Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:
Private Sub CommandButton1_Click()
    Dim fs As Object
    Dim ordner As Object
    Dim unterordner As Object
    Set fs = CreateObject("Scripting.filesystemobject")
    Set ordner = fs.getfolder("Z:\Sammlung") ' Passe den Pfad an
    Me.ListBox1.Clear
    For Each unterordner In ordner.subfolders
        If unterordner.subfolders.Count * 1 + unterordner.Files.Count * 1 > 0 Then
            Me.ListBox1.AddItem unterordner.Name
        End If
    Next
End Sub

Private Sub ListBox1_Change()
    Dim fs As Object
    Dim ordner As Object
    Dim datei As Object, Item
    If Me.ListBox1.ListCount > 0 Then
        Me.ListBox2.Clear
        Set fs = CreateObject("Scripting.filesystemobject")
        Set ordner = fs.getfolder("Z:\Sammlung\" & ListBox1.Value) ' Passe den Pfad an
        For Each Item In ordner.Files
            Me.ListBox2.AddItem Item.Name
        Next
    End If
End Sub
  1. Füge zwei ListBox-Steuerelemente zu deinem Arbeitsblatt hinzu (ListBox1 und ListBox2).
  2. Füge einen CommandButton hinzu, um das Makro auszuführen.
  3. Passe die Pfade in den getfolder-Methoden an deine Ordnerstruktur an.

Häufige Fehler und Lösungen

Problem: Die ListBox1 zeigt keine Ordner an.
Lösung: Stelle sicher, dass der angegebene Pfad korrekt ist und dass es Unterordner gibt.

Problem: Die ListBox2 zeigt keine Dateien an.
Lösung: Überprüfe, ob du die richtige Auswahl in ListBox1 getroffen hast und ob der Pfad zu den Dateien korrekt ist.

Problem: Unterordner werden nicht angezeigt.
Lösung: Der aktuelle Code zeigt nur Dateien an. Um auch Unterordner anzuzeigen, musst du den Code erweitern, damit er auch die Unterordner durchläuft.


Alternative Methoden

Wenn du keine VBA-Kenntnisse hast, kannst du auch Excel-Funktionen wie INDIREKT oder VERWEIS verwenden, um Daten aus einer Liste zu filtern. Diese Methoden sind jedoch weniger flexibel im Vergleich zur Verwendung von VBA, insbesondere wenn es darum geht, mehrere Ordner und Unterordner auszulesen.


Praktische Beispiele

  • Beispiel 1: Um den Inhalt des Ordners "Müller" anzuzeigen, musst du den Pfad in der getfolder-Methode anpassen:
Set ordner = fs.getfolder("Z:\Sammlung\Müller")
  • Beispiel 2: Wenn du möchtest, dass die ListBox eine Mehrfachauswahl erlaubt, setze die MultiSelect-Eigenschaft der ListBox auf fmMultiSelectMulti. Dies ermöglicht dir, mehrere Elemente auszuwählen.

Tipps für Profis

  • Verwende Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden.
  • Experimentiere mit der FileSystemObject-Bibliothek, um erweiterte Funktionen wie das Kopieren oder Löschen von Dateien hinzuzufügen.
  • Denke daran, Fehlerbehandlung in dein Makro einzubauen, um unerwartete Probleme beim Ausführen des Codes abzufangen.

FAQ: Häufige Fragen

1. Wie kann ich die Ordnerstruktur in einer Baumansicht anzeigen?
Du kannst ein TreeView-Steuerelement verwenden, um eine hierarchische Ansicht der Ordnerstruktur zu erstellen.

2. Ist es möglich, die Ordnerinhalte automatisch zu aktualisieren?
Ja, du kannst das Makro so anpassen, dass es beim Öffnen des Arbeitsblatts automatisch die Ordnerinhalte aktualisiert.

3. Welche Excel-Version benötige ich für dieses Makro?
Dieses Makro sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen, wie Excel 2010 und neuer.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige