Zellen auf Zeichenfolge durchsuchen und einfärben/einfärbung aufheben

  • Excel

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von revilo1991.

    Zellen auf Zeichenfolge durchsuchen und einfärben/einfärbung aufheben

    Hallo Zusammen,

    Ich bin neu hier und ein VBA Anfänger. Ich hoffe die Frage ist angebracht, da ich mich noch nicht eingehend mit VBA Programmierung beschäftigt habe (Wurde in der Vorlesung mal angeschnitten).

    Der untenstehende Code vergleicht 2 Tabellen in einem Excel 2016 Dokument und färbt Zellen in Sheet1, die nicht den gleichen Inhalt haben Rot.
    Nun werden auch einige Zellen Rot gefärbt, die man nicht unbedingt vergleichen müsste. Diese Zellen sind allerdings wild verteilt.

    Bsp.: "AA3.0.0" in A1 (Sheet1) und "AA0.0.0" in A1 (Sheet0). Mit dem Code wird A1 in Sheet1 Rot gefärbt. Gibt es eine Möglichkeit, jede Zelle in der "AA3" vorkommt, nicht einzufärben? bzw. von der Färbung auszunehmen? oder die Färbung in einer neuen Schleife wieder aufzuheben?

    Weiterhelfen würde mir auch schon wie man dieses Problem am effektivsten angeht. (Zeitdruck)

    Vielen Dank schon einmal.

    Grüße

    OG


    Sub Start()


    letzteZeile = Range("A1").SpecialCells(xlCellTypeLastCell).Row
    letzteSpalte = Range("A1").SpecialCells(xlCellTypeLastCell).Column

    Worksheets("Sheet1").Activate

    For i = 1 To letzteZeile
    For j = 1 To letzteSpalte
    If Sheets("Sheet1").Cells(i, j).Value <> Sheets("Sheet0").Cells(i, j).Value Then
    Cells(i, j).Interior.Color = vbRed
    End If

    Next
    Next

    End Sub

    revilo1991 schrieb:

    If Sheets("Sheet1").Cells(i, j).Value <> Sheets("Sheet0").Cells(i, j).Value Then

    Visual Basic-Quellcode

    1. If Not Sheets("Sheet1").Cells(i, j).Value Like "AA#.*" And Sheets("Sheet1").Cells(i, j).Value <> Sheets("Sheet0").Cells(i, j).Value Then
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    petaod schrieb:

    revilo1991 schrieb:

    If Sheets("Sheet1").Cells(i, j).Value <> Sheets("Sheet0").Cells(i, j).Value Then

    Visual Basic-Quellcode

    1. If Not Sheets("Sheet1").Cells(i, j).Value Like "AA#.*" And Sheets("Sheet1").Cells(i, j).Value <> Sheets("Sheet0").Cells(i, j).Value Then


    Funktioniert wunderbar, danke :)

    Wenn man diesen Code vor die If-Schleife setzt, funktioniert es auch:

    If Left(Sheets("Sheet1").Cells(i, j).Value, 3) <> "AA3" Then
    End if