Zellwerte aus Excel-Dateien auslesen
Schritt-für-Schritt-Anleitung
Um Zellwerte aus mehreren Excel-Dateien auszulesen, kannst du ein VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, wie du dies umsetzen kannst:
-
Öffne Excel und erstelle eine neue Arbeitsmappe.
-
Drücke ALT + F11, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu:
- Rechtsklick auf "VBAProject (DeineArbeitsmappe)" > Einfügen > Modul.
-
Kopiere den folgenden Code in das Modul:
Option Explicit
Sub alle_Dateien_Verzeichnis()
Dim dlg As FileDialog
Dim Si As Variant, Ext As String, Datei As String
Dim TB1 As Worksheet, TB2 As Worksheet, LR As Long
Set dlg = Application.FileDialog(msoFileDialogFolderPicker) ' Verzeichnis wählen
If dlg.Show = True Then
For Each Si In dlg.SelectedItems ' Die Abfrage für den selektierten Eintrag
Ext = "*.xls" ' Dateiextension ggf. anpassen
Datei = Dir(Si & "\" & Ext)
Do While Len(Datei) > 0
Workbooks.Open Filename:=Si & "\" & Datei
Set TB1 = ThisWorkbook.Sheets("Tabelle1") ' Neue Tabelle dieser Datei
Set TB2 = ActiveWorkbook.Sheets("Tabelle1") ' Tabelle aus der gelesen wird
LR = TB1.Cells(Rows.Count, 1).End(xlUp).Row + 1 ' letzte Zeile der Spalte + 1
TB1.Cells(LR, 1) = TB2.Range("A1") ' hier hinten sind die Zielzellen
TB1.Cells(LR, 2) = TB2.Range("B2")
TB1.Cells(LR, 3) = TB2.Range("B3")
Workbooks(Datei).Close SaveChanges:=False
Datei = Dir() ' wählt die nächste Datei
Loop
Next
End If
End Sub
-
Schließe den VBA-Editor und gehe zurück zu Excel.
-
Führe das Makro aus:
- Drücke
ALT + F8, wähle alle_Dateien_Verzeichnis aus und klicke auf "Ausführen".
Häufige Fehler und Lösungen
-
Laufzeitfehler 1004: Dieser Fehler tritt auf, wenn der Code versucht, eine Datei zu öffnen, die nicht existiert. Um dies zu verhindern, stelle sicher, dass du nur Ordner auswählst, die tatsächlich Excel-Dateien enthalten. Du kannst dies im Code mit einer Bedingung abfangen, die überprüft, ob Datei leer ist, bevor du Workbooks.Open ausführst.
Do While Len(Datei) > 0
If Len(Datei) > 0 Then
Workbooks.Open Filename:=Si & "\" & Datei
End If
Loop
Alternative Methoden
Wenn du keine VBA-Programmierung verwenden möchtest, gibt es auch alternative Methoden, um Zellwerte aus Excel-Dateien auszulesen:
- Power Query: Du kannst Power Query verwenden, um Daten aus mehreren Excel-Dateien zu importieren und zu transformieren.
- Excel-Funktionen: Wenn die Daten in einem festen Format vorliegen, kannst du auch Verknüpfungen oder die Funktion
INDIREKT verwenden, um Werte aus anderen Arbeitsmappen zu lesen.
Praktische Beispiele
Hier sind einige Beispiele, wie du den VBA-Code anpassen kannst:
-
Daten aus .xlsx-Dateien lesen:
- Ändere die Zeile
Ext = "*.xls" in Ext = "*.xlsx".
-
Werte aus anderen Zellen auslesen:
- Wenn du andere Zellen wie
C1 oder D2 auslesen möchtest, füge einfach weitere Zeilen im Code hinzu, um diese Werte zu kopieren.
TB1.Cells(LR, 4) = TB2.Range("C1")
TB1.Cells(LR, 5) = TB2.Range("D2")
Tipps für Profis
-
Fehlerbehandlung einfügen: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass dein Makro auch bei unerwarteten Bedingungen stabil bleibt.
On Error Resume Next
' Dein Code hier
On Error GoTo 0
-
Verwende .xlsm-Dateien: Speichere deine Arbeitsmappe als .xlsm, um sicherzustellen, dass das Makro gespeichert wird.
FAQ: Häufige Fragen
1. Kann ich auch .xls-Dateien lesen?
Ja, der bereitgestellte Code kann sowohl .xls- als auch .xlsx-Dateien lesen, einfach die Dateiendung im Code anpassen.
2. Wie kann ich den Code anpassen, um weitere Zellen auszulesen?
Du kannst einfach zusätzliche Zeilen im Code hinzufügen, um weitere Zellen auszulesen und in die Zielarbeitsmappe zu kopieren.
3. Funktioniert das auch in Excel 365?
Ja, der VBA-Code funktioniert auch in Excel 365, solange du die Makros aktiviert hast.