Dateiinformationen aus .txt-Dateien in Excel auslesen
Schritt-für-Schritt-Anleitung
Um die Dateiinformationen vieler .txt-Dateien auszulesen und in Excel anzuzeigen, kannst Du folgendes VBA-Makro verwenden:
- Öffne Excel und gehe zu
Entwicklertools
> Visual Basic
.
- Klicke auf
Einfügen
> Modul
, um ein neues Modul zu erstellen.
- Füge den folgenden Code in das Modul ein:
Sub DateiInformationen_auslesen()
Dim fso As Object
Dim ordner As Object
Dim file As Variant
Dim i As Integer
Const PFAD = "C:\Test\"
i = 3
Set fso = CreateObject("Scripting.FileSystemObject")
Set ordner = fso.GetFolder(PFAD)
With ThisWorkbook.Worksheets("Auswertung")
.[A1].Select
.[A3:F10000].ClearContents
.[A1:B1] = Array("Pfad:", PFAD)
.[B2:F2] = Array("Name", "Datum", "Uhrzeit", "Benutzer", "Ordner")
.[C:C].NumberFormat = "dd.mm.yyyy"
.[D:D].NumberFormat = "hh:mm:ss"
For Each file In ordner.Files
If Right(file.Name, 4) = ".txt" Then
.Cells(i, 2) = file.Name
.Cells(i, 3) = DateValue(file.DateLastModified)
.Cells(i, 4) = TimeValue(file.DateLastModified)
.Cells(i, 5) = GetFileOwner(PFAD, file.Name)
i = i + 1
End If
Next
End With
End Sub
Function GetFileOwner(fileDir As String, fileName As String) As String
Dim securityUtility As Object
Dim securityDescriptor As Object
Set securityUtility = CreateObject("ADsSecurityUtility")
Set securityDescriptor = securityUtility.GetSecurityDescriptor(fileDir & fileName, 1, 1)
GetFileOwner = securityDescriptor.Owner
End Function
- Schließe den VBA-Editor und kehre zu Excel zurück.
- Füge ein neues Arbeitsblatt mit dem Namen „Auswertung“ hinzu.
- Führe das Makro aus und Du wirst die Dateiinformationen (Erstellungsdatum und Ersteller) der .txt-Dateien in der Tabelle sehen.
Häufige Fehler und Lösungen
-
Fehler beim Auslesen des Erstellers: Stelle sicher, dass die .txt-Dateien sich auf einem NTFS-formatieren Laufwerk befinden, da nur dort die Sicherheitsinformationen gespeichert werden.
-
Leere Zellen in der Ausgabe: Überprüfe, ob der Pfad zu den .txt-Dateien korrekt ist und ob die Dateien die Endung .txt
haben.
-
Makro funktioniert nicht: Stelle sicher, dass die Makros in Excel aktiviert sind. Gehe zu Datei
> Optionen
> Trust Center
> Einstellungen für das Trust Center
> Makroeinstellungen
und aktiviere die entsprechenden Optionen.
Alternative Methoden
Falls Du die Informationen nicht mit VBA auslesen möchtest, kannst Du auch PowerShell verwenden. Hier ein Beispielbefehl, um die Erstellungsdaten und Besitzer von .txt-Dateien anzuzeigen:
Get-ChildItem "C:\Test\*.txt" | Select-Object Name, CreationTime, @{Name="Owner";Expression={(Get-Acl $_.FullName).Owner}}
Diese Methode zeigt die Informationen direkt in der PowerShell-Konsole an.
Praktische Beispiele
Angenommen, Du hast mehrere .txt-Dateien im Ordner C:\Test
. Nach dem Ausführen des Makros solltest Du eine Tabelle erhalten, die etwa so aussieht:
Name |
Datum |
Uhrzeit |
Benutzer |
Ordner |
Datei1.txt |
01.01.2023 |
12:00 |
Kollege A |
C:\Test |
Datei2.txt |
02.01.2023 |
13:00 |
Kollege B |
C:\Test |
Mit diesem Makro kannst Du die .txt-Dateien lesen und die gewünschten Informationen effizient in Excel anzeigen lassen.
Tipps für Profis
-
Filter nutzen: Nutze die Filterfunktion in Excel, um die angezeigten .txt-Dateien nach Erstellungsdatum oder Benutzer zu sortieren.
-
Fehlerbehandlung einbauen: Implementiere Fehlerbehandlungsroutinen in Deinem VBA-Code, um unerwartete Fehler abzufangen und zu protokollieren.
-
Weitere Dateiinformationen auslesen: Du kannst den Code erweitern, um zusätzliche Dateiattribute wie Größe oder Dateipfad auszulesen.
FAQ: Häufige Fragen
1. Kann ich auch andere Dateiformate auslesen?
Ja, Du kannst das Makro anpassen, um Informationen von anderen Dateiformaten auszulesen, indem Du die Dateiendung in der If-Bedingung änderst.
2. Wie finde ich heraus, welcher Benutzer eine .txt-Datei erstellt hat?
Mit der Funktion GetFileOwner
im VBA-Code kannst Du den Ersteller einer Datei herausfinden, sofern die Datei auf einem NTFS-Laufwerk gespeichert ist.
3. Welche Excel-Version benötige ich für das Makro?
Das Makro sollte in den meisten modernen Excel-Versionen (ab Excel 2010) funktionieren. Achte darauf, dass Makros aktiviert sind.