Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

bedingte Formatierung : wenn Zellinhalt Tabelle 2 ungleich Tabelle 1 - Ist das so machbar?





Frage

Guten Abend Leute, ich muss 2 Tabellen vergleichen und möchte die Zellen der neuen Tabelle mit denen der alten Tabelle vergleichen. Alle Zellen, in denen sich Werte verändert haben, möchte ich farblich hervorheben. Geht das mit der bedingten Formatierung? Wenn ja, wie? Vielen Dank für Tipps MfG nightdream

Antwort 1 von Besserwissermaster

Sollte gehen:

Formel bspw. Tabelle1!A1 = Tabelle2!A1

Und die Formatierung dann wie Du es willst!


Greetz




Antwort 2 von nightdream

Hi,

danke für den Tipp, hab´s ausprobiert aber tabellenübergreifende bedingte Formatierung geht nicht!
Weiß jemand wie man das sonst machen kann?

Grüße
nightdream

Antwort 3 von want2cu

Hallo Nightdream,
es wird dir m.E. nichts anderes übrig bleiben, als die beiden Tabellen in eine Arbeitsmappe zu packen. Wie du ja schon selber gemerkt hast, gehet es mit der bedingten Formatierung nur so.
Eine Formellösung mit Hilfsspalten scheidet m.E. ebenfalls aus, da du ja alle Zellen vergleichen willst.

CU
want2cu

Antwort 4 von coros

Hi nightdream,

wenn Du unbedingt die bedingte Formatierung benutzen möchtest, dann wäre eine Möglichkeit, die Daten aus der zweiten Tabelle in eine Hilfsspalte mittels Verknüpfung (==Tabelle2!A1) in die 1.Tabelle reinzuholen und dann in der bedingten Formatierung mit der Hilfsspalte arbeiten. Eine zweite Möglichkeit wäre das über VBA zu realisieren. Nachfolgenden Code kopiere in ein StandardModul.


Sub Vergleichen()
Dim Zeile As Long
Zeile = Sheets("Tabelle1"). _
UsedRange.SpecialCells(xlCellTypeLastCell).Row
For Wiederholungen = 1 To Zeile
If Worksheets("Tabelle1").Cells(Wiederholungen, 1) = _
Worksheets("Tabelle2").Cells(Wiederholungen, 1) Then
Worksheets("Tabelle1").Cells(Wiederholungen, 1).Interior.ColorIndex = 3
Worksheets("Tabelle2").Cells(Wiederholungen, 1).Interior.ColorIndex = 3
Else
Worksheets("Tabelle1").Cells(Wiederholungen, 1).Interior.ColorIndex = xlNone
Worksheets("Tabelle1").Cells(Wiederholungen, 1).Interior.ColorIndex = xlNone
End If
Next Wiederholungen
End Sub


Bei dem Makro wird Spalte A in Tabelle1 mit Spalte A in Tabelle2 verglichen. Alle Zellen, die gleich sind, werden mit einem roten Hintergrund versehen. Tabellennamen musst Du sicherlich noch angleichen.

Ich hoffe, dass hilft Dir schon mal weiter. Bei Fragen oder Problemen melde Dich noch mal.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 5 von nightdream

Hi coros,

vielen Dank für Deine Hilfe, leider funnktioniert das nicht so wie gewünscht.
Muss ich nicht irgendwo im Code noch die Range definieren? Außerdem werden in Deinem Beispiel die unveränderten Zellen in Spalte A in beiden Tabellen rot markiert. Hm - Vielleicht hab ich mich auch zu unpräzise ausgedrückt!?
Hintergrund für meine Überlegung mit dem Markieren der Zellen ist folgender Ausgangspunkt:
Ich habe eine Datei "Oktober" und eine Datei "November". Die Spalten die ich kontrollieren möchte sind H bis Y. Weicht ein Zellinhalt der Datei "November" von der Vormonatsdatei "Oktober" ab, soll dieser z.B. hellgrün markiert werden. Kannst Du mir bitte helfen?

Herzlichen Dank
nightdream


Antwort 6 von coros

Moin nightdream,

wie soll denn verglichen werden? Zelle H1 in Oktober mit Zelle H1 in November, Zelle I2 in Oktober mit Zelle I2 in November, Zelle J3 in Oktober mit Zelle J3 in November, Zelle K4 in Oktober mit Zelle K4 in November? Also was ich meine, Soll immer die Zelle in Oktober mit der gleichen Zelle nur im Blatt November verglichen werden? Du musst schon etwas genauer werden, dann ist bestimmt auch eine Lösung in Sicht.

Was meinen alten Code angeht, da muss in Zeile

If Worksheets("Tabelle1").Cells(Wiederholungen, 1) = _


das Gleichheitszeichen (=) gegen eine größer und eine kleiner Klammer (<>) getauscht werden. Sorry, da hatte ich mich vertan. Die Farbindexzahl für Hellgrün lautet 4. Diese Zahl musst Du anstelle der 3 eintragen.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 7 von nightdream

´n Abend coros,

Mensch Du bist aber früh dabei... herzlichen Dank übrigens!
Sorry: Bezüglich der Zellen ist es genauso, wie Du es dargestellt hast: Zelle H3 aus November <> Zelle H3 aus Oktober, dann Zelle H3 aus November hellgrün färben, usw.

Deinen Code habe ich entsprechend Deines letzten Postings angepasst, aber es klappt noch nicht so wie es sollte.


Sub Vergleichen()
Dim Zeile As Long
Zeile = Sheets("Tabelle1"). _
UsedRange.SpecialCells(xlCellTypeLastCell).Row
For Wiederholungen = 1 To Zeile
If Worksheets("Tabelle1").Cells(Wiederholungen, 1) <> _
Worksheets("Tabelle2").Cells(Wiederholungen, 1) Then
Worksheets("Tabelle1").Cells(Wiederholungen, 1).Interior.ColorIndex = 4
Worksheets("Tabelle2").Cells(Wiederholungen, 1).Interior.ColorIndex = 4
Else
Worksheets("Tabelle1").Cells(Wiederholungen, 1).Interior.ColorIndex = xlNone
Worksheets("Tabelle1").Cells(Wiederholungen, 1).Interior.ColorIndex = xlNone
End If
Next Wiederholungen
End Sub



Wäre nett, wenn Du mir das ändern könntest

Danke und
MfG
nightdream

Antwort 8 von coros

Nabend nightdream,

nachfolgendes Makro sollte so funktionieren, wie Du es Dir vorstellst. Hoffe ich jedenfalls. Andernfalls melde Dich noch mal.

Sub Vergleichen()
Dim Zeile As Long
Zeile = Sheets("Oktober"). _
UsedRange.SpecialCells(xlCellTypeLastCell).Row

For SpaltenWiederholung = 8 To 25
For ZeilenWiederholungen = 1 To Zeile
If Worksheets("Oktober").Cells(ZeilenWiederholungen, _
SpaltenWiederholung) <> Worksheets("November"). _
Cells(ZeilenWiederholungen, SpaltenWiederholung) Then
Worksheets("Oktober").Cells(ZeilenWiederholungen, _
SpaltenWiederholung).Interior.ColorIndex = 4
Worksheets("November").Cells(ZeilenWiederholungen, _
SpaltenWiederholung).Interior.ColorIndex = 4
Else
Worksheets("Oktober").Cells(ZeilenWiederholungen, _
SpaltenWiederholung).Interior.ColorIndex = xlNone
Worksheets("November").Cells(ZeilenWiederholungen, _
SpaltenWiederholung).Interior.ColorIndex = xlNone
End If
Next ZeilenWiederholungen
Next SpaltenWiederholung
End Sub


MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 9 von nightdream

Hi coros,

funktioniert prima! Ich würde nur gerne mit dem Colorindex weitere Farben ausprobieren. Gibt´s dafür ne Übersicht?

Vielen lieben Dank für Deine Hilfe!
nightdream


PS: Ich erwäge die Anschaffung des Excel VBA Kompendiums 2003 von Bernd Held aus dem MuT Verlag. Kannst Du mir da ne Empfehlung sonstiger Literatur in der Richtung aussprechen?

Antwort 10 von coros

Hi nightdream,

führe mal in einem neu eingefügten Blatt nachfolgendes Makro aus.

Sub Farbauswahl()
  Dim x As Byte
  For x = 1 To 56
    If x < 29 Then
      Cells(x, 1) = x
      Cells(x, 3) = x
      Cells(x, 4) = x
      Cells(x, 2).Interior.ColorIndex = x
      Cells(x, 3).Font.ColorIndex = x
      Cells(x, 4).Font.ColorIndex = x
    Else
      Cells(x - 28, 6) = x
      Cells(x - 28, 8) = x
      Cells(x - 28, 9) = x
      Cells(x - 28, 7).Interior.ColorIndex = x
      Cells(x - 28, 8).Font.ColorIndex = x
      Cells(x - 28, 9).Font.ColorIndex = x
    End If
  Next x
End Sub


Dieses Makro listet Dir die Farben mit den dazugehörigen Indexen auf. Du kannst aber bei der Farbwahl auch auf RGB -Farbeinstellungen zurückgreifen. Dazu musst Du in Deinem Code in den Zeilen

SpaltenWiederholung).Interior.ColorIndex = 4

und

SpaltenWiederholung).Interior.ColorIndex = 4

Das Wort Index , was hinter Color steht löschen und anstelle der Indexzahl für z.B. die Farbe Rot

RGB(255, 0, 0)

hinschreiben.

Einen Tip für Excelliteratur kann ich Dir nicht geben, da alle meine Kenntnisse zum einen Teil auf meinen Beruf basieren und zum anderen Teil aus dem Internet stammen. Mein Leitfaden war immer Lerning by doing, Also immer lesen, ausprobieren, lesen ausprobieren.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 11 von nightdream

Tach coros,

vielen Dank nochmal für Deine geduldige Unterstützung.

MfG
nightdream

Antwort 12 von mkburg

es geht auch viel einfacher,
ich habe die Tabelle komplett in den unteren Teil der zweiten Tabelle verknüpft,
dann geht auch die bedingte Formatierung.

Antwort 13 von coros

Hi mkburg,

mit einem Hallo am Anfang und einem Gruß am Ende würde der Beitrag gleich viel netter aussehen.

Hast Du Dir die Antworten zu der Frage mal alle durchgelesen?. Wenn Du das getan hättest, dann hättest Du in Antwort 3 und 4 Deine hier angepriesene einfachere Lösung schon in den Antworten gelesen.

MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.