Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zählen von Dateien in Ordnern

Zählen von Dateien in Ordnern
15.11.2019 11:45:59
Dateien
Hallo,
ich habe ein bestimmt für euch winziges Einsteigerproblem. Ich habe in VBA Excel ein Makro geschrieben, das bestimmte Dateien in bestimmten Ordnern zählt.
Das funktioniert zwar aber da es zehn Ordner sind habe ich viel Text geschrieben. Ein Bekannter meinte man köönte das mit Schleifen vereinfachen Do until und so.
Also er soll die Ordner Kunden A, Kunden B, Kunden C, Kunden D oder Kunden1, Kunden2 usw. kann ich entweder so oder so benennen.
Mein Programm soll nun diesen Zählprozess so oft durchlaufen wie ich Ordner habe und solange zählen bis z.B. Kunden10!
Dann erfolgt die Ausgabe der Anzahl in ein Worksheet getrennt nach Ordner also für alle ORDNER! lngFileCounter + 1 (Ende der Zählung habe ich über vbNullString definiert!
Wie erreiche ich das jetzt?

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zählen von Dateien in Ordnern
15.11.2019 12:49:06
Dateien
Hallo Lisa,
hier ein entsprechendes Makro.
Der Hauptordner wird in einem Dialog ausgewählt. Du kannst den Ordnernamen im Code natürlich auch fest der Variablen varfolder zuweisen und den Dialog weglassen.
LG
Franz
Sub DateienZaehlen()
Dim fso As Object
Dim objFolder As Object
Dim objSubFolder As Object
Dim varfolder
Dim wks As Worksheet
Dim Zeile As Long
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Bitte Hauptordner mit den zu durchsuchenden Unterverzeichnissen wählen"
If .Show = -1 Then
varfolder = .SelectedItems(1)
Else
Exit Sub
End If
End With
Set fso = VBA.CreateObject("Scripting.FileSystemObject")
Set objFolder = fso.getfolder(varfolder)
For Each objSubFolder In objFolder.subFolders
If Left(objSubFolder.Name, Len("Kunden")) = "Kunden" Then
If wks Is Nothing Then
'Neue Arbeitsmappe mit einem Tabellenblatt anlegen für Ausgabe
Workbooks.Add Template:=xlWBATWorksheet
Set wks = ActiveWorkbook.Worksheets(1)
Zeile = 1
With wks
.Cells(Zeile, 1) = "Ordner"
.Cells(Zeile, 2) = varfolder
Zeile = 3
.Cells(Zeile, 1) = "Unter-Ordner"
.Cells(Zeile, 2) = "Anzahl Dateien"
End With
End If
'Debug.Print objSubFolder.Name & " - Dateien: " & objSubFolder.Files.Count
With wks
Zeile = Zeile + 1
.Cells(Zeile, 1) = objSubFolder.Name
.Cells(Zeile, 2) = objSubFolder.Files.Count
End With
End If
Next
If Zeile > 0 Then wks.Columns(1).AutoFit
Set fso = Nothing: Set objFolder = Nothing: Set objSubFolder = Nothing
Set wks = Nothing
End Sub

Anzeige
AW: Zählen von Dateien in Ordnern
15.11.2019 13:56:57
Dateien
Hallo,
ja, vielen Dank! Aber nehmen wir an die Ordner heißen 1,2, 3usw. kann man dann keine Schliefe machen die hochzählt, also immer Ordner 1, Ordner 2 usw.?
AW: Zählen von Dateien in Ordnern
15.11.2019 15:20:36
Dateien
Hallo Lisa,
man kann so suchen. Allerdings dauert das Makro dann etwas länger, da die Ordnernamen dann 10-mal geprüft werden müssen. Falls jede Endzahl nur einmal in einem Unterordner vorkommt, dann kann man abkürzen und die innere Schleife verlassen, sobald ein Ordner gefunden
Wenn Endzahlen größer 10 vorkommen können, dann muss man eine andere Lösung für die Suche wählen.
LG
Franz
Sub DateienZaehlen_var02()
Dim fso As Object
Dim objFolder As Object
Dim objSubFolder As Object
Dim varfolder
Dim wks As Worksheet
Dim Zeile As Long
Dim iCount As Integer
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Bitte Hauptordner mit den zu durchsuchenden Unterverzeichnissen wählen"
If .Show = -1 Then
varfolder = .SelectedItems(1)
Else
Exit Sub
End If
End With
Set fso = VBA.CreateObject("Scripting.FileSystemObject")
Set objFolder = fso.getfolder(varfolder)
For iCount = 1 To 10
For Each objSubFolder In objFolder.subFolders
'Alle Ordner mit Ziffer am Ende finden
If Right(objSubFolder.Name, Len(Format(iCount, "0"))) = Format(iCount, "0") Then
If wks Is Nothing Then
'Neue Arbeitsmappe mit einem Tabellenblatt anlegen für Ausgabe
Workbooks.Add Template:=xlWBATWorksheet
Set wks = ActiveWorkbook.Worksheets(1)
Zeile = 1
With wks
.Cells(Zeile, 1) = "Ordner"
.Cells(Zeile, 2) = varfolder
Zeile = 3
.Cells(Zeile, 1) = "Unter-Ordner"
.Cells(Zeile, 2) = "Anzahl Dateien"
End With
End If
'Debug.Print objSubFolder.Name & " - Dateien: " & objSubFolder.Files.Count
With wks
Zeile = Zeile + 1
.Cells(Zeile, 1) = objSubFolder.Name
.Cells(Zeile, 2) = objSubFolder.Files.Count
End With
Exit For 'nur wenn jede Endzahl nur einmal im Unterordner vorkommt
End If
Next
Next iCount
If Zeile > 0 Then
With wks
.Columns(1).AutoFit
End With
End If
Set fso = Nothing: Set objFolder = Nothing: Set objSubFolder = Nothing
Set wks = Nothing
End Sub

Anzeige
AW: Alle Dateien auflisten, Anzahl je Ordner etc.
15.11.2019 14:21:01
Dieter(Drummer)
Halli Lisa,
evtl. kannst Du damit etwas anfangen: https://www.herber.de/bbs/user/133241.xlsm
Info: in C2 Laufwerk mit Hauptordner eingeben. Es werden alle Dateien des Kauptordners und Unterordenern mit Hyperlink aufgelistet. Viel Saß damit ...
Gruß, Dieter(Drummer)
Anzeige
AW: Alle Dateien auflisten, Anzahl je Ordner etc.
15.11.2019 15:35:52
Lisa
Danke! Aber bringt mir nichts!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige