Microsoft Excel

Herbers Excel/VBA-Archiv

Farbewechsel nach Werteänderung


Betrifft: Farbewechsel nach Werteänderung von: Claudia
Geschrieben am: 14.03.2017 11:55:32

Hallo zusammen,

ich habe eine Datei mit ca. 3.000 Datensätzen. Die Kundennummern befinden sich in Spalte A und werden untereinander geschrieben. Zu 99 % findet sich eine Kundennummer in mehreren Zeilen z.B. Zeile 3, 4, 5.

Ich bräuchte zur besseren Hervorhebung, wann eine andere Kundennummer anfängt, ein Makro, was die Zeilen anders färbt, wenn eine Werteänderung in Spalte A vorliegt.

Beispiel:

Kundenummer1 ..... gelb hervorheben
Kundenummer1 ..... gelb hervorheben
Kundenummer1 ..... gelb hervorheben
Kundenummer2 ..... grün hervorheben
Kundenummer2 ..... grün hervorheben
Kundenummer3 ..... gelb hervorheben
Kundenummer3 ..... gelb hervorheben
Kundenummer3 ..... gelb hervorheben
Kundenummer3 ..... gelb hervorheben

Die Spalten A bis E der Kundennummer1 sollen gelb sein.

Die Spalten A bis E der Kundennummer2 sollen grün sein.

Die Spalten A bis E der Kundennummer3 sollen gelb sein.

Kann mir hier jemand helfen?

Vielen Dank und liebe Grüße
Claudia

  

Betrifft: AW: Farbewechsel nach Werteänderung von: Daniel
Geschrieben am: 14.03.2017 12:05:25

Hi

am einfachsten so:
1. formatiere die Spalten A-E grün

2.in Zelle F2 (ich gehe mal davon aus, dass Zeile 1 eine Überschriftenspalte ist) folgende Formel:
=Wenn(A2=A1;F1;Nicht(F1))
die Formel ziehst du soweit nach unten wie du Daten hast.

3. richte du für die Spalten A-E eine bedingte Formatierung ein mit dieser Formel als Regel: =F1
und der Farbe gelb


wenn du in der Tabelle noch umsortieren willst, nimmst du besser diese Formel in Spalte F:
=Wenn(A2=Index(A:A;Zeile()-1);Index(F:F;Zeile()-1);Nicht(Index(F:F;Zeile()-1)))

Gruß Daniel


  

Betrifft: Oder auch als Makro... von: Michael (migre)
Geschrieben am: 14.03.2017 12:14:29

Hallo!

Hier für den Bereich A2:Ax (x = letzte gefüllte Zelle in A:A) des aktiven Blattes:

Sub a()
    Dim Wb As Workbook: Set Wb = ThisWorkbook
    Dim Ws As Worksheet: Set Ws = Wb.ActiveSheet
    Dim r As Range, c As Range, colr
    
    Application.ScreenUpdating = False
    With Ws
        Set r = .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
        colr = vbYellow
        For Each c In r
            If c <> c.Offset(-1, 0) Then colr = IIf(colr = vbYellow, vbGreen, vbYellow)
            c.Interior.Color = colr
        Next c
    End With
End Sub
LG
Michael


  

Betrifft: Vielen lieben DAnk Euch beiden. :-) von: Claudia
Geschrieben am: 14.03.2017 19:02:46




  

Betrifft: Ergänzung.... von: Claudia
Geschrieben am: 15.03.2017 06:21:45

Hallo,

wie kann das Makro von Michael so erweitert werden, dass auch die Spalten B bis E farblich geändert werden, wenn in Spalte A der Wert geändert wird.

Vielen Dank und liebe Grüße
Claudia


  

Betrifft: AW: Ergänzung.... von: Michael (migre)
Geschrieben am: 15.03.2017 08:50:11

Hallo!

Sub a()
      Dim Wb As Workbook: Set Wb = ThisWorkbook
      Dim Ws As Worksheet: Set Ws = Wb.ActiveSheet
      Dim r As Range, c As Range, colr
      
      Application.ScreenUpdating = False
      With Ws
          Set r = .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
          colr = vbYellow
          For Each c In r
              If c <> c.Offset(-1, 0) Then colr = IIf(colr = vbYellow, vbGreen, vbYellow)
              c.Resize(1, 5).Interior.Color = colr
          Next c
      End With
  End Sub
LG
Michael


  

Betrifft: Farbwechsel nach Werteänderung von: Claudia
Geschrieben am: 16.03.2017 06:32:16

Hallo Michael,

vielen Dank für die nachträgliche Erweiterung.

Du hast mir sehr geholfen. :-)

Liebe Grüße
Claudia


Beiträge aus den Excel-Beispielen zum Thema "Farbewechsel nach Werteänderung"