Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Vergleich Zellen mit Schleife

Forumthread: Vergleich Zellen mit Schleife

Vergleich Zellen mit Schleife
10.01.2008 14:18:00
Torsten
Wie kann ich den Inhalt (Text) von zwei Spalten per VBA Zeile für Zeile vergleichen und bei Unterschieden die jeweilige komplette Zeile in eine zweite Tabelle innerhalb dieser Arbeitsmappe kopieren?
Danke schon mal im voraus !!!
Torsten

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vergleich Zellen mit Schleife
10.01.2008 14:22:09
Rudi
Hallo,
wozu VBA? Das ist weniger als 1 Minute Arbeit.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Vergleich Zellen mit Schleife
10.01.2008 14:37:00
Torsten
Weil ich die Geschichte für viele Dateien benötige. Über "IDENTISCH()" kann ich auch nicht gehen, da sich die Zellen teilweise in Groß-/Kleinschreibung unterscheiden.
Torsten

Anzeige
AW: Vergleich Zellen mit Schleife
10.01.2008 15:09:00
Rudi
Hallo,

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

Anzeige
AW: Vergleich Zellen mit Schleife
10.01.2008 15:36:00
Torsten
Hallo,
habs mal probiert; es tut sich aber leider gar nix. Nicht mal eine Fehlermeldung.
Wenn ich`s richtig sehe wird hier die Spalte 1 mit der Spalte 2 verglichen.
Woran könnte es liegen, dass es nicht geht?
Torsten

AW: Vergleich Zellen mit Schleife
10.01.2008 15:44:11
Rudi
Hallo,
du musst
StartVergleich
aufrufen.
Hier ist definiert in welcher Tabelle (Tabelle1) welche Spalten (1 und 4) miteinander verglichen werden.
Wenn es außer in der 1. Zeile (Überschriften) Unterschiede gibt, wird ein neues Blatt eingefügt und die unterschiedlichen Zeilen hineinkopiert.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Vergleich Zellen mit Schleife
10.01.2008 15:49:00
Torsten
Sorry, ich weiss nicht wie ich auf Spalte 2 kam...
Steht ja auch eindeutig 1 und 4 da: Sheets("Tabelle1"), 1, 4.
In Spalte 4 stand nix, deshalb sah es so aus, als ob sich gar nix tut.
Geht perfekt!
Vielen Dank für die schnelle Hilfe Rudi !!! :-)
Torsten
;
Anzeige

Infobox / Tutorial

Zellenvergleich in Excel mit VBA


Schritt-für-Schritt-Anleitung

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:

  1. Öffne Excel und erstelle eine neue Arbeitsmappe oder öffne eine bestehende.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Wähle im Projekt-Explorer das entsprechende Arbeitsblatt aus (z.B. Tabelle1).
  4. Füge den folgenden Code in ein neues Modul ein:
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
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Führe das Makro StartVergleich aus, indem Du im Menü Entwicklertools > Makros wählst und auf Ausführen drückst.

Häufige Fehler und Lösungen

  • Fehler: "Es tut sich gar nichts."

    • Lösung: Stelle sicher, dass Du das Makro 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."

    • Lösung: Überprüfe, ob in der angegebenen Spalte (in diesem Fall Spalte 4) tatsächlich Werte vorhanden sind. Wenn diese leer sind, wird das Ergebnis nicht angezeigt.

Alternative Methoden

Wenn Du die Verwendung von VBA vermeiden möchtest, kannst Du die Funktion WENN in Kombination mit VERGLEICH nutzen:

  1. Füge in einer neuen Spalte die folgende Formel ein:
    =WENN(A1<>B1; "Unterschied"; "Identisch")
  2. Diese Formel überprüft die Werte in den Zellen A1 und B1. Du kannst sie nach unten ziehen, um sie auf weitere Zeilen anzuwenden.

Praktische Beispiele

Angenommen, Du hast in Tabelle1 in Spalte A und D Daten, die Du vergleichen möchtest:

  • Verwende das obige VBA-Skript, um Unterschiede zu finden.
  • Bei Übereinstimmungen wird in der neuen Tabelle nichts kopiert, während alle Unterschiede in die neue Tabelle eingefügt werden.

Tipps für Profis

  • Verwende die LCase-Funktion, um sicherzustellen, dass der Vergleich nicht von der Groß-/Kleinschreibung beeinflusst wird.
  • Optimiere den Code, indem Du die Schleifenhöhe auf die tatsächliche Anzahl der befüllten Zeilen anpasst, um die Performance zu verbessern.
  • Wenn Du oft mit großen Datenmengen arbeitest, solltest Du in Erwägung ziehen, die Daten in eine Datenbank zu exportieren und dort die Vergleiche durchzuführen.

FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige