Verzeichnisgrösse ermitteln und als Excel Datei speichern
Hallo,
Also mein Problem ist, dass ich eine batch oder Script Datei schreiben will wo mit ich aus Excel Tabelle verschiedene Links auslesen und Grösse ermitteln dann in Zelle neben speichern .
Vielen Dank fürs Antworten
Also mein Problem ist, dass ich eine batch oder Script Datei schreiben will wo mit ich aus Excel Tabelle verschiedene Links auslesen und Grösse ermitteln dann in Zelle neben speichern .
Vielen Dank fürs Antworten
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 84708
Url: https://administrator.de/forum/verzeichnisgroesse-ermitteln-und-als-excel-datei-speichern-84708.html
Ausgedruckt am: 23.12.2024 um 12:12 Uhr
12 Kommentare
Neuester Kommentar
Hi,
wie jetzt, du hast eine Excel Tabelle und willst aus einer Batch die Daten haben?
Schau mal nach diesem wunderschönen Teilchen Namens LOG PARSER.
http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8- ...
http://www.kaczenski.de/category/publikationen/ct-magazin-fur-computert ...
Dank an Nils Kaczenski und CT
wie jetzt, du hast eine Excel Tabelle und willst aus einer Batch die Daten haben?
Schau mal nach diesem wunderschönen Teilchen Namens LOG PARSER.
http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8- ...
http://www.kaczenski.de/category/publikationen/ct-magazin-fur-computert ...
Dank an Nils Kaczenski und CT
Hi,
ich denke, du meinst sowas für VBA:
in ein Modul im vb-Editor einfügen (Excel-Mappe öffnen, alt+F11 drücken, im Projektbaum rechtsklick->Modul einfügen, Code in das Modul einfügen)
In b2 schreibst du dann, sollte dir die Ordnergröße rausschmeißen.
Hoffe die Antwort paßt zu deiner Frage...
Gruß,
Henrik
ich denke, du meinst sowas für VBA:
Function fileSizeinMB(path$)
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
Dim dir, v
If fs.FolderExists(path) Then
Set dir = fs.GetFolder(path)
fileSizeinMB = dir.size / 1024 / 1024
End If
End Function
In b2 schreibst du dann
=fileSizeinMB(A2)
Hoffe die Antwort paßt zu deiner Frage...
Gruß,
Henrik
Hallo Powerwater!
wakko's Script arbeitet bei mir einwandfrei, gibt allerdings die Größe des Ordners (der Freigabe) samt aller Unterordner an ...
Falls Du nur die Dateien des angegeben Ordners berücksichtigen wolltest, müsste die Funktion etwa so aussehen:
Zu verwenden ist auch diese Variante auf die gleiche Weise: in ein Modul der Arbeitsmappe kopieren und in der Tabelle aufrufen mit
Das könnte dann allerdings etwas dauern, da die Größe jeder Datei einzeln ermittelt werden muss ...
Grüße
bastla
wakko's Script arbeitet bei mir einwandfrei, gibt allerdings die Größe des Ordners (der Freigabe) samt aller Unterordner an ...
Falls Du nur die Dateien des angegeben Ordners berücksichtigen wolltest, müsste die Funktion etwa so aussehen:
Function TotalFileSizesInMB(path)
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
Dim dir, File, Total
If fs.FolderExists(path) Then
Set dir = fs.GetFolder(path)
For Each File In dir.Files
Total = Total + File.Size
Next
TotalFileSizesInMB = Total / 1024 / 1024
End If
End Function
=TotalFileSizesInMB(A2)
Das könnte dann allerdings etwas dauern, da die Größe jeder Datei einzeln ermittelt werden muss ...
Grüße
bastla
Hallo Powerwater!
Um die beiden Funktionen verwenden zu können, musst Du zunächst einmal über "Extras / Makro / Sicherheit" mit der Einstellung der Sicherheitsstufe "Mittel" das Ausführen von Makros erlauben. Nach einer Änderung dieser Einstellung Excel (nicht nur die Arbeitsmappe) schließen und neu starten.
Wenn Du nun Deine Mappe mit der Liste der Freigaben öffnest, kannst Du durch einen Rechtsklick auf das Blattregister ("Tabelle1" oder wie das Blatt auch heißt) und die Auswahl "Code anzeigen" den VBA-Editor starten.
Jetzt im Menü "Einfügen" den Punkt "Modul" auswählen. In das nun erscheinende große Fenster den geposteten Code der Funktion(en) einfügen.
Danach kannst Du zur Excel-Arbeitsmappe zurückkehren (Taskleiste oder erstes Symbol in der Symbolleiste bzw einfach VBA-Editor schließen) und die Funktion wie oben dargestellt in einer Zelle aufrufen.
Grüße
bastla
Um die beiden Funktionen verwenden zu können, musst Du zunächst einmal über "Extras / Makro / Sicherheit" mit der Einstellung der Sicherheitsstufe "Mittel" das Ausführen von Makros erlauben. Nach einer Änderung dieser Einstellung Excel (nicht nur die Arbeitsmappe) schließen und neu starten.
Wenn Du nun Deine Mappe mit der Liste der Freigaben öffnest, kannst Du durch einen Rechtsklick auf das Blattregister ("Tabelle1" oder wie das Blatt auch heißt) und die Auswahl "Code anzeigen" den VBA-Editor starten.
Jetzt im Menü "Einfügen" den Punkt "Modul" auswählen. In das nun erscheinende große Fenster den geposteten Code der Funktion(en) einfügen.
Danach kannst Du zur Excel-Arbeitsmappe zurückkehren (Taskleiste oder erstes Symbol in der Symbolleiste bzw einfach VBA-Editor schließen) und die Funktion wie oben dargestellt in einer Zelle aufrufen.
Grüße
bastla
Hallo Powerwater!
Eine relativ einfache Möglichkeit, die Berechnung nur bei Bedarf auszuführen, sähe so aus:
Füge in dem für die Functions verwendeten Modul noch folgendes Sub ein:
Lösche in der Tabelle alle Formeln mit dem Aufruf der Funktion, also etwa "=fileSizeinMB(A2)"; wenn Du die derzeitigen Werte behalten möchtest, kannst Du auch einfach die gesamte Spalte markieren, diese kopieren und danach "Bearbeiten / Inhalte einfügen... / Werte" wählen.
Platziere in der Tabelle eine Schaltfläche (aus der Symbolleiste "Formular"), eine AutoForm oder ein Clipart und weise dieser/diesem per Rechtsklick das Makro "FileSize" zu.
Markiere nun für jede Zeile, in der eine Neuberechnung erfolgen soll, eine Zelle (Spalte egal, es wird aus der Markierung nur die Zeile ermittelt) und starte das Makro durch Klick auf Deine Schaltfläche.
Es wird nun für jede Zeile auf Basis des in Spalte A angegebenen Pfades der Platzbedarf neu ermittelt und in Spalte B dieser Zeile eingetragen, wobei der vorherige Wert überschrieben wird.
Die Beschreibung dieser Vorgangsweise bezieht sich zwar auf Excel 2003, sollte aber auch in anderen Versionen nachvollziehbar sein.
Grüße
bastla
Eine relativ einfache Möglichkeit, die Berechnung nur bei Bedarf auszuführen, sähe so aus:
Füge in dem für die Functions verwendeten Modul noch folgendes Sub ein:
Sub FileSize()
Dim Zelle
For Each Zelle In Selection.Cells
Cells(Zelle.Row, "B").Value = fileSizeinMB(Cells(Zelle.Row, "A").Value)
Next
End Sub
Lösche in der Tabelle alle Formeln mit dem Aufruf der Funktion, also etwa "=fileSizeinMB(A2)"; wenn Du die derzeitigen Werte behalten möchtest, kannst Du auch einfach die gesamte Spalte markieren, diese kopieren und danach "Bearbeiten / Inhalte einfügen... / Werte" wählen.
Platziere in der Tabelle eine Schaltfläche (aus der Symbolleiste "Formular"), eine AutoForm oder ein Clipart und weise dieser/diesem per Rechtsklick das Makro "FileSize" zu.
Markiere nun für jede Zeile, in der eine Neuberechnung erfolgen soll, eine Zelle (Spalte egal, es wird aus der Markierung nur die Zeile ermittelt) und starte das Makro durch Klick auf Deine Schaltfläche.
Es wird nun für jede Zeile auf Basis des in Spalte A angegebenen Pfades der Platzbedarf neu ermittelt und in Spalte B dieser Zeile eingetragen, wobei der vorherige Wert überschrieben wird.
Die Beschreibung dieser Vorgangsweise bezieht sich zwar auf Excel 2003, sollte aber auch in anderen Versionen nachvollziehbar sein.
Grüße
bastla