Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
956to960
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

einem Bereich bedingte Formatierung zuweisen

einem Bereich bedingte Formatierung zuweisen
04.03.2008 22:20:00
Peter
Guten Abend
Ich habe ein Problem mit bedingter Formatierung.
Einem Teilbereich einer Spalte (ab Zeile 2 bis 100), der zwischen A und Y liegt sowie einem anderem Teilbereich einer anderen Spalte (ab Zeile 2 bis 100), möchte ich eine bedingte Formatierung zuweisen. Da die Spalte nicht immer die gleiche ist, haben diese Bereiche Namen, nämlich "_A" resp. "_V".
Die Formel, die WAHR oder FALSCH ergibt ist relativ komplex, deshalb steht diese für den Bereich _A immer in Spalte BA (ab Zeile 2 bis 100) und für den Bereich _V immer in Spalte BB (ab Zeile 2 bis 100).
Nun möchte ich die bedingte Formatierung per Makro zuweisen und habe mir das mit folgendem Code gedacht.
Doch das funktioniert so nicht. Was mache ich falsch?
Danke für eine Rückmeldung.
Peter
'alle bedingten Formatierungen löschen
'da Code beim Verlassen der Tabelle aktiviert wird, mit Me
Me.Cells.FormatConditions.Delete
[_A].FormatConditions.Add Type:=xlExpression, Formula1:="=BA2"
[_A].FormatConditions(1).Interior.ColorIndex = 22
[_V].FormatConditions.Add Type:=xlExpression, Formula1:="=BB2"
[_V].FormatConditions(1).Interior.ColorIndex = 22

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: einem Bereich bedingte Formatierung zuweisen
04.03.2008 22:33:00
Josef
Hallo Peter,
so?
Me.Cells.FormatConditions.Delete
Range("_A").FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=$BA2"
Range("_A").FormatConditions(1).Interior.ColorIndex = 22
Range("_V").FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=$BB2"
Range("_V").FormatConditions(1).Interior.ColorIndex = 22


Gruß Sepp



Anzeige
AW: einem Bereich bedingte Formatierung zuweisen
04.03.2008 22:53:00
Peter
Hallo Sepp
Ergebnis nach Berücksichtigung dieses Codes:
Interessanterweise referenziert dann die Formel in Zeile 2 der Bereiche (am Beispiel des ersten Bereichs) auf Zelle =$BA65535, Zeile 3 = $BA65536, Zeile 4 = $BA1, Zeile 5 = $BA2, Zeile 6 = $BA3
Gewünscht wäre eigentlich, dass Zeile 2 immer auf Zeile 2, etc. referenziert.
Dabei ist der Bereich _A definiert mit =CW!$K$2:$K$180 und _V mit =CW!$L$2:$L$180
Da hört für mich im Moment die Logik auf.
Doch du bist ja sicher nicht am Ende des Lateins ...
Gruss, Peter

AW: einem Bereich bedingte Formatierung zuweisen
04.03.2008 22:56:00
Daniel
Hi
wenn man Bedingte Formatierungen erstellt und die Formel bzw den Zellbezug in der A1-Schreibweise angibt, muss man sicherstellen, daß zu diesem Zeitpunkt auch die Linke obere Zelle des Zellbereiches, für den man die bedingte Formatierung erstellt auch aktiv ist, ansonsten stimmen die Formeln nicht.
Sicherer und eindeutiger ist es, den Zellbezug bzw die Formel in der Z1S1-Schreibweise anzugeben, dann bist du unabhängig von der gerade aktiven Zelle.
wenn du die Bedinge Formatierung per Makro erstellt, brauchst du Excel dafür nicht in den Optionen auf die Z1S1-Sicht umzustellen, das funktioniert auch so:

Range("xyz").FormatConditions.Add Type:=xlExpression, Formula1:="=Z1S1=100"


geht genauso wie


Range("xyz").FormatConditions.Add Type:=xlExpression, Formula1:="=$A$1=100"


Gruß, Daniel

Anzeige
AW: einem Bereich bedingte Formatierung zuweisen
04.03.2008 23:06:00
Peter
Hallo Daniel
Vielen Dank. Das funktioniert so prima.
Was spricht eigentlich gegen die Schreibweise [_A] anstelle von range("_A")?
Gruss, Peter

AW: einem Bereich bedingte Formatierung zuweisen
04.03.2008 23:56:00
Daniel
Hi
funktionieren tut im Prinzip beides.
Range ist allerdings schneller.
das [...] ist glaub ich eigentlich für ne andere Funktionalität vorgesehen, (frag mich jetzt bitte nicht für was).
das man es auch anstelle von Range() einsetzen kann, ist mehr ein zufälliger Nebeneffekt
Gruß Daniel

AW: Vielen Dank! owT
05.03.2008 07:15:00
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige