Discussion:
Nochmal Bedingte Formatierung mit mehr als 3 Bedingungen
(zu alt für eine Antwort)
Uwe Zimprich
2005-01-30 10:30:14 UTC
Permalink
Ich habe mehrere Zellen die ich farblich unterschiedlich darstellen möchte.
Gibt es eine möglichkeit diese Zellen einzufärben mit mehr als 3
Bedingungen?

Wenn eine Zelle ein bestimmten Begriff enthält soll sie eine bestimmte Farbe
annehmen
z.B
Begriff1 - Blau
Begriff2 - Gelb
Begriff3 - Grün
Begriff4 - Schwarz
usw.

Von Herbert Taferner habe ich darauf hin folgende Lösung bekommen.

das geht nur mit VBA,
z. B. so
Bereich Zellwerte und Farben anpassen

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngCell As Range
Dim bytColor As Byte

' Bereich der überwacht wird
Set Target = Intersect(Target, Range("A1:D20"))
If Target Is Nothing Then Exit Sub

For Each rngCell In Target
Select Case rngCell.Value
Case "a"
bytColor = 3 ' Rot
Case "b"
bytColor = 4 ' Grün
Case "c"
bytColor = 5 ' Blau
Case "d"
bytColor = 6 ' Gelb
Case "e"
bytColor = 7 ' Rosa
' usw....
'........
Case Else
bytColor = 0 ' keine Farbe
End Select

rngCell.Interior.ColorIndex = bytColor
Next rngCell
End Sub


Meine Frage nun:

Die Überwachung funktioniert prima.
wenn ich die Eingabe in der Zelle direkt vornehme wird die Farbe geändert.
Wenn ich aber die Eingabe der Zelle über eine Gültigkeitprüfung mit
einer Liste vornehme von einer bestimmten Quelle, wird die Farbe nicht
geändert.
Gibt es da auch noch eine Möglichkeit damit das funktioniert?

mfg Uwe
unknown
2005-01-30 10:50:28 UTC
Permalink
Hallo Uwe,

Mehr als 3 bedingte Formatierungen
dafür bräuchtest Du VBA. Probiere mal folgendes Addin aus:

http://www.xldynamic.com/source/xld.CFPlus.Download.html



ansonsten schaue mal auf meine HP Seite VBA.


Gruß Hajo
MVP für Microsoft Excel
http://home.media-n.de/ziplies/
Post by Uwe Zimprich
Ich habe mehrere Zellen die ich farblich unterschiedlich darstellen möchte.
Gibt es eine möglichkeit diese Zellen einzufärben mit mehr als 3
Bedingungen?
Wenn eine Zelle ein bestimmten Begriff enthält soll sie eine bestimmte Farbe
annehmen
z.B
Begriff1 - Blau
Begriff2 - Gelb
Begriff3 - Grün
Begriff4 - Schwarz
usw.
Von Herbert Taferner habe ich darauf hin folgende Lösung bekommen.
das geht nur mit VBA,
z. B. so
Bereich Zellwerte und Farben anpassen
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngCell As Range
Dim bytColor As Byte
' Bereich der überwacht wird
Set Target = Intersect(Target, Range("A1:D20"))
If Target Is Nothing Then Exit Sub
For Each rngCell In Target
Select Case rngCell.Value
Case "a"
bytColor = 3 ' Rot
Case "b"
bytColor = 4 ' Grün
Case "c"
bytColor = 5 ' Blau
Case "d"
bytColor = 6 ' Gelb
Case "e"
bytColor = 7 ' Rosa
' usw....
'........
Case Else
bytColor = 0 ' keine Farbe
End Select
rngCell.Interior.ColorIndex = bytColor
Next rngCell
End Sub
Die Überwachung funktioniert prima.
wenn ich die Eingabe in der Zelle direkt vornehme wird die Farbe geändert.
Wenn ich aber die Eingabe der Zelle über eine Gültigkeitprüfung mit einer
Liste vornehme von einer bestimmten Quelle, wird die Farbe nicht geändert.
Gibt es da auch noch eine Möglichkeit damit das funktioniert?
mfg Uwe
Achim
2005-04-06 08:36:22 UTC
Permalink
Hallo Hajo,
ich habe m,ir das Addin
http://www.xldynamic.com/source/xld.CFPlus.Download.html
heruntergeladen
Es funktioniert zwar prima und man sehr viele bedingte Fortmatierungen
wunschgemäß anlegen, aber beim bearbeiten der Tabelle, wenn das Addin aktiv
ist, "zittern" und "flackern" die ganzen Zahlen. Jedesmal wenn man auch nur
eine einzige Zahle eingibt,oder sortiert.....usw. flackert es sehr störend.
Wie kann man hier Abhilfe schaffen?
Achim
Post by unknown
Hallo Uwe,
Mehr als 3 bedingte Formatierungen
http://www.xldynamic.com/source/xld.CFPlus.Download.html
ansonsten schaue mal auf meine HP Seite VBA.
Gruß Hajo
MVP für Microsoft Excel
http://home.media-n.de/ziplies/
Post by Uwe Zimprich
Ich habe mehrere Zellen die ich farblich unterschiedlich darstellen möchte.
Gibt es eine möglichkeit diese Zellen einzufärben mit mehr als 3
Bedingungen?
Wenn eine Zelle ein bestimmten Begriff enthält soll sie eine bestimmte Farbe
annehmen
z.B
Begriff1 - Blau
Begriff2 - Gelb
Begriff3 - Grün
Begriff4 - Schwarz
usw.
Von Herbert Taferner habe ich darauf hin folgende Lösung bekommen.
das geht nur mit VBA,
z. B. so
Bereich Zellwerte und Farben anpassen
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngCell As Range
Dim bytColor As Byte
' Bereich der überwacht wird
Set Target = Intersect(Target, Range("A1:D20"))
If Target Is Nothing Then Exit Sub
For Each rngCell In Target
Select Case rngCell.Value
Case "a"
bytColor = 3 ' Rot
Case "b"
bytColor = 4 ' Grün
Case "c"
bytColor = 5 ' Blau
Case "d"
bytColor = 6 ' Gelb
Case "e"
bytColor = 7 ' Rosa
' usw....
'........
Case Else
bytColor = 0 ' keine Farbe
End Select
rngCell.Interior.ColorIndex = bytColor
Next rngCell
End Sub
Die Überwachung funktioniert prima.
wenn ich die Eingabe in der Zelle direkt vornehme wird die Farbe geändert.
Wenn ich aber die Eingabe der Zelle über eine Gültigkeitprüfung mit einer
Liste vornehme von einer bestimmten Quelle, wird die Farbe nicht geändert.
Gibt es da auch noch eine Möglichkeit damit das funktioniert?
mfg Uwe
Alexander Wolff
2005-04-06 08:51:32 UTC
Permalink
Post by Achim
Post by unknown
Hallo Uwe,
Mehr als 3 bedingte Formatierungen
http://www.xldynamic.com/source/xld.CFPlus.Download.html
ansonsten schaue mal auf meine HP Seite VBA.
Gruß Hajo
MVP für Microsoft Excel
http://home.media-n.de/ziplies/
Hallo Hajo,
ich habe m,ir das Addin
http://www.xldynamic.com/source/xld.CFPlus.Download.html
heruntergeladen
Es funktioniert zwar prima und man sehr viele bedingte Fortmatierungen
wunschgemäß anlegen, aber beim bearbeiten der Tabelle, wenn das Addin
aktiv ist, "zittern" und "flackern" die ganzen Zahlen. Jedesmal wenn
man auch nur eine einzige Zahle eingibt,oder sortiert.....usw.
flackert es sehr störend. Wie kann man hier Abhilfe schaffen?
Achim
Hajo hatte Dir doch schon noch eine andere Möglichkeit genannt. Unter dem
Stichwort "Format" auf seiner Seite zu finden.
--
Gruss Alexander (WinXP Home - Office 2000 SP3) --5----5----6----5----7-2
MS Outlook-Nutzer fahren gut mit http://jump.to/outlook-quotefix |
OutlookExpress: http://home.in.tum.de/~jain/software/oe-quotefix ______|
Herbert Taferner
2005-01-30 10:54:11 UTC
Permalink
Hallo Uwe,

bei dem Code wird nur die aktive Zelle geprüft
du kannst das ändern und immer den ganzen
Bereich prüfen

z. B. hier A1:D20
'----------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngCell As Range
Dim bytColor As Byte
Dim Bereich As String

' Bereich der überwacht wird
Bereich = "A1:D20"

For Each rngCell In Range(Bereich)
Select Case rngCell.Value
Case "a"
bytColor = 3 ' Rot
Case "b"
bytColor = 4 ' Grün
Case "c"
bytColor = 5 ' Blau
Case "d"
bytColor = 6 ' Gelb
Case "e"
bytColor = 7 ' Rosa
' usw....
'........
Case Else
bytColor = 0 ' keine Farbe
End Select

rngCell.Interior.ColorIndex = bytColor
Next rngCell
End Sub

mfg Herbert
Lars P. Wolschner
2005-01-30 11:12:26 UTC
Permalink
Post by Uwe Zimprich
Ich habe mehrere Zellen die ich farblich unterschiedlich
darstellen möchte. Gibt es eine möglichkeit diese Zellen
einzufärben mit mehr als 3 Bedingungen?
Du mußt zwischen Bedingungen i.S. der bedingten Formatierung und
den zu erzielenden Ausprägungen unterscheiden. Mit den drei
Bedingungen kannst Du lediglich zwei verschiedene, voneinander
unabhängige (!) Formatierungen erzielen.

Ein Beispiel wäre etwa rote Einfärbung der Schrift und Fettdruck.
Die Schrift kann nun rot, rot und fett, schwarz sowie schwarz und
fett sein. Dazu mußt Du nun eine Bedingung für rote und fette, rote
und schließlich fette Schrift eingeben, die engste Bedingung muß
zuoberst stehen.
Ich färbe beispielsweise falsche oder unplausible Eingaben gerne
rot ein, während die fette Auszeichnung einfach eine Hervorhebung
ist, deren Aussage vom Einzelfall abhängt.

Wegen der lediglich drei Bedingungen der "bedingten Formatierung"
geht das ...
Post by Uwe Zimprich
Wenn eine Zelle ein bestimmten Begriff enthält soll sie eine
bestimmte Farbe annehmen
z.B
Begriff1 - Blau
Begriff2 - Gelb
Begriff3 - Grün
Begriff4 - Schwarz
usw.
... zwangsläufig nur per VBA auf der Basis eines passenden
Ereignisses.

CU
--
Lars P. Wolschner ***@nexgo.de
Bernardstraße 11b ***@gmx.de
D-63067 Offenbach am Main
Fon & Fax: +49 69 80068670 Mobil: +49 163 8122462 (eplus)
unknown
2005-01-30 18:51:27 UTC
Permalink
Hallo Uwe,
arbeitest du mit XL97? In dieser Version wird das
Worksheet_Change-Ereignis bei der Gültigkeitsprüfung nicht ausgelöst.
Thomas Ramel hat für diesen Bug ein Workaround vorgestellt:

---------------------- snip -------------------------------------

aus einem älteren Beitrag (XL 97 und Worksheet_Change-Ereignis vom
3.9.02) :

Ich habe letzthin das Worksheet_Calculate-Ereignis dazu genutzt.

Erstelle in eine nicht benutzen Zelle eine Fomel, welche sich auf die
durch den DropDown veränderbaren Zellen bezieht:

=A1&A2 (Format: ";;;") dann bleibt der Wert unsichtbar.

Diese Fomel löst das Calculate-Ereignis aus, wenn eine der Zellen
verändert wird. dies funktioniert auch bei Gültigkeits-DropDown.
Im Calculate-Ereignis prüfst Du, ob der Wert in den zellen mit
DropDown
derselbe ist wie in den Kontrollzellen, in die die Werte am Ende des
Calculate-Ereignisses geschrieben werden. Du brauchst also dieselbe
Anzahl hilfszellen, wie Du DropDowns hast, plus eine weiter für das
Auslösen des Calculate-Ereignisses.

Angenommn, die Zellen mit DropDowns wären A1 und A2, dann die folgende
Formel z.B in A10:

=A1&A2 (Format: ";;;") dann bleibt der Wert unsichtbar.

Die Kontrollzellen wären dann, wiederum angenommen B1 und B2, dann
lautet der Code des Ereignisses folgendermassen:

Private Sub Worksheet_Calculate()
If [A1] = [B1] And [A2] = [B2] Then Exit Sub
On Error GoTo Errorhandler

'Hier dein Code für die Fehlermeldung und die Reaktion darauf

Errorhandler:
'Befüllen der Kontrollzellen auch im Falle eines Fehlers.
Application.EnableEvents = False
[B1] = [A1]
[B2] = [A2]
Application.EnableEvents = True
End Sub

---------------------- snap -------------------------------------

MfG Frank
_____________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
Website: http://www.xl-faq.de; Auftragsprogrammierung
Loading...