Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: Ordner auflisten +

VBA: Ordner auflisten +
06.08.2022 11:18:17
Henner
Hallo zusammen
Ich möchte alle Ordner eines fixen Pfads in Spalte A ohne Unterordner untereinander aufgelistet haben. In Spalte B soll ein "X" eingetragen werden, wenn sich im jeweiligen Ordner der Unterordner "Dokumente" befindet. In Spalte C soll ein "X" eingetragen werden, wenn sich im Unterordner "Dokumente" eine Datei befindet, welche im Dateinamen das Wort "Auswertung" enthält und vom Typ .pdf ist.
Im Netz kann ich leider nichts mit den Kriterien finden.
Vielen Dank und schönen Samstag, Gruss Henner
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Ordner auflisten +
06.08.2022 11:34:59
Oberschlumpf
Hi Henner,
auch wenn - nicht - alle Unterordner angezeigt werden sollen, so muss trotzdem jeder "Hauptordner" in deinem fixen Pfad nach dem Unterordner "Dokumente" durchsucht werden. Und wenn vorhanden, muss in "Dokumente" nach deiner genannten PDF-Datei gesucht werden.
Daraus kann sich ergeben, dass du in Spalte A sehr viele Einträge, in Spalte B etwas weniger Einträge und in Spalte C vielleicht nur 1 oder 2 Einträge hast.
Gegenfrage:
Würde es daher nicht mehr Sinn machen, nur genau die Ordner anzuzeigen, in denen auch die PDF-Datei enthalten ist?
Ciao
Thorsten
Anzeige
AW: VBA: Ordner auflisten +
06.08.2022 12:24:53
Henner
Hi Thorsten
Vielen Dank für die konstruktive Gegenfrage! Es sollen tatsächlich alle Ordner aufgelistet und wie von Dir beschrieben "durchsucht" werden. Hintergrund: Es handelt sich um einen Pfad mit Projektordnern. Je nach Projektstatus müssen verschiedene Ordner und Dateien enthalten sein. Der Code soll eine Kontrolle sein, ob alle vorgegebenen Ordner und Dateien zum jeweiligen Zeitpunkt vorhanden sind. Die Ordner und Dateien werde ich zukünftig noch im Code weiter ergänzen.
Vielen Dank und beste Grüsse
Anzeige
AW: VBA: Ordner auflisten +
07.08.2022 10:54:43
Oberschlumpf
Hi Henner,
sorry, gestern ging bei mir zu Hause auf einmal vieles "Drunter + Drüber"; deswegen hab ich erst jetzt wieder Zeit.
Den passenden Code hab ich hier gefunden...
https://www.vb-paradise.de/index.php/Thread/118104-VBA-Unterordner-durchsuchen/
...und für dich angepasst
Dabei rausgekommen ist das hier
https://www.herber.de/bbs/user/154538.xlsm
Gestartet wird das Ganze mit dem Makro "main", in dem du vor dem Start dein richtiges "fixes" Verzeichnis eintragen musst!
Dein "fixes Verzeichnis" wird dann nach Unterordnern durchsucht
- alle Gefundenen werden in Spalte A eingetragen
- wenn einer der Unterordner noch einen Unterordner mit Name "Dokumente" enthält, wird in Spalte B ein "x" eingetragen
- wenn in einem Unterordner "...\Dokumente\" eine PDF-Datei mit "Auswertung" als Teil des Dateinamens enthalten ist, wird auch in Spalte C ein "x" eingetragen
Beachte die vielen Kommentare im Code.
Hilfts?
Ciao
Thorsten
Anzeige
AW: Vielen Dank!
07.08.2022 13:52:49
Henner
Hallo Thorsten
Funktioniert einwandfrei - vielen Dank dafür!
Lediglich den Ordnernamen in Spalte A lasse ich ohne Pfad eintragen

.Range("A" & lloRNext).Value = Mid$(oSubfolder, InStrRev(oSubfolder, "\") + 1)
Nochmals vielen Dank und Dir einen tollen Sonntag!
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Alle Ordner und Dateien mit Excel VBA auflisten


Schritt-für-Schritt-Anleitung

Um alle Ordner und die entsprechenden Dateien in Excel zu listen, kannst Du den folgenden VBA-Code verwenden. Dieser Code durchsucht ein festgelegtes Verzeichnis nach Ordnern und prüft, ob der Unterordner "Dokumente" vorhanden ist. Zudem wird überprüft, ob sich im Unterordner "Dokumente" eine PDF-Datei mit "Auswertung" im Dateinamen befindet.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere und füge den folgenden Code ein:
Sub main()
    Dim fso As Object
    Dim folder As Object
    Dim subfolder As Object
    Dim i As Integer
    Dim path As String
    Dim documentsFolder As String
    Dim pdfFound As Boolean

    ' Setze den Pfad zu deinem Verzeichnis
    path = "C:\Dein\Pfad\Hier"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(path)

    i = 1
    For Each subfolder In folder.SubFolders
        Cells(i, 1).Value = subfolder.Name
        documentsFolder = subfolder.Path & "\Dokumente"
        If fso.FolderExists(documentsFolder) Then
            Cells(i, 2).Value = "X"
            pdfFound = False

            ' Überprüfe, ob eine PDF-Datei mit "Auswertung" im Namen vorhanden ist
            For Each file In fso.GetFolder(documentsFolder).Files
                If InStr(1, file.Name, "Auswertung", vbTextCompare) > 0 And LCase(fso.GetExtensionName(file.Name)) = "pdf" Then
                    pdfFound = True
                End If
            Next file

            If pdfFound Then
                Cells(i, 3).Value = "X"
            End If
        End If
        i = i + 1
    Next subfolder
End Sub
  1. Ändere den Pfad in der Zeile path = "C:\Dein\Pfad\Hier" zu Deinem gewünschten Verzeichnis.
  2. Schließe den VBA-Editor und führe das Makro main aus.

Häufige Fehler und Lösungen

  • Fehler: "Pfad nicht gefunden"

    • Überprüfe, ob der angegebene Pfad korrekt ist und existiert.
  • Fehler: "Unterordner nicht gefunden"

    • Stelle sicher, dass der Unterordner "Dokumente" tatsächlich in den jeweiligen Ordnern vorhanden ist.
  • PDF-Datei wird nicht gefunden

    • Überprüfe, ob die PDF-Datei das Wort "Auswertung" im Dateinamen enthält und sich im korrekten Verzeichnis befindet.

Alternative Methoden

Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du auch auf Power Query zurückgreifen, um Daten aus Ordnern zu importieren. Hierbei kannst Du auch nach bestimmten Dateinamen filtern.

  1. Gehe zu Daten > Daten abrufen > Aus Datei > Aus Ordner.
  2. Wähle den gewünschten Ordner aus und klicke auf OK.
  3. Verwende die Filteroptionen, um nur die gewünschten Dateien anzuzeigen.

Praktische Beispiele

Wenn Du eine Diplomarbeit drucken und binden möchtest, kannst Du den oben genannten VBA-Code anpassen, um spezifische Ordner für die Verwaltung Deiner Dokumente zu erstellen. Du könntest den Code so erweitern, dass er zusätzlich nach Word-Dokumenten oder anderen Dateitypen sucht.


Tipps für Profis

  • Nutze Option Explicit am Anfang Deines VBA-Codes, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Füge Kommentare in Deinen Code ein, um die Funktionsweise zu erklären und die Wartbarkeit zu erhöhen.
  • Experimentiere mit FileSystemObject, um weitere Informationen über Dateien und Ordner abzurufen, wie z.B. Erstellungsdatum oder Größe.

FAQ: Häufige Fragen

1. Kann ich den Code auch für andere Dateitypen anpassen?
Ja, Du kannst den Code anpassen, um nach anderen Dateitypen zu suchen, indem Du die Bedingung zur Überprüfung des Dateityps änderst.

2. Funktioniert dieser Code auch in Excel Online?
Der VBA-Code funktioniert nur in der Desktop-Version von Excel, nicht in Excel Online.

3. Wie kann ich den Code erweitern, um auch Unterordner zu durchsuchen?
Du kannst eine rekursive Funktion implementieren, die auch die Unterordner durchsucht. Dies kann jedoch den Code komplexer machen.

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