Excel Dateien aus Ordner auslesen
Schritt-für-Schritt-Anleitung
Um mit VBA alle Dateien eines Ordners auszulesen und bestimmte Daten daraus zu extrahieren, kannst du folgenden Code verwenden. Dieser Code listet die Dateinamen und summiert die Kilometer aus der angegebenen Excel-Tabelle.
- Öffne Excel und drücke
ALT + F11, um den VBA-Editor zu starten.
- Klicke im Menü auf
Einfügen und wähle Modul, um ein neues Modul zu erstellen.
- Kopiere und füge den folgenden Code ein:
Sub Daten_Lesen()
Dim strPath As String, strFile As String, strTabName As String
Dim lngR As Long
strPath = "F:\Temp\km\" 'Verzeichnis anpassen!
strTabName = "Tabelle1" 'Name der Tabellenblätter anpassen!
strFile = Dir(strPath & "*.xls")
lngR = 1
With ThisWorkbook.Sheets("Tabelle1") 'Name der Ausgabetabelle anpassen!
.Range("A2:B" & Rows.Count).ClearContents
Do Until strFile = ""
lngR = lngR + 1
.Cells(lngR, 1) = strFile
.Cells(lngR, 2).Formula = "=SUM('" & strPath & "[" & strFile & "]" & strTabName & "'!$K$7:$K$17)"
.Cells(lngR, 2) = .Cells(lngR, 2).Value
strFile = Dir
Loop
End With
End Sub
- Passe die Variablen
strPath und strTabName an deinen Bedarf an.
- Schließe den VBA-Editor und führe das Makro über
Entwicklertools > Makros aus.
Häufige Fehler und Lösungen
-
Fehler: „Datei nicht gefunden“
- Überprüfe den angegebenen Pfad in
strPath. Stelle sicher, dass der Pfad korrekt ist und die Dateien vorhanden sind.
-
Fehler: „Keine Daten in den Zellen“
- Kontrolliere, ob die Tabelle tatsächlich Daten in den Zellen K7 bis K17 hat.
-
Lösung: Excel-Dateien werden nicht erkannt
- Stelle sicher, dass die Dateiendungen korrekt sind und die Dateien nicht beschädigt sind.
Alternative Methoden
Falls du VBA nicht verwenden möchtest, kannst du auch mit Power Query in Excel die Daten aus einem Ordner auslesen:
- Gehe zu
Daten > Daten abrufen > Aus Datei > Aus Ordner.
- Wähle den Zielordner aus und klicke auf
OK.
- Bearbeite die Abfrage, um nur die benötigten Spalten zu behalten und die notwendigen Berechnungen durchzuführen.
Praktische Beispiele
Ein weiteres Beispiel könnte so aussehen, dass du alle Dateinamen in einer Liste aufzeigen möchtest:
Sub Auflisten_Dateien()
Dim strPath As String, strFile As String
Dim lngR As Long
strPath = "C:\Dein\Ordner\Pfad\" 'Verzeichnis anpassen!
strFile = Dir(strPath & "*.xls")
lngR = 1
With ThisWorkbook.Sheets("Liste") 'Name der Ausgabetabelle anpassen!
.Cells.ClearContents
Do Until strFile = ""
.Cells(lngR, 1) = strFile
lngR = lngR + 1
strFile = Dir
Loop
End With
End Sub
Tipps für Profis
- Verwende
Application.ScreenUpdating = False, um die Performance zu verbessern, wenn du viele Dateien durchläufst.
- Nutze
Error Handling in deinem VBA-Code, um auf Fehler besser reagieren zu können.
- Teste deine Makros stets in einer Testumgebung, um unbeabsichtigte Datenverluste zu vermeiden.
FAQ: Häufige Fragen
1. Wie kann ich die Summe aus einem anderen Tabellenblatt lesen?
Du kannst den Tabellennamen in der Formel anpassen, indem du die entsprechende Zeile im VBA-Code änderst.
2. Kann ich auch Dateien mit einer anderen Endung auslesen?
Ja, ändere einfach *.xls zu *.xlsx oder einer anderen gewünschten Endung im Dir-Befehl.
3. Was mache ich, wenn ich keine VBA-Kenntnisse habe?
Nutze die oben genannten Alternativen wie Power Query, um Daten aus einem Ordner auszulesen, ohne VBA verwenden zu müssen.