Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Mehrfache bedingte Formatierung

1 view
Skip to first unread message

Stefan Deutzer

unread,
Feb 14, 2004, 5:56:40 PM2/14/04
to
Hallo NG,

folgendes Problem:

ich möchte in einer Excel-Tabelle mehr als 3 bedingte Formatierungen
anwenden.

Beispiel

Zelleninhalt = AB => färbe Zellenhintergrund grün
Zelleninhalt = CD => färbe Zellenhintergrund blau
Zelleninhalt = EF => färbe Zellenhintergrund rot
Zelleninhalt = GH => färbe Zellenhintergrund grau

usw...

Wie kann man das möglichst einfach umsetzen??

Danke schonmal für Tipps... ;-))

Gruß

Stefan


Frank Kabel

unread,
Feb 14, 2004, 6:04:57 PM2/14/04
to
Hi Stefan
Die bedingte Formatierung unterstützt nur 3 Bedingungen (bzw. 4 wenn
man die Default formatierung mitzählt). Ein paar Lösungsalternativen:
1. Wenn Deine Zellen nur Zahlenwerte als Vergleichswerte enthalten und
Du nur die Textfarbe ändern möchtest, kannst du bis zu 6 verschiedene
Bedingungen nutzen. Siehe dazu
http://www.mcgimpsey.com/excel/conditional6.html

2. Für alles andere brauchst du VBA: D.h. den worksheet_change event
abfangen. Der folgende code prüft die Zelle A1 und formatiert dann den
Text in Abhängigkeit vom Wert in der Zelle:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Intersect(Target, Me.Range("A1:A100")) Is Nothing Then Exit Sub
On Error GoTo CleanUp:
With Target
Select Case .Value
Case 1: .Font.ColorIndex = 3
Case 2: .Font.ColorIndex = 10
'etc. Hier kannst Du deine weiteren Bedingungen
einbauen / oder die Art der Formatierung ändern
End Select
End With
CleanUp:
Application.EnableEvents = True
End Sub

--
Gruß
Frank Kabel
Frankfurt, Germany

Herbert Taferner

unread,
Feb 14, 2004, 6:11:34 PM2/14/04
to
Hallo Stefan,

das geht ohne VBA nicht
mit bed. Formatierung geht nur 3 x

z. B. so
einen Bereich festlegen wo dies gilt

'--------------------------------------------

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Bereich
Set Bereich = [B2:S53]

Application.ScreenUpdating = False

If Intersect(Target, Bereich) Is Nothing Then
Else
Select Case Target.Value
Case Is = 1
Target.Interior.ColorIndex = 33 'Himmelblau
Case Is = 2
Target.Interior.ColorIndex = 35 'Pastelgrün
Case Is = 3
Target.Interior.ColorIndex = 36 'Hellgelb
Case Is = 4
Target.Interior.ColorIndex = 38 'Hellrosa
Case Is = 5
Target.Interior.ColorIndex = 39 'Lavendel
Case Is = 6
Target.Interior.ColorIndex = 40 'Gelbbraun
Case Is = 7
Target.Interior.ColorIndex = 45 'hell Orange
Case Is = 8
Target.Interior.ColorIndex = 54 'Pflaume
Case Is = 9
Target.Interior.ColorIndex = 52 'Olivgrün
Case Is = 10
Target.Interior.ColorIndex = 55 'Indigo
End Select
End If
Application.ScreenUpdating = True

End Sub
'------------------------

mfg Herbert


Stefan Deutzer

unread,
Feb 14, 2004, 6:33:35 PM2/14/04
to
Hallo Frank, Hallo Herbert,

vielen Dank für die schnelle Antwort.... ;-))

Die VB-Lösung gefällt mir schon ganz gut... werde die wohl vorziehen.

Gruß
Stefan

"Stefan Deutzer" <yet...@gmx.de> schrieb im Newsbeitrag
news:c0m939$o9t$02$1...@news.t-online.com...

0 new messages