Daten aus geschlossener Excel-Datei auslesen
Schritt-für-Schritt-Anleitung
Um Daten aus einer geschlossenen Excel-Datei auszulesen, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Anleitung, wie du dies umsetzen kannst:
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Erstelle ein neues Modul: Rechtsklicke im Projekt-Explorer und wähle
Einfügen > Modul
.
- Füge folgenden Code ein, um einen Bereich aus einer geschlossenen Datei auszulesen:
Sub Bereich_auslesen()
' Dimensionierung der Variablen
Dim pfad As String, datei As String, blatt As String, bereich As Range, zelle As Object
' Angaben zur auszulesenden Zelle
pfad = "E:\breile\Documents"
datei = "Test.alt.xlsm"
blatt = "Kw01"
Set bereich = Range("A10:B20") ' Bereich, der ausgelesen werden soll
' Bereich auslesen
For Each zelle In bereich
' Zellen umwandeln und eintragen
ActiveSheet.Cells(zelle.Row, zelle.Column).Value = GetValue(pfad, datei, blatt, zelle)
Next zelle
End Sub
Private Function GetValue(pfad, datei, blatt, zelle)
' Daten aus geschlossener Arbeitsmappe auslesen
Dim arg As String
If Right(pfad, 1) <> "\" Then pfad = pfad & "\"
If Dir(pfad & datei) = "" Then
GetValue = "Datei nicht gefunden"
Exit Function
End If
arg = "'" & pfad & "[" & datei & "]" & blatt & "'!" & Range(zelle).Range("A1").Address(, , xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function
- Passe den Code an, indem du den Pfad, Dateinamen, Blattnamen und den Bereich, den du auslesen möchtest, änderst.
Häufige Fehler und Lösungen
- Datei nicht gefunden: Überprüfe, ob der angegebene Pfad und Dateiname korrekt sind. Achte darauf, dass die Datei tatsächlich existiert.
- Ungültiger Bereich: Stelle sicher, dass der angegebene Bereich in der geschlossenen Datei korrekt ist. Andernfalls erhältst du eine Fehlermeldung.
- Zellen werden überschrieben: Achte darauf, dass der Zielbereich in deiner aktiven Tabelle nicht bereits mit Daten gefüllt ist.
Alternative Methoden
Wenn du keine VBA verwenden möchtest, gibt es auch die Möglichkeit, Daten aus einer geschlossenen Excel-Datei auszulesen, indem du die Funktion =GetValue()
in einer Zelle verwendest. Diese Methode erfordert jedoch, dass du die Datei einmal öffnest, um die Formeln zu definieren.
Zusätzlich kannst du die Power Query-Funktion in Excel verwenden, um Daten aus geschlossenen Excel-Dateien zu importieren, was eine benutzerfreundliche Methode darstellt.
Praktische Beispiele
Hier ist ein Beispiel, wie du Daten aus einer geschlossenen Datei mit VBA kopieren kannst:
Public Sub HoleDaten()
Dim Pfad As String
Dim Dateiname As String
Dim Blatt As String
Dim Bereich As String
Dim Ziel As Range
Pfad = "L:\Eigene Dateien\Hajo\Internet\Test\2009\"
Dateiname = "Beispiel Forum 30.xlsm"
Blatt = "Tabelle1"
Bereich = "A1:B9"
Set Ziel = ActiveSheet.Range("A1")
If GetDataClosedWB(Pfad, Dateiname, Blatt, Bereich, Ziel) Then
MsgBox "Daten importiert"
End If
End Sub
In diesem Beispiel wird der Bereich A1:B9 aus der Datei Beispiel Forum 30.xlsm importiert und in die aktive Tabelle eingefügt.
Tipps für Profis
- Verwende Option Explicit in deinen VBA-Modulen, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
- Nutze Fehlerbehandlungsroutinen in deinem Code, um besser mit unerwarteten Situationen umzugehen.
- Überprüfe regelmäßig, ob die Quelle der Daten (geschlossene Datei) aktualisiert wurde, um sicherzustellen, dass du die neuesten Informationen erhältst.
FAQ: Häufige Fragen
1. Wie kann ich Daten aus einer geschlossenen Excel-Datei ohne VBA auslesen?
Du kannst dies mit der GetValue
-Funktion in einer Zelle tun, jedoch ist der Prozess weniger flexibel als mit VBA.
2. Kann ich Daten aus mehreren geschlossenen Excel-Dateien gleichzeitig auslesen?
Ja, dies ist möglich, erfordert jedoch zusätzliche Programmierung in VBA, um die verschiedenen Dateien zu durchlaufen und die Daten zu extrahieren.
3. Welche Excel-Version benötige ich für diese Methoden?
Die beschriebenen Methoden funktionieren in Excel 2010 und neueren Versionen. Achte darauf, dass VBA aktiviert ist.