Zellen vergleichen und unterschiedlich farblich markieren

  • Excel

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Zellen vergleichen und unterschiedlich farblich markieren

    Aloha Leute,

    ich bin neu hier und muss direkt auch eine Frage stellen da ich ein wenig unter Zeitdruck bin .

    Zuerst einmal: ich habe kleinerlei Vba Kenntnisse, habe aber ein schnelles Auffassungsvermögen und deshalb hoffe ich, ihr könnt mir helfen.

    Die erste Frage lautet:

    Ist es möglich in einer Spalte, in meinem Fall “H”, Zellen zu vergleichen und diese farblich zu markieren? Also jedes Paar (es werden immer Paare auftreten) farblich verschieden zu markieren. Bis jetzt könnte man das “fast” mit bedingte Formatierung lösen, ABER die Zahlen, die ich vergleichen will sind positive und negative und bilden immer das Paar z.B +15 und -15.

    Falls dies wirklich möglich ist, kann mir jemand sagen wie?

    Ich danke schonmal im Voraus für jede Hilfe!

    :thumbup:
    Da diese Tabellen die Buchhaltung bereitstellt und nicht sortiert oder sonstiges sind, ist das nicht so einfach! Es sind auch nicht gerade wenig Zahlen wo man sagt “ach komm mach ich mal eben. Des Weiteren kommt diese Liste jeden Monat und ich verbringe immer Stunden damit die Werte zu vergleichen.
    Kannst du mal eine Beispieltabelle posten.
    Ich könnte mir vorstellen, dass ein einfacher VLOOKUP (SVERWEIS) zum Ziel führt.
    Entweder als Zusatzspalte oder ggf. auch als Formel in der bedingten Formatierung.
    Aber dazu ist deine Problembeschreibung nicht aussagekräftig genug.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Ich behaupte mal das lässt sich nicht lösen. 15 und -15 sind unterschiedliche Werte. Hier funktioniert dann weder Countif noch die Find-Methode.

    Ich würde aus den Zahlen in einer extra Spalte absolute Werte machen, d.h. aus -15 wird dann 15. Anschl. über Countif den beiden Werten einen fortlaufenden Farbindex zuweisen. Geht aber nur, wenn sich die Zahlen nicht wiederholen, also z.B. wenn -15 öfters als 1x in der Spalte vorkommt.

    Sind das eigentlich Integer oder Double Werte by the Way?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „cry.baby“ ()

    cry.baby schrieb:

    Hier funktioniert dann weder Countif noch die Find-Methode
    Blödsinn.
    =COUNTIF(B:B,-B2)
    Die Excel-Find-Funktionen taugt hier sowieso nichts, da das eine String-Methode und keine Range-Methode ist.
    VBA-Find lässt sich sehr gut mit dem negativen Wert einer Zelle füttern:
    Set c = Range("B:B").Find(-B2.Value)

    cry.baby schrieb:

    Integer oder Double
    Excel Zellen sind grundsätzlich Variant und, falls es Zahlen sind, immer Double.
    Allenfalls deren Darstellung lässt sich geeignet formatieren.


    Aber die ganzen Spekulationen helfen nichts, solange die Problembeschreibung nicht klar vorliegt.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    petaod schrieb:

    cry.baby schrieb:

    Hier funktioniert dann weder Countif noch die Find-Methode
    Blödsinn.
    =COUNTIF(B:B,-B2)
    Die Excel-Find-Funktionen taugt hier sowieso nichts, da das eine String-Methode und keine Range-Methode ist.
    VBA-Find lässt sich sehr gut mit dem negativen Wert einer Zelle füttern:
    Set c = Range("B:B").Find(-B2.Value)

    cry.baby schrieb:

    Integer oder Double
    Excel Zellen sind grundsätzlich Variant und, falls es Zahlen sind, immer Double.
    Allenfalls deren Darstellung lässt sich geeignet formatieren.


    Aber die ganzen Spekulationen helfen nichts, solange die Problembeschreibung nicht klar vorliegt.


    Natürlich lässt sich countif mit negativen Werten füttern aber das bringt Dir nix, wenn der andere Werte positiv ist, den Du abgleichen möchtest.

    Ob integer oder double is schon wichtig, weil wenn double-Werte, dann kannst Du nicht mit absoluten Zahlen arbeiten.

    Der nachfolgende Code ist getestet und funktioniert, allerdings eben nur mit der Hilfsspalte "I" und absoluten Zahlen.

    Visual Basic-Quellcode

    1. Option Explicit
    2. Sub DoppelteWerte()
    3. Dim Finden As Range
    4. Dim r As Range
    5. Dim i As Long
    6. Dim RngZahlen As Range
    7. Dim RngZahlenAbs As Range
    8. Set RngZahlen = Range("H1", Range("H1").End(xlDown))
    9. Set RngZahlenAbs = Range("I1", Range("I1").End(xlDown))
    10. 'Hilfsspalte I mit absoluten Werten
    11. For Each r In RngZahlen
    12. r.Offset(0, 1) = Abs(r)
    13. Next r
    14. 'Farbindex ab 3, da 1 schwarz und 2 weiß
    15. i = 3
    16. 'Doppelte Werte ermittlen und mit forlaufendem Farbindex markieren
    17. For Each r In RngZahlenAbs
    18. If WorksheetFunction.CountIf(RngZahlenAbs, r) > 1 Then
    19. Set Finden = RngZahlenAbs.Find(r, r)
    20. r.offset(0,-1).Interior.ColorIndex = i
    21. Finden.offset(0,-1).Interior.ColorIndex = i
    22. End If
    23. i = i + 1
    24. Next r
    25. End Sub


    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „cry.baby“ ()

    cry.baby schrieb:

    Natürlich lässt sich countif mit negativen Werten füttern aber das bringt Dir nix, wenn der andere Werte positiv ist, den Du abgleichen möchtest.
    Du kannst sehr gut über bedingte Formatierung das negative Pendant zu einem Eintrag suchen. Da brauchst du nicht mal VBA.

    petaod schrieb:

    Aber die ganzen Spekulationen helfen nichts, solange die Problembeschreibung nicht klar vorliegt.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    petaod schrieb:

    cry.baby schrieb:

    Natürlich lässt sich countif mit negativen Werten füttern aber das bringt Dir nix, wenn der andere Werte positiv ist, den Du abgleichen möchtest.
    Du kannst sehr gut über bedingte Formatierung das negative Pendant zu einem Eintrag suchen. Da brauchst du nicht mal VBA.


    Ok, das habe ich nicht gewusst, dass das mit Excel geht. Aber was ist in VBA? Geht das hier auch? Weil er will ja alle doppelten Werte mit unterschiedlicher Farbmarkierung haben und dann führt kein Weg an einem Makro vorbei möchte ich meinen.

    cry.baby schrieb:

    Weil er will ja alle doppelten Werte mit unterschiedlicher Farbmarkierung haben und dann führt kein Weg an einem Makro vorbei möchte ich meinen.
    Auch das würde ich mir zutrauen über bedingte Formatierung (zwei aufeinanderfolgende Regeln, eine mit Background-Formatierung, eine mit Foreground-Formatierung).

    Aber, wie gesagt, ich spekuliere hier nicht weiter, bevor der TE die Problemstellung nicht konkretisiert hat.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --