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

Forumthread: Zellen vergleichen und farblich markieren

Zellen vergleichen und farblich markieren
07.02.2017 09:22:53
Markus
Hallo zusammen,
ich hoffe ihr könnt mir weiter helfen.
Ich steh vor der Aufgabe zwei Exceltabellen zu vergleichen. Es wurde teilweise der Text in einzelnen Zellen ergänzt und es kamen Zeilen hinzu.
Wie schaffe ich es nun, die beiden Tabellenblätter zu vergleichen und die hinzugefügten oder geänderten Stellen farblich zu markieren?!
Ich habe in der Suche das gefunden:
StandardModule: basMain
Sub Vergleich()
Dim wks As Worksheet
Dim var As Variant
Dim iRow As Integer
Set wks = Worksheets("Tabelle2")
For iRow = 1 To WorksheetFunction.CountA(Columns(1))
var = Application.Match(Cells(iRow, 1).Value, wks.Columns(1), 0)
If Not IsError(var) Then
Cells(iRow, 1).Interior.ColorIndex = 3
wks.Cells(var, 1).Interior.ColorIndex = 3
End If
Next iRow
End Sub
Aber das vergleich ja nur Zellen miteinander und markiert diese, wenn Sie identisch sind.
Wie kann ich das Makro noch ergänzen/ändern?
Vielen, vielen Dank,
Markus
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen vergleichen und farblich markieren
07.02.2017 10:16:35
Anton
Hi Markus,
probier's mal hiermit:
Sub ZellenVergleichen()
Dim rngZelleQ As Range
Dim rngZelleZ As Range
Dim wksBlattQ As Worksheet
Dim wksBlattZ As Worksheet
Dim rngBereich As Range
Set wksBlattQ = ThisWorkbook.Worksheets("Tabelle1")
Set wksBlattZ = ThisWorkbook.Worksheets("Tabelle2")
With wksBlattQ
Set rngBereich = .Range("A1:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
For Each rngZelleQ In rngBereich
Set rngZelleZ = wksBlattZ.Range(rngZelleQ.Address)
If rngZelleQ.Value  rngZelleZ.Value Then
rngZelleQ.Interior.ColorIndex = 4
End If
Next
End With
End Sub
VG Anton
Anzeige
AW: Zellen vergleichen und farblich markieren
07.02.2017 11:59:02
Markus
Hallo Anton, vielen Dank für deine Hilfe.
leider funktioniert es auch nicht wie gewünscht.
Ich hänge mal einen Auszug der Datei an. Beide Makros sind hinterlegt.
https://www.herber.de/bbs/user/111270.xlsx
Tabelle 1 soll der Ursprungstext sein, Tabelle 2 der geänderte. Einzelne hinzugefügte/geänderte Wörter oder hinzugefügt Zeilen sollen nun markiert werden. Ich denke das ist aber recht komplex...
Vielen Dank für deine Unterstützung
Anzeige
mal testen
08.02.2017 21:49:10
KlausF
Hallo Markus,
kannst ja mal testen:
https://www.herber.de/bbs/user/111337.xls
Im Moment wird die Spalte von Tabelle1 auf Tabelle2 nach Spalte B kopiert
und bleibt wegen des besseren Vergleichs am Ende auch stehen. Wenn Du
ausgiebig getestet hast und alles funktionieren sollte dann entferne einfach
das Hochkomma im Modul TextFaerben vor: ActiveSheet.Columns(2).ClearContents
Dann wird die Hilfsspalte am Ende des Makros auch geleert.
Feedback wäre ganz nett. Bin mir nämlich nicht sicher ob alles
abgegriffen wird ...
Gruß
Klaus
Anzeige
?
13.02.2017 15:39:31
KlausF
Auch nach 5 Tagen nicht einmal ein kurzes Feedback ?
Na ja ...
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zellen vergleichen und farblich markieren


Schritt-für-Schritt-Anleitung

Um zwei Excel-Tabellen zu vergleichen und die Unterschiede farblich zu markieren, kannst du folgende Schritte ausführen:

  1. Öffne deine Excel-Datei mit den beiden Tabellen, die du vergleichen möchtest.

  2. Drücke Alt + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (deineDatei.xlsx)" > "Einfügen" > "Modul".

  4. Kopiere folgenden Code in das Modul:

    Sub ZellenVergleichen()
        Dim rngZelleQ As Range
        Dim rngZelleZ As Range
        Dim wksBlattQ As Worksheet
        Dim wksBlattZ As Worksheet
        Dim rngBereich As Range
    
        Set wksBlattQ = ThisWorkbook.Worksheets("Tabelle1")
        Set wksBlattZ = ThisWorkbook.Worksheets("Tabelle2")
    
        With wksBlattQ
            Set rngBereich = .Range("A1:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
            For Each rngZelleQ In rngBereich
                Set rngZelleZ = wksBlattZ.Range(rngZelleQ.Address)
                If rngZelleQ.Value <> rngZelleZ.Value Then
                    rngZelleQ.Interior.ColorIndex = 4 ' Grün für Unterschiede
                End If
            Next
        End With
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Führe das Makro aus: Gehe zu Entwicklertools > Makros > wähle ZellenVergleichen und klicke auf Ausführen.

Jetzt sollten die Zellen, die sich unterscheiden, in Tabelle1 grün markiert sein.


Häufige Fehler und Lösungen

  • Fehler: Makro läuft nicht
    Lösung: Stelle sicher, dass Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter und aktiviere die Makros.

  • Fehler: Zellen werden nicht markiert
    Lösung: Überprüfe, ob die Tabellennamen ("Tabelle1" und "Tabelle2") korrekt sind.

  • Fehler: Fehlermeldung bei der Ausführung
    Lösung: Stelle sicher, dass die Zellen der beiden Tabellen im gleichen Datenformat vorliegen (z.B. Text oder Zahl).


Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du auch die Bedingte Formatierung nutzen:

  1. Markiere die Zellen in Tabelle1.
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.
  4. Gib folgende Formel ein:
    =A1<>Tabelle2!A1
  5. Wähle eine Formatierung (z.B. Hintergrundfarbe) und klicke auf OK.

Diese Methode ermöglicht es dir, die Unterschiede in den Zellen visuell hervorzuheben, ohne ein Makro zu verwenden.


Praktische Beispiele

Beispiel 1: Vergleich von zwei Spalten
Du kannst auch zwei Spalten in einer Tabelle vergleichen. Ändere den Code wie folgt, um die Spalten B und C zu vergleichen:

Sub SpaltenVergleichen()
    Dim wks As Worksheet
    Set wks = ThisWorkbook.Worksheets("Tabelle1")

    Dim i As Integer
    For i = 1 To wks.Cells(Rows.Count, 2).End(xlUp).Row
        If wks.Cells(i, 2).Value <> wks.Cells(i, 3).Value Then
            wks.Cells(i, 2).Interior.ColorIndex = 3 ' Rot für Unterschiede
        End If
    Next i
End Sub

Beispiel 2: Vergleichen von zwei Excel-Tabellen
Wenn du zwei Excel-Tabellen vergleichen und identische Zellen farbig hinterlegen möchtest, kannst du den oben genannten Code entsprechend anpassen, um die Zellen in beiden Tabellen zu markieren.


Tipps für Profis

  • Experimentiere mit verschiedenen Farbindexen (z.B. ColorIndex = 3 für Rot, ColorIndex = 6 für Gelb), um deine Daten ansprechend zu gestalten.
  • Nutze Benutzerdefinierte Formate in den Zellen, um Daten visuell hervorzuheben.
  • Überlege, deine Makros in Schaltflächen einzubetten, um die Benutzerfreundlichkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich auch Zahlen vergleichen?
Der oben stehende Code funktioniert auch für Zahlen. Stelle sicher, dass die Zellen im gleichen Format vorliegen.

2. Können auch mehrere Tabellen verglichen werden?
Ja, du kannst den Code erweitern, um mehrere Tabellen zu vergleichen, indem du die entsprechenden Arbeitsblätter im Code anpasst.

3. Ist die Verwendung von VBA notwendig?
Nicht zwingend. Du kannst auch die bedingte Formatierung verwenden, um Werte zu vergleichen und farblich zu markieren, jedoch bietet VBA mehr Flexibilität.

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