Anzeige
Archiv - Navigation
1032to1036
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

Dateiordner zählen

Dateiordner zählen
29.12.2008 12:21:00
Thomas
Hallo zusammen,
ich brauche folgende Funktion in einer Datei.
1.) Es sollen alle Sheets gezählt werden und der Wert in der Tabelle1 / Zelle A1 eingetragen werden.
Als Formel oder VBA-Code.
Es gibt da ja den Code: ThisWorkbook.Sheets.Count
Ich weiß aber nicht, wie ich ihn in Verbindung zur Zelle A1 bekomme.
2.) Ich brauche die Summe aller Dateiordner, die sich z.B. unter C:\Eigene Dateien befinden. Die Summe soll dann in einer Exceldatei in Tabelle1 / Zelle A1 eingefügt werden.
Wahrscheinlich nur als VBA Code.
Kann mir jemand von Euch weiter helfen?
Vielen Dank vorab.
Gruß
Thomas

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiordner zählen
29.12.2008 12:28:30
Tino
Hallo,
in ein Modul
Function AnzahlTabellen() As Integer
 AnzahlTabellen = ThisWorkbook.Sheets.Count
End Function


In Deine Zelle schreibst Du diese Formel.
=AnzahlTabellen()
Gruß Tino

AW: Dateiordner zählen
29.12.2008 14:46:11
Thomas
Das hat jetzt geklappt.
AW: Dateiordner zählen
29.12.2008 13:31:01
Tino
Hallo,
Du hast mich mit ThisWorkbook.Sheets.Count in die Irre geführt. ;-)
Versuche es mal so
In ein Modul
Option Explicit

Dim FSO As Object, myFolders As Object, unterordner As Object
Dim ordner As Long
Function ZaehleOrdner()
Set FSO = CreateObject("Scripting.filesystemobject")
Set myFolders = FSO.getfolder(Environ("USERPROFILE") & "\Eigene Dateien")
 Call Zaehlung

ZaehleOrdner = ordner
End Function
Sub Zaehlung()
On Error GoTo KeinZugriff:
    ordner = ordner + myFolders.subfolders.Count
    For Each unterordner In myFolders.subfolders
     Set myFolders = FSO.getfolder(unterordner)
     Zaehlung
    Next
KeinZugriff:
End Sub


In Deine Zelle schreibst Du
=ZaehleOrdner()
Gruß Tino

Anzeige
AW: Dateiordner zählen
29.12.2008 14:36:00
Thomas
Hey Tino,
hoffe Du hattest ein schönes Fest.
Leider funktioniert das so nicht, #WERT!.
AW: Dateiordner zählen
29.12.2008 14:38:37
Thomas
Kann ich das Summieren der Ordner nich als Sub anstelle von Function anlegen?
So dass ich die Zelle im Code benenne.
AW: Dateiordner zählen
29.12.2008 14:44:38
Tino
Hallo,
geht auch, teste mal so.

Option Explicit
Dim FSO As Object, myFolders As Object, unterordner As Object
Dim ordner As Long
Sub ZaehleOrdner()
Set FSO = CreateObject("Scripting.filesystemobject")
Set myFolders = FSO.getfolder(Environ("USERPROFILE") & "\Eigene Dateien")
Call Zaehlung
Sheets("Tabelle1").Range("A1") = ordner
End Sub
Sub Zaehlung()
On Error GoTo KeinZugriff:
ordner = ordner + myFolders.subfolders.Count
For Each unterordner In myFolders.subfolders
Set myFolders = FSO.getfolder(unterordner)
Zaehlung
Next
KeinZugriff:
End Sub


Gruß Tino

Anzeige
AW: Dateiordner zählen
29.12.2008 14:53:49
Tino
Hallo,
habe beide Versionen getestet, beide Versionen funktionieren bei mir.
Getestet unter xl2003 und xl2007
Win XP und Vista
Wobei bei Vista der Ordner nicht Eigene Dateien heißt, den muss man dann anpassen.
Gruß Tino
AW: Dateiordner zählen
29.12.2008 15:03:00
Thomas
Hi Tino,
ich glaube ich weiß warum es nicht geht.
C:\Eigene Dateien war ein Beispiel.
Mein Verzeichnis heißt richtig: K:\Abrechnung\Orte
Könnte es damit zusammenhängen?
Ja oT.
29.12.2008 15:08:14
Tino
AW: Ja oT.
29.12.2008 15:29:00
Thomas
oT.?
AW: Ja oT.
29.12.2008 15:43:53
Tino
Hallo,
ja, ohne Text
oT. = ohne Text
Gruß Tino
AW: Ja oT.
29.12.2008 16:10:00
Thomas
Habe es nun verstanden.
oT. = ohne Text
Ich hoffe ich brauche kein weiteres mal um Hilfe zu bitten, aber es funktioniert leider noch nicht.
Es sollen die Unterordner aus "Orte" gezählt werden.

Option Explicit
Dim FSO As Object, myFolders As Object, unterordner As Object
Dim ordner As Long
Function ZaehleOrdner()
Set FSO = CreateObject("Scripting.filesystemobject")
Set myFolders = FSO.getfolder(Environ("K:") & "\Abrechnung\Orte")
Call Zaehlung
ZaehleOrdner = ordner
End Function
Sub Zaehlung()
On Error GoTo KeinZugriff:
ordner = ordner + myFolders.subfolders.Count
For Each unterordner In myFolders.subfolders
Set myFolders = FSO.getfolder(unterordner)
Zaehlung
Next
KeinZugriff:
End Sub


So habe ich nun den Befehl geändert, was habe ich falsch gemacht, dass es nicht klappt?
Danke für die Geduld.
Gruß
Thomas

Anzeige
AW: Ja oT.
29.12.2008 16:19:00
Tino
Hallo,
schreibe vom Pocket.
Schreibe den Pfad ohne Environ(), nur den Pfad "K:\Orte"
AW: Ja oT.
29.12.2008 16:16:08
Tino
Hallo,
ja, ohne Text
oT. = ohne Text
Gruß Tino
AW: Ja oT.
29.12.2008 16:22:01
Thomas
Heißt oT. = ohne Text: Du hast genug und willst mir nicht mehr weiter helfen? Sonst verstehe ich diese Antwort nicht.
AW: Ja oT.
29.12.2008 16:32:08
Thomas
OK, habe deine richtige Antwort gerade gefunden. Irgendwie tauchte deine Antwort ein zweites mal auf. ;-) Danke, ich versuche es direkt mal.
AW: Ja oT.
29.12.2008 16:32:00
Tino
Hallo,
ich bin unterwegs und muss vom Pocket schreiben.
Ich habe doch nur auf Deine Frage geantwortet.
Gruß Tino
AW: Ja oT.
29.12.2008 16:46:05
Thomas
Ist doch alles OK, aus irgend einem Grund kam die Antwort ein zweites mal.
Es hat jetzt auch geklappt. Leider scheint darin ein Fehler zu sein. Er summiert mir 25, wenn ich die Formel dann noch mal eingebe, dann bekomme ich 50, beim nächsten mal dann 75 usw. angezeigt.
Der Ordner enthält jedoch nur 23 Ordner. Hast Du eine Ahnung woran es liegt?
Die Abfrage soll jeden Monat gemacht werden.
Gruß
Thomas
Anzeige
AW: Ja oT.
29.12.2008 16:55:33
Thomas
PS: So habe ich es nun angelegt:

Option Explicit
Dim FSO As Object, myFolders As Object, unterordner As Object
Dim ordner As Long
Function ZaehleOrdner()
Set FSO = CreateObject("Scripting.filesystemobject")
Set myFolders = FSO.getfolder("K:\Abrechnung\Orte")
Call Zaehlung
ZaehleOrdner = ordner
End Function
Sub Zaehlung()
On Error GoTo KeinZugriff:
ordner = ordner + myFolders.subfolders.Count
For Each unterordner In myFolders.subfolders
Set myFolders = FSO.getfolder(unterordner)
Zaehlung
Next
KeinZugriff:
End Sub


AW: Ja oT.
29.12.2008 16:55:39
Thomas
PS: So habe ich es nun angelegt:

Option Explicit
Dim FSO As Object, myFolders As Object, unterordner As Object
Dim ordner As Long
Function ZaehleOrdner()
Set FSO = CreateObject("Scripting.filesystemobject")
Set myFolders = FSO.getfolder("K:\Abrechnung\Orte")
Call Zaehlung
ZaehleOrdner = ordner
End Function
Sub Zaehlung()
On Error GoTo KeinZugriff:
ordner = ordner + myFolders.subfolders.Count
For Each unterordner In myFolders.subfolders
Set myFolders = FSO.getfolder(unterordner)
Zaehlung
Next
KeinZugriff:
End Sub


Anzeige
AW: Ja oT.
29.12.2008 17:18:10
Tino
Hallo,
schreibe nach der Function als erste Zeile
ordner=0
Kann leider nicht anders schreiben, vom Pocket gehts nicht so gut.
Gruß Tino
Wieder mal geschafft....
29.12.2008 22:17:40
Thomas
Danke Tino, das war des Rätsels Lösung. :-)
Danke auch für die Unterstätzung von unterwegs.
Bis zum nächsten mal.
Liebe Grüße
Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige