Quickie: Alle Dateien eines Verzeichnisses
in eine Liste/Tabelle
Hinweis: Die Arbeitsschritte dieses Beitrages sind in einem kleinen Video dokumentiert. Das unterstützende Begleit-Video finden Sie auf YouTube an dieser Stelle.
Mit VBA/Makro gibt es verschiedene Möglichkeiten, die Dateien eines Verzeichnisses ‑mit oder ohne Unterverzeichnisse- einzulesen und in einer Liste oder Tabelle auszugeben. In den meisten Fällen beschränkt sich die dargestellte Information auf den Pfad und den Filenamen. Mit Power Query können Sie ohne eine Zeile Code diese Informationen sowie einige Meta-Daten in ein Tabellenblatt übertragen.
Das anfängliche Vorgehen ist immer gleich:
- Aktivieren Sie die Power Query Funktionalität über den Menüpunkt gleichen Namens oder das Menü Daten.
- Aus Datei | Aus Ordner
- Geben Sie im Dialogfenster entweder den Pfad der obersten Ebene für die gewünschte Datenausgabe an oder Klicken Sie auf die Schaltfläche Durchsuchen… um über den typischen Windows-Dialog den Folder auszusuchen.
Nach kurzer Wartezeit öffnet sich ein Fenster wo die ersten Einträge aus Gründen der Kontrolle angezeigt werden. Da im Endeffekt nicht alle Spalten übernommen werden sollen, ein Klick auf die Schaltfläche Bearbeiten. Danach öffnet sich der Abfrage-Editor, wo dann auch erheblich mehr Zeilen angezeigt werden.
Mit Sicherheit werden nicht alle Spalten für die Anzeige in der Tabelle benötigt. Dazu gehört die erste Spalte Content. Ein Rechtsklick in die Überschrift und im Kontextmenü den zweiten Eintrag Entfernen auswählen. Sofort wird diese Spalte gelöscht. Gleiches Vorgehen oder Linksklick in die Überschrift der Spalte Attributes und dann Entf, auch die Spalte wird nicht benötigt.
Prinzipiell könnten Sie diese Darstellung so wie sie ist übernehmen. Aber was in manchen Fällen ganz hilfreich sein kann: In einer Zelle sollten Pfad und Dateiname in der typischen Schreibweise aufgezeigt werden. Also beispielsweise C:\Windows\Explorer.exe. Das ließe sich in einer ganz normalen Windows Tabelle ganz einfach durch Verketten() oder die Verknüpfung mit dem & lösen. Aber es ist besser, Probleme an der Wurzel zu packen. Und da bietet Power Query durchaus eine einfache Möglichkeit:
- Markieren Sie erforderlichenfalls durch einen Klick in die Überschrift die Spalte mit der Überschrift Folder Path.
- Wechseln Sie in das Menü Spalte hinzufügen
- In der Gruppe Allgemein auf den Menüpunkt Doppelte Spalte Klicken, die Spalte wird umgehend dupliziert.
- Gleiches Vorgehen bitte bei der Spalte Name, also auch diese verdoppeln. Das Duplikat wird als letzte Spalte, nicht direkt neben der Ursprungs-Spalte angefügt.
Die letzten beiden Spalten sind ja schon in der richtigen Reihenfolge und enthalten auch die gewünschten Informationen. Eigentlich müssen jetzt nur noch beide Spalten markiert und zusammengeführt werden. Da die letzte Spalte schon markiert ist brauch eigentlich nur noch per Taste Shift oder Strg die Spalte mit dem Pfad markiert werden. „Eigentlich ja” heißt aber auch oft „eigentlich nein”. Hier ist die Reihenfolge der Markierung extrem wichtig. Die Spalte, die sie zuerst markieren wird bei der Zusammenfassung auch zuerst dargestellt. Das bedeutet: Sie markieren zuerst die Spalte mit dem Path und anschließend die Spalte mit dem Dateinamen. Danach wechseln Sie in das Menü Transformieren, Gruppe Beliebige Spalte Auswahl Spalten zusammenführen.
Es öffnet sich ein Dialogfenster. Bei Trennzeichen ist –Kein– vorgegeben, das kann so bleiben, weil die beiden Spalten ja ohne ein trennendes Zeichen direkt aneinandergehängt werden sollen. Im darunterliegenden leeren Textfeld Neuer Spaltenname (optional) steht bereits ein Spaltenname: Zusammengeführt. Der könnte zwar so bleiben, aber beispielsweise Full Path (oder ein entsprechender deutscher Name) ist doch viel aussagekräftiger. Darum gleich an dieser Stelle entsprechend ändern und anschließend mit OK bestätigen..
Eigentlich ist damit die Aufgabe gelöst. Als kleinen Bonbon werden sie jetzt aus den vielen Zeilen und Einträgen beispielsweise die wichtigsten editierbaren Files herausfiltern. Das sind Textdateien, Files mit der Endung *.txt, *.xml als auch *.ini. Dazu Klicken Sie in der Spalte Extension auf den Dropdown-Pfeil und wählen in der Auflistung unten nur diese 3 Dateitypen aus. Nach einer Bestätigung mit dem OK-Button vielleicht noch einen Klick auf das Filtersymbol der gleichen Spalte, und die Einträge alphabetisch aufsteigend sortieren lassen.
Das war’s, diese Quickie-Aufgabe ist damit mehr als erfüllt. Sie werden im Normalfall diese Abfrage noch um all jene Spalten bereinigen, die sie in der Auflistung nicht brauchen. Zum übertragen in das Excel-Arbeitsblatt ein Klick auf das Menü Datei und das Element Schließen & laden in anklicken. Alternativ wäre auch ein Wechsel zum Start-Menü und dort den entsprechenden Button möglich gewesen. Nun noch statt des neuen Arbeitsblatts Vorhandenes Arbeitsblatt wählen und es bei der Position $A$1 im Textfeld darunter belassen. Dadurch wird das Ergebnis der Abfrage in das aktuelle Blatt geschrieben. – Da noch alles markiert ist, der Optik wegen die Tastenkombination StrgPos1, dann sieht das ganze recht positiv aus. 😉