Pfad, Dateiname und Dateigröße auslesen in Excel
Schritt-für-Schritt-Anleitung
Um den Pfad, Dateinamen und die Dateigröße in Excel auszulesen, kannst du das folgende VBA-Makro verwenden. Stelle sicher, dass du den Verweis auf die Microsoft Scripting Runtime gesetzt hast. Hier ist der angepasste Code:
Sub Alter()
Dim TB As Worksheet
Dim Pfad As String, Ext As String
Dim i As Long, Z As Long, Jahr As Integer
Dim fso As Object, Datei As Object
Set TB = Sheets("Tabelle2")
Pfad = "G:\DAT\Prj\32_Elbquerung_A20\07 Planungsgrundlagen\75 Pl-Grdl_ Straßenpl-OPB\Leitungsanfrage\" 'anpassen
Ext = "*.*"
Z = 1
Jahr = InputBox("Welches Jahr", , Year(Date))
' Scripting.FileSystemObject verwenden
Set fso = CreateObject("Scripting.FileSystemObject")
For Each Datei In fso.GetFolder(Pfad).Files
If Year(Datei.DateCreated) = Jahr Then
Z = Z + 1
TB.Cells(Z, 1) = Datei.DateCreated ' Datum
TB.Cells(Z, 1).NumberFormat = "DD/MM/YYYY" ' Datum formatieren
' Link erzeugen
ActiveSheet.Hyperlinks.Add Anchor:=TB.Cells(Z, 2), _
Address:=Datei.Path, TextToDisplay:=Datei.Name
' Pfad eintragen
TB.Cells(Z, 3) = fso.GetParentFolderName(Datei.Path)
' Dateiart und Größe
TB.Cells(Z, 4) = Right(Datei.Name, Len(Datei.Name) - InStrRev(Datei.Name, "."))
TB.Cells(Z, 5) = Datei.Size ' Dateigröße in Bytes
End If
Next Datei
End Sub
Dieses Makro durchsucht den angegebenen Pfad und listet alle Dateien auf, die im angegebenen Jahr erstellt wurden. Dabei werden Datum, Dateiname, Pfad, Dateiart und Dateigröße in Excel ausgegeben.
Häufige Fehler und Lösungen
-
Fehler: "Komponente nicht gefunden"
Lösung: Stelle sicher, dass der Verweis auf die Microsoft Scripting Runtime in der VBA-Umgebung unter Extras > Verweise
gesetzt ist.
-
Fehler: "Pfad nicht gefunden"
Lösung: Überprüfe, ob der angegebene Pfad korrekt ist und existiert.
Alternative Methoden
Eine alternative Methode zum Auslesen von Dateiinformationen ist die Verwendung von Power Query. Hier kannst du über die Daten abrufen
-Option eine Verbindung zu einem Ordner herstellen und die benötigten Informationen importieren. Diese Methode ist besonders nützlich, wenn du eine grafische Oberfläche bevorzugst.
Praktische Beispiele
-
Beispiel für einen spezifischen Ordner
Angenommen, du möchtest alle .xlsx Dateien in einem bestimmten Ordner auslesen. Ändere die Ext
Variable im obigen Makro wie folgt:
Ext = "*.xlsx"
-
Einfügen von Informationen in eine andere Tabelle
Wenn du die Informationen in eine andere Tabelle als "Tabelle2" einfügen möchtest, ändere die Zeile:
Set TB = Sheets("DeineTabelle")
Tipps für Profis
-
Verwende Application.ScreenUpdating = False
, um die Bildschirmaktualisierung während des Makro-Laufs zu deaktivieren. Dadurch läuft das Makro schneller.
-
Implementiere Fehlerbehandlungsroutinen, um das Makro robuster zu machen. Zum Beispiel:
On Error Resume Next
FAQ: Häufige Fragen
1. Wie kann ich die Dateigröße in einem anderen Format anzeigen?
Du kannst die Dateigröße in KB oder MB umrechnen, indem du die Größe durch 1024 (für KB) oder 1048576 (für MB) teilst. Zum Beispiel:
TB.Cells(Z, 5) = Datei.Size / 1024 ' Größe in KB
2. Kann ich das Makro für Unterordner anpassen?
Ja, du kannst die Methode GetFolder
verwenden, um auch Unterordner zu durchsuchen. Du müsstest die Schleife entsprechend anpassen und rekursiv aufrufen.
3. Funktioniert das Makro mit Excel 2016?
Ja, das Makro sollte in Excel 2016 und neueren Versionen problemlos funktionieren.