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.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen