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

@Daniel / Nachfrage zu: Prüfen ob Verzeichnis leer

Forumthread: @Daniel / Nachfrage zu: Prüfen ob Verzeichnis leer

@Daniel / Nachfrage zu: Prüfen ob Verzeichnis leer
20.12.2024 10:08:15
earlycon
Moin Daniel,
bitte entschuldige, dass ich versuche auf diese Weise Kontakt zu Dir aufzunehmen, aber ich habe noch eine Nachfrage zu Deinem Code aus Thread
https://www.herber.de/forum/archiv/1996to2000/1999353_Pruefen_ob_Verzeichnis_Unterverzeichnisse_leer.html#1999373

Deinen Code finde ich unfassbar gut, konnte ihn bis heute aber leider nicht wirklich verstehen, was da genau passiert.
Ich würde gerne auswählen können (z.B. durch ein x in einer Zelle oder eine Checkbox), ob Unterverzeichnisse berücksichtigt werden sollen, oder eben nur das Hauptverzeichnis. Würdest Du mir dabei bitte noch auf die Sprünge helfen ? Das wäre sehr nett von Dir.

Vielen herzlichen Dank.
Gruß Stefan
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: @Daniel / Nachfrage zu: Prüfen ob Verzeichnis leer
20.12.2024 15:10:44
Piet
Hallo

aus dem Teilcode bin ich nicht schlauf geworden. Kannst du bitte mal den ganzen Code hochladen.

mfg Piet
AW: @Daniel / Nachfrage zu: Prüfen ob Verzeichnis leer
20.12.2024 18:46:44
daniel
Hi

Das Prinzip ist eigentlich einfach:

Die innere Do-Schleife wiederholt die DIR-Funktion, welche bei wiederholter Ausführung ohne Pfadangabe immer die nächste Datei oder Unterverzeichnis aus dem zuletzt angegeben Verzeichnis ermittelt.

Die äußere DO-schleife läuft über die Werte des Arrays Pfade, welche die Verzeichnisse,die durchsucht werden sollen, enthält.
Damit die Unterverzeichnisse auch durchsucht werden, werden diese dem Array Pfade hinzugefügt, das passiert in diesem Abschnitt

ElseIf (GetAttr(pfade(p) & "\" & x) And vbDirectory) = vbDirectory Then

ReDim Preserve pfade(UBound(pfade) + 1)
pfade(UBound(pfade)) = pfade(p) & "\" & x
ReDim Preserve zähler(UBound(pfade))
Else


Wenn man also nur das angegebene Verzeichnis ohne dessen Unterverzeichnisse durchsuchen will, muss man diesen Teil weglassen.

Um das über eine Checkbox schaltbar zu machen, gehe so vor:
1.erstelle die Checkbox und verküpfe sie mit einer Ausgabezelle, welche dann den Checkboxzustand als WAHR oder FALSCH entält, beispielsweise die Zelle A1 im Blatt Tabelle1.

2. Erweitere den gezeigten Abschnitt des Codes so:
        ElseIf (GetAttr(pfade(p) & "\" & x) And vbDirectory) = vbDirectory Then

If Sheets("Tabelle").Range("A1").Value then
ReDim Preserve pfade(UBound(pfade) + 1)
pfade(UBound(pfade)) = pfade(p) & "\" & x
ReDim Preserve zähler(UBound(pfade))
End if
Else


Gruß Daniel
Anzeige
AW: @Daniel / Nachfrage zu: Prüfen ob Verzeichnis leer
21.12.2024 13:29:29
earlycon
Moin Daniel, ich kann gar nicht ausdrücken, wie sehr ich mich über Deine Antwort und Deine Hilfsbereitschaft freue 😊 Danke für die Erklärung des Codes, jetzt blicke ich da mehr durch. Es ist schon wahnsinnig cool, was man in Excel alles machen kann. Ich bin jetzt im Urlaub und werde die Checkbox und Code dann im neuen Jahr einpflegen und hoffe, dass ich Dich dann nicht mehr mit Rückfragen nerve 😄 Kann man dich evtl. sonst irgendwie erreichen... ? 🙈
Ich wünsche Dir ein schönes und ruhiges Weihnachtsfest und einen guten Start in 2025
Viele Grüße
Stefan
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18