Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Ordner zählen

Ordner zählen
steffen
Hallo,
ist es möglich, per VBA die Anzahl der Ordner zu zählen, die sich in einem Verzeichnis befinden?
also ich möchte wissen, wieviele Ordner (ohne weitere Unterordner) befinden sich in C:\Test
Gruß
Steffen
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Ordner zählen
07.06.2010 19:35:38
ing.grohn
Hallo,
probier mal:
Sub DateienAuflisten()
Dim i  As Long
Const verz = "C:\Users\Ing.Grohn\Documents\"               '"C:\Eigene Dateien\"
Load UF_Dateiliste
On Error GoTo Fehler
ChDir verz
Sheets("Tabelle1").Activate
Range("A1").Select
With Application.FileSearch
.NewSearch
.LookIn = verz
.SearchSubFolders = False
.FileType = msoFileTypeAllFiles
.Execute
For i = 1 To .FoundFiles.Count
cells(i,1).value=  .FoundFiles(i)
Next i
End With
UF_Dateiliste.Show
Exit Sub
Fehler:
MsgBox "Es gibt kein Verzeichnis mit dem Namen " & verz
'msofileType kann eine der folgenden MsoFileType-Konstanten sein:
'msofileTypeAllFiles
'msofileTypeBinders
'msofileTypeCalendarItem
'msofileTypeContactItem
'msofileTypeCustom
'msofileTypeDatabases
'msofileTypeDataConnectionFiles
'msofileTypeDesignerFiles
'msofileTypeDocumentImagingFiles
'msofileTypeExcelWorkbooks
'msofileTypeJournalItem
'msofileTypeMailItem
'msofileTypeNoteItem
'msofileTypeOfficeFiles
'msofileTypeOutlookItems
'msofileTypePhotoDrawFiles
'msofileTypePowerPointPresentations
'msofileTypeProjectFiles
'msofileTypePublisherFiles
'msofileTypeTaskItem
'msofileTypeTemplates
'msofileTypeVisioFiles
'msofileTypeWebPages
'msofileTypeWordDocuments
End Sub

Mit freundlichen Grüßen
Albrecht
Anzeige
Ordner zählen mit Dir()
07.06.2010 19:58:20
Erich
Hi Steffen,
probier mal (steht so ähnlich in der VBA-Hilfe zu Dir()):

Option Explicit
Sub AnzVerz()
Dim strT As String, lngA As Long
Const strVz As String = "c:\test\"
strT = Dir(strVz, vbDirectory)
If strT  "" Then
If strT  "." And strT  ".." And _
(GetAttr(strVz & strT) And vbDirectory) = vbDirectory Then
lngA = lngA + 1
'         Debug.Print lngA & " " & strT
End If
While strT  ""
If strT  "." And strT  ".." And _
(GetAttr(strVz & strT) And vbDirectory) = vbDirectory Then
lngA = lngA + 1
'            Debug.Print lngA & " " & strT
End If
strT = Dir
Wend
End If
MsgBox lngA & " Verzteichnisse in " & strVz
End Sub

@Albrecht: FileSearch würde ich nicht mehr verwenden - ab XL12 (2007) gibt es das FileSearch-Objekt nicht mehr.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Ordner zählen mit Dir() - einfacher
07.06.2010 20:02:00
Erich
Hi,
das geht auch einfacher:

Option Explicit
Sub AnzVerz2()
Dim strT As String, lngA As Long
Const strVz As String = "f:\exc\"
strT = Dir(strVz, vbDirectory)
While strT  ""
If strT  "." And strT  ".." And _
(GetAttr(strVz & strT) And vbDirectory) = vbDirectory Then
lngA = lngA + 1
Debug.Print lngA & " " & strT
End If
strT = Dir
Wend
MsgBox lngA & " Verzteichnisse in " & strVz
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: für Erich
07.06.2010 20:08:50
ing.grohn
Hallo Erich, werd ich beherzigen
Albrecht
Knuffen...
09.06.2010 10:45:33
steffen
...werd ich mal mit den Vorschlägen, schon toll, wie Ihr Euch auskennt..
Gruß Steffen
;
Anzeige
Anzeige

Infobox / Tutorial

Ordner zählen in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um die Anzahl der Ordner in einem bestimmten Verzeichnis mit VBA zu zählen, gehe wie folgt vor:

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

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)", wähle Einfügen und dann Modul.

  3. Kopiere den folgenden Code in das Modul:

    Option Explicit
    Sub AnzVerz()
        Dim strT As String, lngA As Long
        Const strVz As String = "C:\Test\" ' Hier den Pfad anpassen
        strT = Dir(strVz, vbDirectory)
        If strT <> "" Then
            If strT <> "." And strT <> ".." And _
            (GetAttr(strVz & strT) And vbDirectory) = vbDirectory Then
                lngA = lngA + 1
            End If
            While strT <> ""
                If strT <> "." And strT <> ".." And _
                (GetAttr(strVz & strT) And vbDirectory) = vbDirectory Then
                    lngA = lngA + 1
                End If
                strT = Dir
            Wend
        End If
        MsgBox lngA & " Verzeichnisse in " & strVz
    End Sub
  4. Passe den Pfad (strVz) zu dem Verzeichnis an, dessen Ordner du zählen möchtest.

  5. Führe das Makro aus: Drücke F5 oder gehe zu Run > Run Sub/UserForm.


Häufige Fehler und Lösungen

  • Fehler: "Es gibt kein Verzeichnis mit dem Namen"

    • Lösung: Überprüfe den angegebenen Pfad. Stelle sicher, dass das Verzeichnis existiert und der Pfad korrekt ist.
  • Fehler: "Typ nicht definiert"

    • Lösung: Stelle sicher, dass alle notwendigen Bibliotheken aktiviert sind. In der Regel ist dies kein Problem, wenn du Standard VBA-Funktionen verwendest.

Alternative Methoden

Wenn du keine VBA verwenden möchtest, kannst du auch die Windows-Eingabeaufforderung nutzen, um die Anzahl der Ordner zu zählen:

  1. Öffne die Eingabeaufforderung (cmd).
  2. Wechsle zu dem gewünschten Verzeichnis mit cd C:\Test.
  3. Verwende den Befehl:
    dir /ad /b | find /c /v ""

    Dieser Befehl zählt die Anzahl der Ordner im angegebenen Verzeichnis.


Praktische Beispiele

Hier sind einige Beispiele, wie der VBA-Code angepasst werden kann:

  • Zählen der Ordner in einem anderen Verzeichnis:

    Ändere den Wert von Const strVz:

    Const strVz As String = "D:\Projekte\"
  • Verwendung von Debug.Print um die Ordnernamen anzuzeigen:

    Füge Debug.Print strT innerhalb der While-Schleife hinzu, um die Namen der gefundenen Ordner im Direktfenster anzuzeigen.


Tipps für Profis

  • Verwende Error Handling: Um sicherzustellen, dass dein Makro nicht abstürzt, füge eine Fehlerbehandlungsroutine hinzu:

    On Error Resume Next
  • Optimiere die Leistung: Wenn du mit großen Verzeichnissen arbeitest, kann es hilfreich sein, die Berechnung in Excel vorübergehend zu deaktivieren, um die Ausführungsgeschwindigkeit zu erhöhen:

    Application.Calculation = xlCalculationManual

FAQ: Häufige Fragen

1. Kann ich den Code anpassen, um auch Unterordner zu zählen?
Ja, du kannst eine rekursive Funktion erstellen, wenn du auch Unterordner zählen möchtest.

2. Welche Excel-Version wird benötigt?
Der oben angegebene Code funktioniert ab Excel 2007 (XL12) und höher. Achte darauf, dass das FileSearch-Objekt in neueren Versionen entfernt wurde.

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