Werte aus anderer Datei auslesen in Excel
Schritt-für-Schritt-Anleitung
Um Werte aus einer anderen Datei auszulesen, kannst du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, die du in deiner Excel-Datei (z.B. in der Datei2.xls
) umsetzen kannst:
-
Öffne die VBA-Entwicklungsumgebung:
- Drücke
ALT + F11
, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu:
- Klicke mit der rechten Maustaste auf dein Projekt im Projekt-Explorer und wähle
Einfügen > Modul
.
-
Füge den folgenden Code ein:
Sub Daten_suchen()
Dim wkb As Workbook
Dim geoeffnet As Boolean
Dim wkbName As String, wkbPath As String, Kuerzel As String
Dim rZelle As Range
wkbName = "Datei1.xls"
wkbPath = "H:\Dokumente\Fuhrpark"
' feststellen, ob Datei schon geöffnet
For Each wkb In Application.Workbooks
If wkb.Name = wkbName And wkb.Path = wkbPath Then geoeffnet = True
Next wkb
' entsprechend reagieren
If geoeffnet Then
Workbooks(wkbName).Activate
Else
Workbooks.Open Filename:=wkbPath & "\" & wkbName, UpdateLinks:=0
End If
Kuerzel = ThisWorkbook.Worksheets("Tabelle1").Range("A2").Value
' Kürzel suchen
Set rZelle = Workbooks(wkbName).Worksheets("Tabelle1").Range("C:C").Find(Kuerzel, LookIn:= xlValues, LookAt:=xlWhole)
If Not rZelle Is Nothing Then
MsgBox "Gefundener Wert: " & rZelle.Value & " Zelle: " & rZelle.Address
' Wert in Zelle schreiben:
ThisWorkbook.Worksheets("Tabelle1").Range("A3").Value = Workbooks(wkbName).Worksheets("Tabelle1").Range(rZelle.Address).Value
Else
MsgBox "Wert nicht gefunden."
End If
If geoeffnet Then
ThisWorkbook.Activate
Else
' Datei1 schließen
Application.DisplayAlerts = False
Workbooks(wkbName).Close
Application.DisplayAlerts = True
End If
End Sub
- Führe das Makro aus:
- Gehe zurück zu Excel und führe das Makro aus, um die gewünschten Daten aus der anderen Datei zu lesen.
Häufige Fehler und Lösungen
- Datei nicht gefunden: Vergewissere dich, dass der Dateipfad und der Dateiname korrekt sind.
- Kürzel nicht gefunden: Stelle sicher, dass das Kürzel in der anderen Datei wirklich vorhanden ist. Der Code sucht nur das erste Auftreten.
- Makro läuft nicht: Überprüfe, ob die Makros in deinen Excel-Einstellungen aktiviert sind.
Alternative Methoden
Du kannst auch die SVERWEIS
-Funktion verwenden, um Daten aus einer anderen Tabelle zu ziehen. Das ist besonders nützlich, wenn du keine Programmierkenntnisse hast. Hier ein einfaches Beispiel:
=SVERWEIS(A2; [Datei1.xls]Tabelle1!$A:$C; 3; FALSCH)
Diese Formel sucht den Wert in A2
und gibt den entsprechenden Wert aus Spalte C der Datei1.xls
zurück.
Praktische Beispiele
Angenommen, in Datei2.xls
steht in A2
das Kürzel KS JG654
. Der VBA-Code sucht in Datei1.xls
in Spalte C nach diesem Kürzel und gibt den gefundenen Wert in A3
von Datei2.xls
aus.
Ein weiteres Beispiel ist die Verwendung von Filtern in VBA:
With wkbQuelle.Worksheets("Tabelle1").Range("A1")
.AutoFilter Field:=3, Criteria1:=strSB
.CurrentRegion.SpecialCells(xlCellTypeVisible).Copy wksZiel.Range("G5")
End With
Hierbei werden gefilterte Daten in die Zelle G5
kopiert.
Tipps für Profis
- Nutze
Option Explicit
, um sicherzustellen, dass alle Variablen deklariert werden, was dir hilft, Fehler zu vermeiden.
- Wenn du häufig Daten aus anderen Dateien ausliest, speichere relevante Dateipfade in Variablen, um die Wartbarkeit deines Codes zu verbessern.
- Du kannst auch Excel-Add-Ins verwenden, um den Prozess des Auslesens von Daten aus anderen Dateien zu vereinfachen.
FAQ: Häufige Fragen
1. Wie kann ich mehrere Vorkommen eines Kürzels suchen?
Du kannst eine Schleife verwenden, um alle Vorkommen zu finden und zu speichern.
2. Funktioniert das auch mit Excel Online?
VBA ist nicht in Excel Online verfügbar. Du musst die Desktop-Version verwenden.
3. Wie kann ich Daten aus mehreren Dateien gleichzeitig einlesen?
Du kannst eine Schleife erstellen, die durch eine Liste von Dateinamen iteriert und den oben beschriebenen Code für jede Datei ausführt.