Neue Daten in Excel importieren und doppelte Einträge vermeiden
Schritt-für-Schritt-Anleitung
Um neue Daten aus einer Excel-Datei in eine andere zu importieren, ohne bestehende Daten zu überschreiben, kannst Du die folgenden Schritte ausführen:
-
Öffne beide Arbeitsmappen: Stelle sicher, dass die Quelldatei (z.B. MappeDaten.xls
) und die Zieldatei (z.B. MappeZiel.xls
) geöffnet sind.
-
Makro erstellen: Drücke ALT + F11
, um den VBA-Editor zu öffnen. Klicke auf "Einfügen" und dann auf "Modul", um ein neues Modul zu erstellen.
-
Code einfügen: Kopiere den folgenden Code in das Modul. Dieser Code vergleicht die Daten und importiert nur neue Einträge.
Sub Datenabgleich_Schluessel()
Dim wbQuelle As Workbook, wksQuelle As Worksheet
Dim wbZiel As Workbook, wksZiel As Worksheet
Dim varSchluessel, lSpalteSchluessel As Long, Zelle As Range
Dim ZeileQuelle As Long, ZeileZiel As Long
' Tabelle mit ggf. neuen Daten
Set wbQuelle = Workbooks("MappeDaten.xls") ' Name anpassen!
Set wksQuelle = wbQuelle.Worksheets("Tabelle2") ' Name anpassen
' Tabelle in der Inhalte eingetragen werden sollen
Set wbZiel = Workbooks("MappeZiel.xls") ' Name anpassen!
Set wksZiel = wbZiel.Worksheets("Tabelle1") ' Name anpassen
' Nr. der Schlüsselspalte
lSpalteSchluessel = 1 ' ggf. anpassen
' Letzte Datenzeile in Zieltabelle
With wksZiel
ZeileZiel = .Cells(.Rows.Count, lSpalteSchluessel).End(xlUp).Row
End With
Application.ScreenUpdating = False
With wksQuelle
For ZeileQuelle = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
' Such-Werte aus Zeile in Zieltabelle einlesen
varSchluessel = .Cells(ZeileQuelle, lSpalteSchluessel)
' Name in Spalte Schlüsselsäule im Zieltabelle suchen
Set Zelle = wksZiel.Columns(lSpalteSchluessel).Find(what:=varSchluessel, _
LookIn:=xlValues, lookat:=xlWhole)
If Zelle Is Nothing Then ' neuer Datensatz
ZeileZiel = ZeileZiel + 1
.Rows(ZeileQuelle).Copy
wksZiel.Cells(ZeileZiel, 1).PasteSpecial Paste:=xlPasteValues
End If
Next
End With
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
- Makro ausführen: Schließe den VBA-Editor und führe das Makro über
ALT + F8
aus.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn Du keine Makros verwenden möchtest, kannst Du auch die Funktion „Daten abrufen“ in Excel nutzen, um neue Daten zu importieren:
- Wähle die Zelle in der Zieltabelle aus, wo die Daten erscheinen sollen.
- Gehe zu „Daten“ > „Abrufen und transformieren“ > „Aus Arbeitsmappe“.
- Wähle die Quelldatei aus und folge den Anweisungen, um die Daten zu importieren.
- Filtere die Daten, um nur neue Einträge anzuzeigen.
Praktische Beispiele
Angenommen, Du hast in MappeDaten.xls
folgende Daten:
ID |
Name |
1 |
Max |
2 |
Julia |
3 |
Tom |
In MappeZiel.xls
hast Du bereits die Daten:
Nach dem Ausführen des Makros werden nur die neuen Daten (ID 3, Tom) in die Zieltabelle eingefügt.
Tipps für Profis
- Eindeutige Schlüssel verwenden: Stelle sicher, dass Deine Daten eindeutige Identifikatoren in einer Spalte haben, um Verwechslungen zu vermeiden.
- Daten validieren: Überprüfe die Quelldaten regelmäßig auf Konsistenz, um Probleme beim Import zu vermeiden.
- Backups erstellen: Mache regelmäßig Backups Deiner Arbeitsmappen, bevor Du umfangreiche Änderungen vornimmst.
FAQ: Häufige Fragen
1. Wie kann ich das Makro anpassen, um mehrere Spalten zu vergleichen?
Du kannst die Schleife im Makro erweitern, um zusätzliche Spalten zu überprüfen, indem Du die For Spalte
Schleife anpasst.
2. Funktioniert das auch in Excel 365?
Ja, das Beispiel funktioniert in Excel 365 und in den meisten anderen Versionen von Excel, die VBA unterstützen.