Ich möchte mehr als 3 bedingte Formatierungen in eine Excel-Tabelle einbauen. Bin Laie auf dem Gebiet der Macro-Programmierung.
Ich habe eine VVerweis-Abfrage in mehreren Zellen eingebaut und möchte diese in 6 verschiedenen Farben nach der Vorgabe darstellen.
Bsp.: Ergebnis = a dann soll die farbe rot sein
Ergebnis = b dann blau.
das ganze bis zu 6 Farben in einer Spalte.
Bräuchte da mal Eure Hilfe, wie und wo ich so etwas einbinden / programieren kann.
kein Problem. Öffne einfach den VBA-Editor in deiner Excel-Mappe (Extras -> Makro -> Visual Basic Editor). Klicke dort doppelt auf den Punkt „Tabelle1 („der Name deines Tabellenblattes“)“, auf der linken Seite unter „VBAProject („der Name deiner Arbeitsmappe“)“, unter „Microsoft Excel Objekte“. Wenn du dieses Makro für die komplette Arbeitsmappe anwenden möchtest, musst du anstatt „Tabelle1 („der Name deines Tabellenblattes“)“, den Punkt „DieseArbeitsmappe“ auswählen. Dieser Schritt war eigentlich der schwierigste Teil …
Du solltest nun ein leeres Modulfenster sehen. Füge dort einfach folgenden Code ein:
Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then 'Index der Spalte, die überwacht werden soll - Spalte A = 1, Spalte B = 2, …
If Target.Value = „“ Then Target.Interior.ColorIndex = 0 'falls Zelle leer ist, keine Farbe
If Target.Value = „a“ Then Target.Interior.ColorIndex = 3 'falls Zelle dem Wert „a“ entspricht, Zelle rot färben
If Target.Value = „b“ Then Target.Interior.ColorIndex = 5 'falls Zelle dem Wert „b“ entspricht, Zelle blau färben
If Target.Value = „c“ Then Target.Interior.ColorIndex = 10 'falls Zelle dem Wert „c“ entspricht, Zelle grün färben
If Target.Value = „d“ Then Target.Interior.ColorIndex = 16 'falls Zelle dem Wert „d“ entspricht, Zelle grau färben
If Target.Value = „e“ Then Target.Interior.ColorIndex = 36 'falls Zelle dem Wert „e“ entspricht, Zelle helles gelb färben
If Target.Value = „f“ Then Target.Interior.ColorIndex = 45 'falls Zelle dem Wert „f“ entspricht, Zelle orange färben
End If
End Sub
Fertig. Die ganze Sache noch speichern und nicht vergessen, die Option „Makros aktivieren“ anzuklicken, wenn die Mappe geöffnet wird - sonst gibt`s kein Farbenspiel. )
Das hat mir schon ne menge geholfen nur habe ich da wohl noch einen Fehler drinne. Ich habe es dir mal geschickt. Währe schön, wenn du mir da weiterhelfen könntest.
Danke im Voraus.
Andreas
sorry, mein Fehler. Ich vergessen, dass du diese Änderung bei eiener Kalkulation anwenden möchtest. Dann kann man das Event „Worksheet_Change(ByVal As Range)“ nicht verwenden, sondern „Worksheet_Calculate()“.
Lösche daher bitte im VBA-Editor den kompletten Code, so dass das Fenster wieder jungfräulich ist und füge folgenden Code ein:
Private Sub Worksheet_Calculate()
For Each cValue In Range(„E10:E43“)
If cValue = „“ Or cValue „Inf“ Or cValue „Nach“ Or cValue „Pio“ _
Or cValue „San“ Or cValue „Aufkl“ Or cValue „Seels“ Then Cells(cValue.Row, 5).Interior.ColorIndex = 0 'falls Zelle leer ist, keine Farbe
If cValue = „Inf“ Then Cells(cValue.Row, 5).Interior.ColorIndex = 3 'falls Zelle dem Wert „a“ entspricht, Zelle rot färben
If cValue = „Nach“ Then Cells(cValue.Row, 5).Interior.ColorIndex = 5 'falls Zelle dem Wert „b“ entspricht, Zelle blau färben
If cValue = „Pio“ Then Cells(cValue.Row, 5).Interior.ColorIndex = 10 'falls Zelle dem Wert „c“ entspricht, Zelle grün färben
If cValue = „San“ Then Cells(cValue.Row, 5).Interior.ColorIndex = 16 'falls Zelle dem Wert „d“ entspricht, Zelle grau färben
If cValue = „Aufkl“ Then Cells(cValue.Row, 5).Interior.ColorIndex = 36 'falls Zelle dem Wert „e“ entspricht, Zelle helles gelb färben
If cValue = „Seels“ Then Cells(cValue.Row, 5).Interior.ColorIndex = 45 'falls Zelle dem Wert „f“ entspricht, Zelle orange färben
Hallo Andreas,
vielleicht hilft Dir das weiter.
Je nachdem was in der Zelle steht verändert sich die Farbe.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim objCell As Range
For Each objCell In Target
If Not Intersect(Range(„D7:AL350“), objCell) Is Nothing Then
With objCell
Select Case .Value
Case „EU“
.Font.FontStyle = „Fett“
.Interior.ColorIndex = 6
.Font.ColorIndex = 3
Case „DF“
.Font.FontStyle = „Fett“
.Interior.ColorIndex = 33
.Font.ColorIndex = 2
Case „RB“
.Font.FontStyle = „Fett“
.Interior.ColorIndex = 39
.Font.ColorIndex = 6
Case „LG“
.Font.FontStyle = „Fett“
.Interior.ColorIndex = 50
.Font.ColorIndex = 2
Case „AF“
.Font.FontStyle = „Fett“
.Interior.ColorIndex = 3
.Font.ColorIndex = 6
Case „K“
.Font.FontStyle = „Fett“
.Interior.ColorIndex = 5
.Font.ColorIndex = 6
Case Else
.Font.FontStyle = „Standard“
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
Hallo Andreas,
meiner Meinung nach kannst Du auf normalem Wege nur 3 bedingte Formatierungen machen. Wenn Du mehr Formatierungen benötigst geht das nur mit VBA. Leider reichen meine Excel-Kenntnisse dafür nicht aus. Ich hätte Dir gern weiter geholfen.
Viele Grüße rostlaube01
wie müsste der folgende Code aussehen, wenn die Bedingungen von
A13 bis AI25 gelten sollen.
Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then 'Index der Spalte, die überwacht werden soll - Spalte A = 1, Spalte B = 2, …
If Target.Value = „“ Then Target.Interior.ColorIndex = 0 'falls Zelle leer ist, keine Farbe
If Target.Value = „a“ Then Target.Interior.ColorIndex = 3 'falls Zelle dem Wert „a“ entspricht, Zelle rot färben
If Target.Value = „b“ Then Target.Interior.ColorIndex = 5 'falls Zelle dem Wert „b“ entspricht, Zelle blau färben
If Target.Value = „c“ Then Target.Interior.ColorIndex = 10 'falls Zelle dem Wert „c“ entspricht, Zelle grün färben
If Target.Value = „d“ Then Target.Interior.ColorIndex = 16 'falls Zelle dem Wert „d“ entspricht, Zelle grau färben
If Target.Value = „e“ Then Target.Interior.ColorIndex = 36 'falls Zelle dem Wert „e“ entspricht, Zelle helles gelb färben
If Target.Value = „f“ Then Target.Interior.ColorIndex = 45 'falls Zelle dem Wert „f“ entspricht, Zelle orange färben
End If