Markierung dopplete Werte bleibt bestehen

  • Excel

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

    Markierung dopplete Werte bleibt bestehen

    Hallo Zusammen,
    ich bitte um Euren support.
    Mit folgendem Programm prüfe ich auf doppelte Werte innerhalb einer Spalte.
    Das funktioniert auch soweit

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If WorksheetFunction.CountIf(Columns(Target.Column), Target.Value) > 1 Then
    Target.Interior. _Color = vbYellow
    End Sub


    Allerdings bleibt die farbige Markierung bestehen auch wenn ich entsprechende Zelle leere.
    Das ist so leider nicht gewünscht.
    Weiterhin möchte ich die ersten 2 Spalten A und B nicht auf doppelte Werte Prüfen

    Vielen besten Dank für Euren support
    MFG Michael

    MichR schrieb:

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If WorksheetFunction.CountIf(Columns(Target.Column), Target.Value) > 1 Then
    Target.Interior. _Color = vbYellow
    End Sub


    Kannst du den Code in einen Code-Tag packen? Wenn du deinen Beitrag editierst dann siehst du oben Rechts ein "vb.net" Symbol. Das kannst du benutzen! :)

    Kannst du sie nicht da wo du sie Löscht einfach wieder auf vbWhite stellen?
    Liebe Grüße,
    C.O.D.E

    Testautomatisierung (TA):

    5%
    Du findest meinen Beitrag Hilfreich? :thumbup: Dann drück auf Hilfreich!
    Hi C.O.D.E.

    vielen Dank für deine schnelle Rückmeldung.

    Deinen Ansatz einfach zurück auf weiß zu wechseln habe ich auch schon in Erwägung gezogen aber das erfordert ja eine aktive Handlung zum Beispiel durch ein Schaltfläche, oder?????

    Hast du hier eventuell eine elegantere Lösung?
    Weiterhin kannst du mir ggf. noch mit meiner zweiten Frage weiterhelfen.

    Die Spalten A und B sollen nicht auf doppelte Werte geprüft werden.
    Was muss ich am Code ändern.

    Nochmal viel besten Dank

    MichR schrieb:

    doppelte Werte innerhalb einer Spalte
    kann Excel vollautomatisch und ohne VBA-Code selbst prüfen.
    Mit bedingter Formatierung .
    Da gibt es extra eine Regel für Duplikate.
    Das passt sich auch automatisch an, sobald du einen doppelten Wert einfügst oder wegnimmst.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Hallo,

    vielen Dank für die Rückmeldung.

    Leider kann ich die "Bedingte Formatierung" nicht verwenden.

    Das file ist ziemlich Groß und die performance leidet massiv.

    Ich habe jetzt zwischenzeitlich das Problem mit C.O.D.E.'s vorschalg gelöst.

    Allerdings fehlt mir noch immer eine Lösung wie ich vermeiden kann, dass Spalte A und B nicht einbezogen werden.

    Visual Basic-Quellcode

    1. Private Sub Worksheet_Change(ByVal Target As Range)
    2. If Target.Count = 1 Then Target.Interior.Color = IIf(WorksheetFunction.CountIf(Columns(Target.Column), Target.Value) > 1 , Target.Value), vbYellow, vbWhite)
    3. End Sub
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --