Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1808to1812
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

Datei-Anzahl mit Kriterium Zählen

Datei-Anzahl mit Kriterium Zählen
07.02.2021 14:47:58
Ulrich
Hallo,
ich habe folgendes Problem.
In Zelle A10 des Arbeitsblatt möchte ich die Anzahl der Dateien vom aktuellen Ordner und Unterordner, welche mit "AB_" anfangen, und ins Zelle A11 die Anzahl der Dateien welche mit "AD_" anfangen als Wert notiert haben.
Wenn möglich schon beim Öffnen der Datei ohne das Makro zu starten.
Ich habe leider nicht passendes gefunden.
Kann mir jemand helfen?
Danke vorab.
Gruß Ulli

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: dürfte mit PowerQuery realisierbar sein owT
07.02.2021 14:57:29
neopa
Gruß Werner
.. , - ...
AW: dürfte mit PowerQuery realisierbar sein owT
07.02.2021 16:00:20
Ulrich
Hallo Werner,
vielen Dank für deinen Hinweis.
Vielleicht hat noch jemand eine Idee mit einem VBA Code.
Viele Grüße Ulli
AW: Powershell
07.02.2021 15:57:53
Fennek
Hallo,
mit Powershell geht das so:

$file = get-childitem 'c:\temp' -Filter  p*.txt -Recurse
$file.Length

VBA kann direkt Powershell aufrufen, aber einige Anti-Viren-Software geht dazwischen. Mit einigen Tricks geht es trotzdem. Die Frage ist, ob Du das möchtest.
mfg
AW: Powershell
07.02.2021 16:25:26
Ulrich
Hallo Fennek,
danke für den Hinweis.
Die Datei wird schon mal von unterschiedlichen Rechnern gestartet, da sind mit Powershell leider Probleme zu erwarten.
Gruß Ulli
Anzeige
AW: Powershell
07.02.2021 17:32:31
Ulrich
Hallo,
mit folgendem Code bin ich schon weiter gekommen, aber er liest nicht die Unterordnen aus.
Kann jemand helfen.
(Und gibt es eine möglich das Makro so einzubinden dass die Zahlen automatisch aktualisiert werden?)
Gruß Ulli
Sub Anzahl_Dateien()
Dim FolderPath As String, path As String, count As Integer
FolderPath = ThisWorkbook.path & ("\")
path = FolderPath & "\BA_*.*"
Filename = Dir(path)
Do While Filename  ""
count = count + 1
Filename = Dir()
Loop
Range("E10").Value = count
'MsgBox count & " : files found in folder"
End Sub

Anzeige
AW: rekursiver Aufruf
07.02.2021 17:48:23
Fennek
Hallo,
im CMD geht das sehr einfach:

dir /b /s GM*.*
Hier ist meine Musterlösung für einen rekursivern Aufruf in VBA. Anpassen musst Du ihn selbst:

'https://stackoverflow.com/questions/22645347/loop-through-all-subfolders-using-vba
Dim FSO As Object
Dim List As String
Sub All_Files_in_SubFolders()
Pfad = "C:\temp"
Set FSO = CreateObject("Scripting.FileSystemObject")
Call DoFolder(FSO.GetFolder(Pfad), "txt") 'Basis-Pfad und Extension
Debug.Print List
End Sub
Function DoFolder(Folder, ByVal Ext As String)
For Each Fld In Folder.SubFolders
Call DoFolder(Fld, Ext)
Next
Dim File
For Each File In Folder.Files
If FSO.getExtensionName(File) = Ext Then
'Debug.Print Folder, File.Name
'Debug.Print File.Path
List = List & vbCrLf & File.Path
End If
Next
End Function
mfg
Anzeige
AW: rekursiver Aufruf
07.02.2021 18:05:44
Ulrich
Hallo Fennek,
danke für deine Mühe.
Mit dem Code und der angehängten "Function" Anweisung komme ich nicht klar, meine VBA Kenntnisse reichen dafür leider nicht.
Mein Code läuft ja, er sucht im aktuellen Ordner, ist es nicht möglich noch auf die Unterordner zu verweisen. (Ich habe hinter Thisworkbook.path noch das & ("\") ergänzt, aber das reicht wohl nicht)
Gruß Ulli
Sub Anzahl_Dateien()
Dim FolderPath As String, path As String, count As Integer
FolderPath = ThisWorkbook.path & "\"
path = FolderPath & "\BA_*.*"
Filename = Dir(path)
Do While Filename  ""
count = count + 1
Filename = Dir()
Loop
Range("E10").Value = count
'MsgBox count & " : files found in folder"
path = FolderPath & "\GB_*.*"
Filename = Dir(path)
Do While Filename  ""
count = count + 1
Filename = Dir()
Loop
Range("E11").Value = count
End Sub

Anzeige
AW: nicht komplizierter als ...
07.02.2021 18:16:57
Fennek
Hallo,
ja, rekursive Aufrufe sind nicht Teil des Grundkurses, deshalb mein Hinweis auf CMD und Powershell.
Die entscheidende Frage ist: Wieviele Level an Unterordner gibt es? Falls es nur eine Ebene gibt, kann FSO das mit FSO.SubFolder erledigen. Wenn es mehrere Ebenen gibt, wird der rekursive Aufruf benötigt.
Wenn dir das zu komplex ist, nutze CMD/Powershell
mfg
AW: nicht komplizierter als ...
07.02.2021 18:27:46
Ulrich
Hallo Fennek,
danke, ja das ist nur eine Ebene.
Ich versuche noch weiter :-)
Gruß Ulli
AW: Datei-Anzahl mit Kriterium Zählen
07.02.2021 19:03:47
Nepumuk
Hallo Ulli,
du hast doch schon alles, du musst es nur anwenden:
https://www.herber.de/bbs/user/143704.xlsm
Schau ins Modul3 und in die Tabelle1.
Gruß
Nepumuk
Anzeige
AW: Datei-Anzahl mit Kriterium Zählen
07.02.2021 19:35:37
Nepumuk
Ooooooooooooops,
du musst noch eine Zeile im Modul3 ergänzen:
.SearchLike = pvstrFileName & "*"

Gruß
Nepumuk
AW: Datei-Anzahl mit Kriterium Zählen
07.02.2021 19:43:48
Ulrich
Hallo Nepumuk,
ich habe den Code vom Modul 3 in ein Modul der Datei gepackt.
Was mache ich dann mit =Zählen("AB_";JETZT())
Wo muss ich das eingeben?
Ich habe es in eine Zelle gepackt, aber da passiert nichts
Gruß Ulli
Anzeige
AW: Datei-Anzahl mit Kriterium Zählen
07.02.2021 19:51:18
Nepumuk
Hallo Ulli,
hast du auch mein Oooooooops eingebaut?
Kopiere einfach mal die hochgeladene Datei in deinem Ordner, dann ergänze die Zeile im Modul3 und drück in einer leeren Zelle der Tabelle1 auf Entf
Gruß
Nepumuk
AW: Datei-Anzahl mit Kriterium Zählen
07.02.2021 20:00:19
Ulrich
Hallo Nepumuk,
ja, jetzt hat er gerechnet,
aber wenn ich irgendwo eine Ziffenfolge mit AB_ eingebe zählt er die nicht dazu.
Ganz doofe Frage, bekommt man folgenden Code nicht ans laufen, der funktioniert soweit, aber die Unterverzeichnisse werden nicht ausgewertet?
Gruß Ulli

Sub Anzahl_Dateien()
Dim FolderPath As String, path As String, count As Integer
FolderPath = ThisWorkbook.path & "\"
path = FolderPath & "\" & "BA_*.*"
Filename = Dir(path)
Do While Filename  ""
count = count + 1
Filename = Dir()
Loop
Range("E10").Value = count
'MsgBox count & " : files found in folder"
path = FolderPath & "\GB_*.*"
Filename = Dir(path)
Do While Filename  ""
count = count + 1
Filename = Dir()
Loop
Range("E11").Value = count
End Sub

Anzeige
AW: Datei-Anzahl mit Kriterium Zählen
07.02.2021 20:08:16
Nepumuk
Hallo Ulli,
aber wenn ich irgendwo eine Ziffernfolge mit AB_ eingebe zählt er die nicht dazu.
1. Es werden Dateien gezählt welche mit AB_ beginnen, nicht Zellen.
2. Da musst du in einer eigenen Funktion erst alle Verzeichnisse in ein Array einlesen und dann jeden Ordner im Array abklappern.
Gruß
Nepumuk
AW: Datei-Anzahl mit Kriterium Zählen
07.02.2021 21:12:00
Ulrich
Hallo Nepumuk,
danke für deine Mühen.
Ich werde es morgen noch einmal versuchen.
Ich hätte gedacht das es doch möglich wäre mit meinem Code nicht nur das aktuelle Verzeichnis, sondern auch auch die Unterverzeichnisse auszulesen.
Danke noch einmal
Viele Grüße Ulli
Anzeige
AW: Datei-Anzahl mit Kriterium Zählen
08.02.2021 08:30:31
Ulrich
Hallo Nepumuk,
es läuft jetzt einwandfrei.
Der Fehler war, dass ich ein Makro Namens "Zählen" hatte und deshalb bei der Formel die Fehlermeldung kam.
Vielen Dank noch einmal für deine Hilfe, super Lösung.
Gruß Ulli

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige