Zwei Sheets vergleichen und Daten kopieren mit VBA
Schritt-für-Schritt-Anleitung
Um die Excel-Daten von zwei Sheets ("Altdaten" und "Neudaten") zu vergleichen und neue Datensätze zu kopieren, kannst du den folgenden VBA-Code verwenden. Dieser Code geht davon aus, dass du Excel 2016 nutzt.
- Öffne die Excel-Datei mit den beiden Tabellenblättern.
- Drücke
ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
- Klicke auf
Einfügen und dann auf Modul, um ein neues Modul zu erstellen.
- Füge den folgenden Code in das Modul ein:
Sub DatenVergleichenUndKopieren()
Dim wsAltdaten As Worksheet
Dim wsNeudaten As Worksheet
Dim lastRowAltdaten As Long
Dim lastRowNeudaten As Long
Dim i As Long
Dim j As Long
Dim gefunden As Boolean
Set wsAltdaten = ThisWorkbook.Sheets("Altdaten")
Set wsNeudaten = ThisWorkbook.Sheets("Neudaten")
lastRowAltdaten = wsAltdaten.Cells(wsAltdaten.Rows.Count, "B").End(xlUp).Row
lastRowNeudaten = wsNeudaten.Cells(wsNeudaten.Rows.Count, "B").End(xlUp).Row
For i = 2 To lastRowNeudaten ' Annahme: 1. Zeile sind die Header
gefunden = False
For j = 2 To lastRowAltdaten
If wsNeudaten.Cells(i, 2).Value = wsAltdaten.Cells(j, 2).Value Then
gefunden = True
Exit For
End If
Next j
If Not gefunden Then
wsAltdaten.Cells(lastRowAltdaten + 1, 1).Resize(1, 12).Value = wsNeudaten.Cells(i, 1).Resize(1, 12).Value
wsAltdaten.Cells(lastRowAltdaten + 1, 13).Value = "Neu" ' Markierung in Spalte M
lastRowAltdaten = lastRowAltdaten + 1
End If
Next i
End Sub
- Schließe den VBA-Editor und gehe zurück zu Excel.
- Drücke
ALT + F8, wähle DatenVergleichenUndKopieren und klicke auf Ausführen.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn du keinen VBA-Code verwenden möchtest, kannst du auch die Funktionen SVERWEIS oder FILTER in Excel nutzen, um Daten zu vergleichen. Diese sind jedoch weniger flexibel und erfordern manuelle Anpassungen.
Praktische Beispiele
Ein Beispiel für den Einsatz des Codes könnte sein:
- In "Altdaten" sind folgende Inventarnummern: 1001, 1002, 1003
- In "Neudaten" sind folgende Inventarnummern: 1002, 1004, 1005
Nach dem Ausführen des Codes werden die neuen Datensätze (1004, 1005) in "Altdaten" kopiert und mit "Neu" in Spalte M markiert.
Tipps für Profis
- Teste den Code immer zuerst an einer Kopie deiner Excel-Datei, um Datenverlust zu vermeiden.
- Du kannst den Code erweitern, um auch andere Spalten zu vergleichen oder weitere Bedingungen hinzuzufügen.
- Nutze
Debug.Print im Code, um Zwischenergebnisse zu überprüfen und den Ablauf besser zu verstehen.
FAQ: Häufige Fragen
1. Wie kann ich den VBA-Code anpassen, um mehr Spalten zu vergleichen?
Du kannst die Schleifen erweitern und weitere Bedingungen hinzufügen, um mehr Spalten zu berücksichtigen.
2. Funktioniert dieser Code auch in älteren Excel-Versionen?
Der Code sollte auch in älteren Versionen von Excel funktionieren, die VBA unterstützen, jedoch können sich einige Funktionen leicht unterscheiden.