Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
616to620
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
616to620
616to620
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dateien zählen

Dateien zählen
03.06.2005 08:37:27
Anton
Hallo Leute,
ich habe ein Makro, daß mir ausgehend von einer Tabelle alle Dateien des verlangten Typs sucht. Das Ergebnis wird für jede Suche auf ein neues Blatt geschrieben.
Das funktioniert auch tadellos.
Nur......
Ich brauche so viel garnicht.
Mein Wunsch ist nur die Zahl (Häufigkeit) in der Spalte D.
Die Tabellen mit den Dateinamen sind für mich ebenfalls un-interessant.
Hier ist die Datei:
https://www.herber.de/bbs/user/23578.xls
Und hier ist das Makro:

Sub ListFiles()
Dim fSearch As FileSearch
Dim strPath As String, strFName As String
Dim blnSubF As Boolean
Dim iCnt As Integer
Dim arrFile() As Variant
Dim lastRow As Long, lRow As Long
Dim wks As Worksheet
Dim wksList As Worksheet
On Error GoTo Errorhandler
Set wksList = Sheets("Liste")
lastRow = IIf(wksList.Range("A65536") <> "", 65536, _
wksList.Range("A65536").End(xlUp).Row)
If lastRow < 2 Then Exit Sub
For lRow = 2 To lastRow
If Not SheetExist("Suche " & lRow - 1) Then
Set wks = Worksheets.Add(after:=Sheets(Sheets.Count))
wks.Name = "Suche " & lRow - 1
Else
Set wks = Sheets("Suche " & lRow - 1)
wks.Cells.ClearContents
End If
If wksList.Cells(lRow, 1) <> "" Then
strPath = wksList.Cells(lRow, 1)
If Right$(strPath, 1) <> "\" Then strPath = strPath & "\"
strFName = wksList.Cells(lRow, 2)
If strFName = "" Then
strFName = "*.*"
Else
strFName = "*." & Replace(Replace(strFName, "*", ""), ".", "")
End If
blnSubF = UCase(wksList.Cells(lRow, 3)) = "JA"
Set fSearch = Application.FileSearch
With fSearch
.NewSearch
.LookIn = strPath
.SearchSubFolders = blnSubF
.FileType = msoFileTypeAllFiles
.Filename = strFName
.MatchAllWordForms = True
.Execute
If .FoundFiles.Count > 0 Then
ReDim arrFile(.FoundFiles.Count - 1, 0)
For iCnt = 0 To .FoundFiles.Count - 1
arrFile(iCnt, 0) = .FoundFiles(iCnt + 1)
Next
End If
End With
wks.Range(wks.Cells(1, 1), wks.Cells(UBound(arrFile, 1), 1)) = arrFile
wks.Columns("A:A").Sort Key1:=wks.Range("A1"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Set wks = Nothing
End If
ReDim arrFile(0, 0)
Next
Errorhandler:
Err.Clear
Resume Next
End Sub


Private Function SheetExist(ByVal sheetName As String, Optional WbName As String) As Boolean
Dim wks As Worksheet
On Error GoTo Errorhandler
If WbName = "" Then WbName = ThisWorkbook.Name
For Each wks In Workbooks(WbName).Worksheets
If wks.Name = sheetName Then SheetExist = True: Exit Function
Next
Errorhandler:
SheetExist = False
End Function

Bitte helft mir.
Ich danke Euch schon jetzt,
Anton

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien zählen
03.06.2005 11:33:42
EffHa
Hallo anton,
nochmal ein neuer versuch.
Habe Dir Deine Tabelle hochgeladen.
siehe Modul3
Sollte eigentlich so laufen, wie es ist.
Gruß
Fritz
wo ist Deine Datei?
03.06.2005 12:50:32
Anton
Hallo Fritz,
sicher hast Du übersehen den Link für Deine Datei hier einzufügen.
Kannst Du das bitte nachholen?
Danke.
Servus,
Anton
AW: Dateien zählen
03.06.2005 14:06:50
EffHa
und nochmal sorry, das war die falsche datei
hier ist die richtige
https://www.herber.de/bbs/user/23606.xls
Anzeige
AW: Dateien zählen
03.06.2005 15:52:44
Anton
Hallo Fritz,
vielen Dank für Deinen Einsatz.
Ich habe aber immer noch Kummer....
Die Zähler bleiben auf null.
An was könnte das liegen?
Netzlaufwerk, Unterordner...
Ich finde in Deinem Code kein "search.subfolder=true".
Oder ist der Unterordner in den Deklarationen versteckt?
Servus,
Anton
AW: Dateien zählen
03.06.2005 16:27:14
EffHa
Ich kann leider Deine Verzeichnisstruktur hier nicht nachbauen.
Das Makro sollte eigentlich alle Dateien mit dem Pattern finden.
versuch es doch mal mit "*.*", oder "*.pdf" als SearchPattern und überprüfe den Wert für "hFile" bzw. "nFile" in der "do-Schleife".
Wenn er was findet, muss er &gt0 sein.
Anzeige
AW: Dateien zählen
03.06.2005 16:28:00
EffHa
Ich kann leider Deine Verzeichnisstruktur hier nicht nachbauen.
Das Makro sollte eigentlich alle Dateien mit dem Pattern finden.
versuch es doch mal mit "*.*", oder "*.pdf" als SearchPattern und überprüfe den Wert für "hFile" bzw. "nFile" in der "do-Schleife".
Wenn er was findet, muss er &gt0 sein.
Übrigens: Unterverzeichnisse werden hier nicht dursucht.
Funktioniert leider garnicht
06.06.2005 10:39:46
Anton
Hallo Fritz,
ich hoffe, Du hattest ein schönes Wochenende.
Zwischenzeitlich habe ich Deine Datei nochmal ausgiebig getestet:
*.pdf in Ordnern die voll sind mit PDF-Dateien. (Netzwerk)
*.* im Ordner Eigene Dateien. (Festplatte C:\)
Egal was ich eingebe, es bleibt bei 0.
Mein Wissen reicht nicht im Entferntesten aus, um zu interpretieren was Du da programmiert hast.
Allein von Deinen Deklarationen wird mir schon schwindlig....
Aber nun nochmal zu meinem Fall:
Die Ordnerstruktur hat im Such-Verzeichnis keine einzige Datei.
Es gibt hier nur 9 Unterordner in denen die gesuchten Dateien wohnen.
Ich werde die Suche öfter Starten um zu sehen ob neue Dateien hinzugekommen sind.
(Erst wenn das der Fall ist, lasse ich mit Excel die Dateienamen suchen und mit den Dateienamen meines Ziel-Ordners vergleichen. -Dieses Tool funktioniert 1a. )
Wäre schön, wenn Du nochmal drüberschauen könntest.
Mein Dank geht in Deine Richtung.
Servus,
Anton
Anzeige
AW: Funktioniert leider garnicht
07.06.2005 15:50:14
EffHa
Hallo Anton,
wie ich bereits in meiner letzten Antwort schrieb, wurden keine Unterverzeichnisse durchsucht.
Dies habe ich jetzt mit eingebaut.
Anbei die Beispieldatei.
Bitte testen und Bescheid.
Bei mir hat es geklappt
https://www.herber.de/bbs/user/23696.xls
Gruß
Fritz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige