Dauerhafte bedingte Formatierung für einen Bereich

26/11/2009 - 15:31 von Frank Vellner | Report spam
Liebe NG,

ich möchte eine bedingte Formatierung in Excel 2007 erreichen, die mir
alle Zellen in Spalte M einfàrbt, wenn die Differenz zu Nachbarzelle N
größer als der Wert in Spalte A ist. Als Formel für die bed.
Formatierung wàre das soetwas wie
=M9-A9>N9

Nun füge ich aber gelegentlich einzelne Zellen in Spalte L ein und
verschiebe alle Zellen dann um eins nach rechts. Dadruch verschiebt
sich natürlich auch die Zelle mit der bedingten Formatierung. Das soll
sie aber nicht. Es soll also immer die oben definierte bedingte
Formatierung erhalten bleiben für die genannten Spalten, egal wieviele
Zellen ich wo einfüge.

In einer normalen Tabelle erreicht man das mit "indirekt" aber wie geht
es für bedingte Formatierungen?

Viele Grüße
Frank
 

Lesen sie die antworten

#1 Thomas Unruh
13/12/2009 - 05:28 | Warnen spam
Moin!

Frank Vellner schrieb:
Liebe NG,

ich möchte eine bedingte Formatierung in Excel 2007 erreichen, die mir
alle Zellen in Spalte M einfàrbt, wenn die Differenz zu Nachbarzelle N
größer als der Wert in Spalte A ist. Als Formel für die bed.
Formatierung wàre das soetwas wie
=M9-A9>N9

Nun füge ich aber gelegentlich einzelne Zellen in Spalte L ein und
verschiebe alle Zellen dann um eins nach rechts.



Hm, schnell und schmutzig ist mir dazu dies eingefallen:

-
Private Sub Worksheet_Change(ByVal Target As Range)
sAktiveZelle = ActiveCell.Address
sUpdateScreen = Application.ScreenUpdating

'Abfrage ob in "L" sich was tut
If Target.Column = 12 Then 'Spalte 12 = L
Stop 'zum testen
'Flackern verhindern - ja ich weis das blöde Select
Application.ScreenUpdating = False

'Erst Formate löschen
'Überall?
'Cells.FormatConditions.Delete
'Oder begrenzt
Columns("M:N").FormatConditions.Delete

'Dann neu zuweisen
Columns("M:M").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=WENN(($M1-$A1)>$N1;WAHR;FALSCH)"

Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent3
.TintAndShade = 0.399945066682943
End With
Selection.FormatConditions(1).StopIfTrue = False

Application.ScreenUpdating = sUpdateScreen
'und dahin wo es eigentlich wàr
Range(sAktiveZelle).Select


End If
End Sub


Es fehlt eine Fehlerbehandlung und die Routine arbeitet immer wenn
etwas in Spalte L eingeben/gelöscht/geàndert wird.

Na ja, ist ja wohl erstmal eine Idee

Gruß
Thomas
(Leider selten hier! Deshalb: Nachtràglich noch Danke an dem der
letztes Mal versucht hat mir zu helfen :-) )

Ähnliche fragen