Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Zellen formatieren





Frage

Hallo, ich möchte einer Zelle eine von 6 Farben zuordnen, wenn die Zelle einen von 6 Namen enthält. Mit bedingter Formatierung sind leider nur 3 möglich. Gibt es eine andere Möglichkeit, evtl. mit VBA oder direkt die Farbe in einer Formel angeben?

Antwort 1 von Saarbauer

Hallo,

ist aus meiner Sicht nur mit einem Makro zu lösen.

Da der Aufabeu der Tabelle nicht bekannt, nur dieser Hinweis.

Gruß

Helmut

Antwort 2 von cmkatz

Hallo,

Hier ein Versuch in der Zelle A1:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Inhalt As String
    
    Inhalt = Range("A1").Value
    
    Select Case Inhalt
    Case "Hans"
        Range("A1").Interior.Color = vbRed
        Range("A1").Font.Color = vbBlack
    Case "Peter"
        Range("A1").Interior.Color = vbBlue
        Range("A1").Font.Color = vbWhite
    Case "Xaver"
        Range("A1").Interior.Color = vbCyan
        Range("A1").Font.Color = vbBlack
    Case "Fritz"
        Range("A1").Interior.Color = vbYellow
        Range("A1").Font.Color = vbBlack
    Case "Max"
        Range("A1").Interior.Color = vbGreen
        Range("A1").Font.Color = vbBlack
    Case "Moritz"
        Range("A1").Interior.Color = vbBlack
        Range("A1").Font.Color = vbWhite
    Case Else
        Cells(1, 1).Interior.ColorIndex = None
        Range("A1").Font.Color = Automatic
    End Select
    
End Sub


Einbau in dein Excel-Sheet:
- Alt+F11 öffnet den VBA-Editor
- Doppelklick auf "Tabelle1(Tabelle1)"
- obigen Code dort rechts einfügen

Hoffe, geholfen zu haben :-)

Gruß
cmkatz

Antwort 3 von Pico

Hallo cmkatz,
dein Tipp habe ich umgesetzt, klappt auch bei mir.
Leider hatte ich vergessen zu sagen, dass die Namen in einer Spalte (A1:A31) und nicht nur in einer Zelle vorkommen können. Das habe ich so (A1:A31) probiert, dann kommt aber Laufzeitfehler.
Gibt es da noch eine Lösung?
Gruß Pico

Antwort 4 von JoeKe

Hallo Pico,

ändere cmkatz Code so ab:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Inhalt As String, i As Integer
For i = 1 To 31
Inhalt = Range("A" & i)

Select Case Inhalt
Case "Hans"
Range("A" & i).Interior.Color = vbRed
Range("A" & i).Font.Color = vbBlack
Case "Peter"
Range("A" & i).Interior.Color = vbBlue
Range("A" & i).Font.Color = vbWhite
Case "Xaver"
Range("A" & i).Interior.Color = vbCyan
Range("A" & i).Font.Color = vbBlack
Case "Fritz"
Range("A" & i).Interior.Color = vbYellow
Range("A" & i).Font.Color = vbBlack
Case "Max"
Range("A" & i).Interior.Color = vbGreen
Range("A" & i).Font.Color = vbBlack
Case "Moritz"
Range("A" & i).Interior.Color = vbBlack
Range("A" & i).Font.Color = vbWhite
Case Else
Range("A" & i).Interior.ColorIndex = None
Range("A" & i).Font.Color = Automatic
End Select
Next
End Sub


MfG

JöKe

Antwort 5 von Pico

Danke für die Antworten, ist genau das, was ich haben wollte.
Bis bald Pico

Antwort 6 von HoBra

Hallo,
so ist etwas universeller - Du must nicht auf die Zelle achten. Die Farben findest du in der EXCEL-Hilfe unter "Colorindex"





´HoBra: Färbt die Zellen je nach Wert automatisch ein

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error Resume Next
Select Case Target.Value
Case ""
Target.Interior.ColorIndex = xlNone
Target.Font.ColorIndex = 0
Case Is = "Fritz"
Target.Interior.ColorIndex = 44
Case Is = "Peter"
Target.Interior.ColorIndex = 23
Target.Font.ColorIndex = 2
Case Is = "Hans"
Target.Interior.ColorIndex = 56
Target.Font.ColorIndex = 2
Case Is = "Uwe"
Target.Interior.ColorIndex = 6
Case Is = "Karl"
Target.Interior.ColorIndex = 4
Target.Font.ColorIndex = 1
Case "Eva"
Target.Interior.ColorIndex = 5
Target.Font.ColorIndex = 15
Case Else
Target.Interior.ColorIndex = xlColorIndexAutomatic
Target.Font.ColorIndex = xlColorIndexAutomatic
End Select
End Sub


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: