Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Zellen färben in einer xls-Tabelle





Frage

Hallo, ich möchte in einer Excel-Tabelle die Zellfarben mit Bedingungen färben. Es gibt eine Art Schulnotensystem (Werte von 0 - 4), die pro Art eine Farbe bekommen soll. Mein derzeitiges Makro ist: Sub Zellen_färben() Set Bereich = Range("N4:N175") For Each Zelle In Bereich s = Zelle.Value If InStr(s, "4") = 1 Then With Zelle.Interior .ColorIndex = 10 .Pattern = xlSolid End With End If If InStr(s, "1") = 1 Then With Zelle.Interior .ColorIndex = 3 .Pattern = xlSolid End With End If If InStr(s, "2") = 1 Then With Zelle.Interior .ColorIndex = 45 .Pattern = xlSolid End With End If If InStr(s, "3") = 1 Then With Zelle.Interior .ColorIndex = 27 .Pattern = xlSolid End With End If If InStr(s, "0") = 1 Then With Zelle.Interior .ColorIndex = 2 .Pattern = xlSolid End With End If Next Zelle End Sub Über dieses Makro kann ich die Spalte N gut einfärben. Nun sollen die davor liegenden Spalten L und M auch die Farbe erhalten, die in Spalte N ausgefüllt ist. In L und M stehen Zahlenwerte, aus denen sich die Werte der Spalte N ergeben. Wenn eine Zelle in Spalte N dann eine bestimmte Farbe hat, so sollen die dazugehörigen Werte in den Spalten L und M dann auch diese Farbe bekommen. Wie kann ich diese Bedingungen in ein Makro mit aufnehmen? Danke für eure Hilfe. mavida

Antwort 1 von rainberg

Hallo,

anbei mein Vorschlag.

Option Explicit

Sub Zellen_färben()
   Dim Bereich As Range, Zelle As Range
   Set Bereich = Worksheets("Tabelle1").Range("N4:N175")
   For Each Zelle In Bereich
      Zelle.Interior.ColorIndex = xlNone
      Select Case Zelle.Value
         Case Is = 4
            Range(Cells(Zelle.Row, 12), Cells(Zelle.Row, 14)).Interior.ColorIndex = 10
         Case Is = 1
            Range(Cells(Zelle.Row, 12), Cells(Zelle.Row, 14)).Interior.ColorIndex = 3
         Case Is = 2
            Range(Cells(Zelle.Row, 12), Cells(Zelle.Row, 14)).Interior.ColorIndex = 45
         Case Is = 3
            Range(Cells(Zelle.Row, 12), Cells(Zelle.Row, 14)).Interior.ColorIndex = 27
         Case Is = 0
            Range(Cells(Zelle.Row, 12), Cells(Zelle.Row, 14)).Interior.ColorIndex = 2
      End Select
      Next
End Sub


Gruß
Rainer

Antwort 2 von mavida

Cool,
es funktioniert wunderbar.

Ich glaube, ich sollte mal einen richtigen Kurs für die Makros und Co. machen.

Vielen, vielen Dank.

mavida