Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Excel 2016 VBA für Profis

Dateigröße und Speicherdatum ermitteln

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Zwei spezielle Funktionen ermitteln für eine Datei deren Größe und das letzte Speicherdatum. Damit können Sie die wesentlichen Informationen ermitteln.

Transkript

Wenn Sie via VBA mit Dateien arbeiten, kommt sehr bald der Wunsch auf, dass der Benutzer die auswählen kann. Also eine Liste von Dateien vorgelegt bekommt. Das geht relativ leicht, da wollen Sie dann nicht nur die Dateinamen sondern auch die Dateigröße und das Speicherdatum anzeigen. Dann bauen wir uns das einfach mal eben, und zwar in einem neuen Formular. Ich könnte das auch alles in Debug-Fenster machen, das macht aber nicht wirklich Spaß, deswegen baue ich ein zweites Formular, hier also einfügen "UserForm", das wird ein bisschen Platz brauchen, und der einfach halt halber kann ich dieses und Shift-Klick, also jetzt zu viel markiert, dann machen wir das so, diese 3 Elemente rüber kopieren, die "OK" Schaltfläche brauche ich nicht, habe das mit Strg+C. Hier nach einem Doppelklick da reinklicken, mit Strg+V wieder einfügen. Ich brauche ein bisschen Platz nach unten, das mittlere will ich gar nicht haben, das brauche ich nur beim Kopieren- Und jetzt brauche ich ein bisschen Platz und ich schiebe mir das irgendwo hier in die Ecke, da wo ich es haben will. Die "Abbrechen"-Schaltfläche, das ist mehr eine formale Sache, gibt es nur wenn ein "OK" da ist und man wirklich abbrechen kann, wenn es nicht der Fall ist, müssen Sie einfach gucken und sich freuen können, dann ist das Einzige, was anschließend erlaubt ist ein "Schließen". Und das bedeutet , das auch der Name sich ändern sollte, aber bitte nicht mit "ß", es gibt nur Ärger, also der Name ist Button "Schlissen", die Beschriftung ist "Schließen" mit "ß". Der darf gerne ein Stückchen nach links wandern, so da haben wir genug Platz. Der Code ist sowieso nicht mitgekommen, Sie können also hier per Doppelklick jetzt einfach das machen, was sowieso passieren würde, "unload me", das Formular schließen. Das war ein bisschen Vorbereitung am Rande, und hier kann ich jetzt auch das Ganze als "dlgDateien" benennen, wenn ich das hier benannt habe, und eine Caption darf es auch bekommen, aber die können wir eigentlich auch erstmal so lassen, denn das Wichtigste, was dieses Formular braucht, ist ein Listenfeld, das kann nicht viel mehr als die Dateien anzeigen, sagen wir so. Und dieses Listenfeld muss dann entsprechend "lstDateien" heißen. In dem Ereignis "Userform Initialize" werde ich jetzt die eigentliche Arbeit machen. Nicht "Userform" "Klick", ich habe mich da per Doppelklick in den Code bewegt, sondern dann muss man einmal Initialize auswählen und hier diese Prozedurleiche löschen. Und jetzt brauche ich eine Variable zuerst für die Datei beziehungsweise den Dateinamen, also eine StreamVariable, "Dim strDatei As String", und eine Konstante, einfach deswegen, weil der "Pfad" häufig vorkommen wird. Konstanten kennzeichne ich immer mit dem "C" davor, "cstrPfad, und damit wir auch viele Dateien haben, werde ich jetzt mal einfach "C:/Windows/System32/" nehmen. Da stehen ziemlich viele Dateien drin, denken Sie an den abschließenden Backslash da gibt es sonst immer Ärger, dann brauche ich nicht so viel Dateien vorbereiten, da stehen richtig viele Dateien drin, insofern ist es sehr gut zum Testen. Den Dateiennamen liest man mit der Dir-Funktion aus, also "strDatei=dir", runde Klammer auf und der Pfad-Name, den haben wir einen Konstanten, den können wir da auslesen, verkettet, mit einem Suchmuster, welches hier ganz neutral ist, also "*.*". Wenn Sie sagen, Sie wollen dort nur die "dllDateien" zum Beispiel auslesen, dann würden Sie so was schreiben, oder nur die Textdateien, aber ich will einfach alle Dateien sehen. Und da ich nicht weiß, wieviele kommen, muss ich die "du...Loop" Schleife nehmen, also macht bis keine Datei mehr gefunden wird, bis, nehme ich "strDatei" leer ist, und da kommt schon das abschließende "Loop". Für den nächsten Schritt muss ich wieder neu laden. "strDatei=dir". Der Unterschied ist, "dir" darf jetzt keine Argumente mehr bekommen. Mit Argumenten wird die erste Datei aus diesem Verzeichnis geladen, ohne Argumente die nächste, die nächste, die nächste, die nächste, und irgendwann steht da keine mehr drin. Das regelt das Betriebssystem von alleine, wenn keine mehr drin ist, habe ich alle gelesen. Jetzt kann ich hingehen und in der Liste mit dem "AddItem" alles reinschreiben. Ich werde allerdings einige Male die Liste ansprechen müssen zu verschiedenen Gelegenheiten, deswegen kommt da eine "with" Struktur drumherum, Also "with me.listDatei" und hier das "End with". Aber achten Sie darauf, ich habe "with" ausdrücklich außerhalb der Schleife, ich werde also einmal das Objekt zuweisen und diese "with" Struktur, und dann kommt die Schleife. Man hat es nicht innerhalb, dann wird es nämlich zweihunderttausendmal zugewiesen, dass es ist Zeitverschwendung. Und jetzt kann ich mich darauf beziehen und sage erstmal nur die mit "AddItem"-Methode soll mit "strDatei" den Dateinamen reinschreiben. Mehr noch nicht, der Rest kommt gleich. Einmal speichern, dann Kompiliert-Check, und mit "F5" einmal gucken. Sie sehen, das geht extrem schnell, da sind richtig viele Dateien drin, lassen wir gleichmal zählen, und es hat funktioniert. Wieviele Dateien drin sind, können wir einfach in der "Caption" reinschreiben lassen, das "Schließen" funktioniert noch auf Escape-Taste sehr praktisch. Und das Letzte, was ich nach dem "Loop" mache, ich kann auch nach dem "End with" sein, ist das meine Caption, nein, kann nicht danach sein, muss innerhalb des "End with" sein. Dass meine Caption, folgen wir neuen Inhalt kriegt, jetzt greife ich nämlich auf Listdateien zu, deren ListCount-Eigenschaft sagt, wieviele Dateien gefunden wurden, und das kann ich in die Caption vor dem Formular reinschreiben. Dann sehen wir direkt eine Zahl dazu, einmal mit "F5", Sie sehen über 200000 Dateien. Wenn Sie wollen, können Sie das auch noch ein bisschen hübscher haben, dann kann man das auch noch formatieren, also "Format" und die Zahl da drin steht, Komma, und jetzt muss amerikanisches Zahlenformat kommen, deswegen etwas eigenwillig da amerikanischer Tausenderpunkt, der aber, das sehen Sie jetzt, ein deutscher Tausenderpunkt in der Anzeige ist. Also alles falsch umbenennen sozusagen. Jetzt will ich in der zweiten Spalte und in der dritten Spalte die Dateigröße und das Speicherdatum anzeigen. Dazu brauche ich erstmal 3 Spalten. Also ColumnCount für diese Listdateien auf drei stellen, und dann sollte man eigentlich auch die Spaltenbreiten vorgeben, da muss man, ich mache das hier immer ein bisschen kleiner. Da muss man unten die Gesamtbreite mal nachgucken, 618 Das längste wird der Dateiname sein, also ich gönne dem mal 300, und die zweite Spalte kriegt 150 Pixel und die dritte dann eben Rest, deswegen gebe ich den nicht an. Ich habe jetzt also 3 Spalten und kann jetzt hier die zweite Spalte füllen. Das ist ja hier diese Column-Eigenschaft, die kriegte Parameter übergeben, die wievielste Spalte, die zweite Spalte hat den Index 1, Komma, und die wievielste Zeile. Ich kann einfach fragen, wieviele haben wir denn schon, wieviele Zeile, die ListCount, und dann führe ich sie alle ab, weil das eine null basierte Liste ist. Und die kriegt jetzt dieses "filelen" das ist die Funktion, die ich brauche für die Größe der Datei, die Länge, um genauer zu sagen. Und dort muss ich, wie oben auch schon mal mit dem "Pfad" genau sagen, welche ist gemeint verkettet mit dem aktuellen "strDatei", Namen, den ich gerade gefunden habe. Das ist noch nicht perfekt schön aber funktionsfähig. In die zweite Spalte der laufenden Zeile, schreibe ich die Dateilänge von der gefundenen Datei rein. Schauen wir mal mit "F5". Nehmen wir die als Beispiel. Da steht jetzt eine Zahl, aber die ist nur nicht besonders gut leserlich, fällt hier vielleicht noch am ersten auf, das sind Bits und nicht Bytes. Ich kann hier also schon mal sinnvoll feiern. Dann hätten wir es schon mal ein Bytes, und auch da würde ich den Tausenderpunkt drumherum machen, also "Format", Komma, die amerikanische Version, und wir können ruhig eine Nachkommastelle machen und sogar einen Text dranhängen. Das sind jetzt also 0.1 Kilobytes oder so was, das werden Sie gleich sehen. Hier, da sieht man das eine wirklich kleine Dateien, da sollte ich das "Format" noch mal verbessern, dass vor dem Komma natürlich auch was stehen darf, da habe ich mich verschrieben, da muss natürlich hier noch eine Null hin, dann ist das auch korrigiert. Und können wir gleich mal gleichen, Aufwasch machen, und zwar sogar die ganze Zeile kopieren. Hier gibt es so einen Bereich, wo man die ganze Zeile anklicken kann, Strg+C, Strg+V. Die nächste Spalte mit dem Index 2 ist also die dritte Spalte, brauchen wir nicht zu formatieren, die hat nicht "filelen", sondern "FileDateTime". Die müssen wir auch nicht durch irgendwas teilen. Da steht jetzt also automatisch Datum und Uhrzeit drin. Und nach dem Speichern, "Kompiliert-Check", einmal mit "F5" starten, und das dauert jetzt schon etwas länger. Da sehen Sie jetzt hier "Dateiname", "Dateigröße" in Kilobyte, und Datum und Uhrzeit. Das könnte man noch formatieren, aber das ist so schon ganz vernünftig. Bevor sich fragen rechtsbündig geht in diesen Listen nicht, da kann man ganz-ganz üble Tricks machen mit gleich abständiger Schrift, die korrigiert zum Beispiel und damit Leerzeichen auffüllen, aber mit nach vernünftiger Schrift wie dieser, eine Proportionalschrift kriegt man das nicht rechtsbündig. Aber immerhin Sie kriegen mit relativ wenig Aufwand eine Liste, alle Dateinamen aus einem speziellen Verzeichnis.

Excel 2016 VBA für Profis

Nutzen Sie die Möglichkeiten der Programmiersprache VBA in Excel 2016, um eigene Dialoge zu erstellen, auf andere Arbeitsmappen zuzugreifen und wichtige Funktionen einzusetzen.

5 Std. 52 min (55 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:25.01.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!