Verzeichnisse mit Größe in Excel-Datei - kleines Problem

01/08/2008 - 13:30 von andreas | Report spam
Hallo zusammen,


ich habe ein kleines Script welches mir, ausgehend von einem
Anfangsverzeichnis, alle Unterverzeichnisse und deren Größe anzeigt.
Leider hat sich beim Scripten ein Fehler eingeschlichen - so wird
immer schon bei der ersten Verzeichnisebene die Größe angezeigt,
selbst wenn der Ordner mit den größten Dateien ein oder mehrere Ebenen
darunter liegt.

Hier das Script - ich lasse mal die unwesentlichen Teile weg...

Ordner = "H:\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set Fld = fso.GetFolder(Ordner)
'erstelle Objekt-Variable zum Zugriff auf Excel...
Set objxl = CreateObject("Excel.Application")

With objxl
' Formatiere das Blatt und informiere den Nutzer das er bis zum
Ergebnis noch etwas warten muss...
.Workbooks.Add(1)
.activesheet.Name = "uebersicht"
.visible = True
Titel = "CD-Uebersicht wird erstellt. Bitte warten..."
.caption = Titel
.cells(5,3).value = "Bitte warten..."
.ActiveWindow.DisplayGridlines = False

'ermittle aktuell letzte Zeile die benutzt wird...
intzeile = .activesheet.usedrange.rows.count + 1
.range("A" &intzeile).activate
intzeile = intzeile + 1



'erstelle Hilfstabelle für Diagram
.activesheet.name="uebersicht"

.range("A1").value="Ordner"
.range("B1").value="Ordnergröße"
intzeile2 = 2
End With
DoFolders(Fld)



Sub DoFolders(Folder)

With objxl
For Each SubFolder In Folder.SubFolders
.range("A" & intzeile2).value=subfolder.path
.range("B" & intzeile2).value= GetMB(subfolder.Size)
.range("B" & intzeile2).value= .range("B" &
intzeile2).value * 1
.range("B" & intzeile2).NumberFormat = "0.00 "" MB"""
intzeile2 = intzeile2 + 1

DoFolders(SubFolder)
Next

For Each File In Folder.Files
fi1 = fi1 + file.size


Next
.range("a" & intzeile2).value="Dateien in H:\"
.range("B" & intzeile2).value=GetMB(fi1)
.range("B" & intzeile2).value= .range("B" & intzeile2).value * 1
.range("B" & intzeile2).NumberFormat = "0.00 "" MB"""
End With

End Sub


Hier noch mal das Problem:

Ein Beispiel:

H:\Ordner1\Ordner2\Ordner3

Ordner1 und Ordner2 sind leer -

Ordner3 enthàlt 50 MB

Das Script zeigt dann sowohl in Ordner1, Ordner2 und Ordner3 die 50 MB
an.

Ich habe schon einiges versucht - allerdings schein ich den Wald vor
lauter Bàumen nicht mehr zu sehen...

Kann mir jemand helfen?

schöne Grüße

Andreas
 

Lesen sie die antworten

#1 Pegasus \(MVP\)
01/08/2008 - 23:41 | Warnen spam
"andreas" wrote in message
news:
Hallo zusammen,


ich habe ein kleines Script welches mir, ausgehend von einem
Anfangsverzeichnis, alle Unterverzeichnisse und deren Größe anzeigt.
Leider hat sich beim Scripten ein Fehler eingeschlichen - so wird
immer schon bei der ersten Verzeichnisebene die Größe angezeigt,
selbst wenn der Ordner mit den größten Dateien ein oder mehrere Ebenen
darunter liegt.

Hier das Script - ich lasse mal die unwesentlichen Teile weg...

==
Du hast leider auch wesentliche Teile weggelassen, z.B. die Subroutine
"GetMB".

Ähnliche fragen