Danke schon mal im voraus !!!
Torsten
Sub StartVergleich()
VergleichenUndKopieren Sheets("Tabelle1"), 1, 4
End Sub
Sub VergleichenUndKopieren(wks As Worksheet, iCol1 As Integer, iCol2 As Integer)
Dim lngK As Long, rngKopie As Range, wksKopie As Worksheet
Set rngKopie = wks.Rows(1) 'Überschriftenzeile
With wks
For lngK = 1 To .Cells(Rows.Count, iCol1).End(xlUp).Row
If LCase(.Cells(lngK, iCol1)) LCase(.Cells(lngK, iCol2)) Then
Set rngKopie = Union(rngKopie, .Rows(lngK))
End If
Next lngK
End With
If rngKopie.Areas.Count > 1 Then
Set wksKopie = Worksheets.Add(after:=wks)
wksKopie.Name = wks.Name & "_Kopie"
rngKopie.Copy wksKopie.Cells(1, 1)
End If
End Sub
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Um den Inhalt von zwei Spalten in Excel Zeile für Zeile per VBA zu vergleichen und bei Unterschieden die gesamte Zeile in eine zweite Tabelle zu kopieren, folge diesen Schritten:
ALT + F11, um den VBA-Editor zu öffnen.Tabelle1).Sub StartVergleich()
VergleichenUndKopieren Sheets("Tabelle1"), 1, 4
End Sub
Sub VergleichenUndKopieren(wks As Worksheet, iCol1 As Integer, iCol2 As Integer)
Dim lngK As Long, rngKopie As Range, wksKopie As Worksheet
Set rngKopie = wks.Rows(1) 'Überschriftenzeile
With wks
For lngK = 1 To .Cells(Rows.Count, iCol1).End(xlUp).Row
If LCase(.Cells(lngK, iCol1)) <> LCase(.Cells(lngK, iCol2)) Then
Set rngKopie = Union(rngKopie, .Rows(lngK))
End If
Next lngK
End With
If rngKopie.Areas.Count > 1 Then
Set wksKopie = Worksheets.Add(after:=wks)
wksKopie.Name = wks.Name & "_Kopie"
rngKopie.Copy wksKopie.Cells(1, 1)
End If
End Sub
StartVergleich aus, indem Du im Menü Entwicklertools > Makros wählst und auf Ausführen drückst.Fehler: "Es tut sich gar nichts."
StartVergleich aufrufst. Überprüfe auch, ob die Werte in der Spalte, die Du vergleichen möchtest, tatsächlich vorhanden sind.Fehler: "Keine Fehlermeldung, aber kein Ergebnis."
Wenn Du die Verwendung von VBA vermeiden möchtest, kannst Du die Funktion WENN in Kombination mit VERGLEICH nutzen:
=WENN(A1<>B1; "Unterschied"; "Identisch")Angenommen, Du hast in Tabelle1 in Spalte A und D Daten, die Du vergleichen möchtest:
LCase-Funktion, um sicherzustellen, dass der Vergleich nicht von der Groß-/Kleinschreibung beeinflusst wird.1. Frage
Wie kann ich das Makro für andere Spalten anpassen?
Antwort: Ändere in der StartVergleich-Subroutine die Spaltenindizes in VergleichenUndKopieren Sheets("Tabelle1"), X, Y, wobei X und Y die Spalten sind, die Du vergleichen möchtest.
2. Frage
Kann ich das Makro für mehrere Arbeitsblätter verwenden?
Antwort: Ja, Du musst das Makro jedoch anpassen, um über alle gewünschten Arbeitsblätter zu iterieren.