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.
Gruß
Rainer
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 SubGruß
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
es funktioniert wunderbar.
Ich glaube, ich sollte mal einen richtigen Kurs für die Makros und Co. machen.
Vielen, vielen Dank.
mavida

