Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1636to1640
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
Inhaltsverzeichnis

Bezug bedingte Formatierung

Bezug bedingte Formatierung
11.08.2018 21:52:14
Matze
Hallo ihr Experten,
mein Grundproblem besteht darin dass ich per Makro eine bedingte Formatierung setze und dabei _
die Formelbezüge bei jedem Ausführen anders sind. Warum? Keine Ahnung. Habe mir das zunächst _
mit dem Recorder aufgezeichnet und mir das draus gebastelt:

With Tabelle20
.Cells.FormatConditions.Delete
With .Range("$A$5:$BP$" & lRow).FormatConditions.Add(Type:=xlExpression, _
Formula1:="=$D5$D6")
With .Borders(xlBottom)
.LineStyle = xlContinuous
.TintAndShade = 0
.Weight = xlThin
End With
'.StopIfTrue = False
End With
End With

Hier ist deutlich zu sehen dass die Formel "=$D5$D6 "eingetragen wird, wenn ich haber in die Tabelle schaue haut das nicht hin und wenn ich in der Verwaltung die Regel nachschlage steht z.B. sowas drinn: "=$D1048576$D1"
Ist aber auch nicht immer gleich.
Die bedingte Formatierung soll ab Zeile 5 anfangen und in Spalte D den Wert mit jeweils der Zelle darunter vergleichen. Klar kann ich mir das per VBA nachbasteln wenn ich mir Mühe geb, aber das Ziel soll ja sein etwas zu lernen.
Hoffe ihr könnt mir sagen was ich hier falsch mache. Vielen Dank im Voraus.
lg Matze

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Deine geschilderte Betrachtung ist noch ok,
12.08.2018 00:51:05
lupo1
da bedF-Bezüge generell über das Blatt hinaus rollieren, statt beim Überschreiten der Blatt-Außenkanten wie in Zellbezügen #BEZUG! zu ergeben. Das war immer schon so, und zumindest früher klappte das auch reibungslos.
Problematisch sind aber per VBA zugewiesene bedF-Bezüge seit ungefähr xl2007 auf andere Weise: Sie passen sich ganz einfach nicht mehr an! Manchmal nur optisch, manchmal aber auch tatsächlich.
Man muss - so absurd es klingt - in VBA den Bezug benennen und diesen Namen in der bedF verwenden, um sicher zu gehen. Es betrifft (auch) xl365. In Excel-Online geöffnet, stimmen dann die meisten bedF wieder.
Ich habe vor einigen Monaten mehrmals dazu in den Foren geschrieben.
Anzeige
Da stimmt was nicht, ...
13.08.2018 01:55:48
Luc:-?
…Lupo (& Matze);
es war schon immer so, dass (teil-)relative Bezüge von der aktuell ausgewählten Zelle abhängen, sowohl bei benannten Bezügen als auch bei BedingtFormaten! Nur absolute Bezüge sind davon unabhängig! Folglich nutzt ein benannter (teil-)relativer Bezug nichts in einer BedintFormat-Regel-Fml, wenn nicht auch die Startzelle der RegelAnwendung ausgewählt wurde.
In der früheren BedingtFormatierung hat sich eine (teil-)relative Adresse an die jeweils betroffene Zelle angepasst. Bei benannten Bezügen ist das immer noch so und auch in der ab Xl12/2007 neuen BedingtFormatierung unproblematisch. Demgegenüber wdn aber in der Regel-Fml direkt angegebene (teil-)relative Bezüge nur noch intern angepasst, die Anzeige bleibt im gesamten Gel­tungs­bereich stets dieselbe wie in seiner Startzelle (linke obere Zelle des G-Bereichs). Zumindest diese muss also nun ausgewählt wdn, wenn außerdem der Geltungsbereich festgelegt wird. Anderenfalls müssen (wie früher) alle Zellen des Geltungs­bereichs, beginnend links oben, ausgewählt wdn. Damit wird sichergestellt, dass immer mit den richtigen Bezügen begonnen wird, so dass auch das „Rollieren“ über die BlattGrenzen hinaus keine Bezugsfehler verursacht.
🙈 🙉 🙊 🐵 Morhn, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige
Ich hatte aber doch Beiträge mit VBA dazu gepostet
13.08.2018 08:46:57
lupo1
, Luc, und damals gab es keinerlei Gegenbeweis (einfach in Form eines korrigierenden VBA-Codes) für meine Behauptung.
Ich muss wohl noch mal suchen. Vermutlich war es in office-loesung.de/p vor ca. 3-6 Monaten.
Ich hatte unterschieden in 1) nur optisch falsche Formeldarstellung bei korrekter Formatierung und in 2) auch falscher Formatierung. Auch hatte ich damals rel. und abs. schon unterschieden.
Wäre schick, wenn jmd. für die neueren Excels eine andere Lösung hätte, als die Verwendung benannter Formeln. Was mir auch immer am Herzen liegt, ist, einen Code zu finden, der die Grenze zwischen Excel4 und Excel12 überschreitet.
Anzeige
DerHöpp hatte dort recht, ...
14.08.2018 03:19:36
Luc:-?
…Lupo,
und ich hatte das damals nicht mitbekommen. Vor ca 2-3 Jahren hatte ich mich intensiv mit BedFmt-Regel-Fml-Wiedergabe befasst, also nicht Eintragen sondern Auslesen in allen Formen, quasi wie eine benannte Fml, nur nicht mit derselben Methode. Aber auch das Auslesen von benannten Fmln erfordert eine Selektion, die Xl mit seinem Doku-Tool nicht vorsieht, ich per UDF aber durch Angabe der 1.Bezugszelle als Argument erreiche, was dann eine hierbei (per ZellFml) ja nicht mögliche Selektion vermeidet → UDF-intern wdn dann die (teil-)relativen Bezüge auf diese Zelle umgerechnet.
Einen Eintrag per VBA hatte ich bisher immer mit Selektion der StartZelle vor­genommen (wie von DerHöpp und mir geschrieben). Anders geht's ja auch manuell nicht!
Was meinst Du mit Grenze zwischen Excel4 und Excel12? Ich kenne eine zwischen Xl4 und Xl5ff, sowie Xl11 und Xl12, um nur die wichtigsten zu nennen. Für die BedFormatierung gibt's erst Grenzen ab ihrer Einführung. Da kenne ich die zwischen Xl9…Xl11 und X12, sowie eine zwischen Xl12 und Xl14, evtl folgende mangels Version nicht.
Morhn, Luc :-?
Anzeige
mit xl4 und xl12 ...
14.08.2018 06:55:50
lupo1
... meine ich die groben Modellsprünge (so bezeichnete man das eine Weile lang) zu 2^16 und 2^20 Zeilen.
Davor waren es 2^14 Zeilen (also die Anzahl der Spalten heute), von Beginn an. Lotus 1-2-3 hatte nur 2^13.
Einen die "Xl4-Xl12-Grenze" überschreitenden ...
18.08.2018 02:37:58
Luc:-?
…VBA-Code kann es nicht geben, Lupo,
da VBA noch nicht in Xl4 zV stand… ;-]
Sinnvoll in Bezug auf Adressen ist nur die Grenze zwischen Xl11 und Xl12 und ihre analogen Vorgänger bzw Nach­folger. Ansonsten gibt's noch eine nicht unwichtige Grenze, die zwischen Xl9 u.10, weil sich mit Xl10 die Berechnungssteuerung geändert hat. Dadurch ist automatischer Modus fast zum Muss geworden, wenn man UDFs verwenden will.
Ich hatte leider vorrangige andere Arbeiten, weshalb ich mich nicht mit der Suche nach meinen Dateien befassen konnte, die das dokumentieren, was ich zuvor bzgl BedingtFormatierung erwähnt hatte. Inzwischen habe ich beide Dateien gefunden und natürlich war die letztgefundene die wesentliche…!
Man kann natürlich oW R1C1-Notation in BedFmt-Regel-Fmln verwenden, wenn man Xl darauf umstellt, ansonsten nur mit INDIREKT. Bei der Wiedergabe der Regeln ist es genauso, allerdings kann man das mit der vbFkt ConvertFormula umwandeln, so dass die gleiche Wiedergabe-Bandbreite wie bei benannten Fmln erzielt wdn kann. Allerdings hat man dann auch das gleiche Pro­blem → die relativen Adressen orientieren sich am Standort der Wiedergabe-UDF bzw bei SubProx der ActiveCell, die ja ggf auch die ist, auf die eine Ausgabe erfolgt.
Was das nachträgliche Einfügen bzw Löschen ganzer Zeilen u/o Spalten bzw einzelner Zellen im Geltungs­bereich der jeweiligen BedFmtierg betrifft, sollten die gleichen Regeln gelten wie bei Adressen in benannten Fmln. Hier wdn idR nur absolute Adressen erwartungsgemäß angepasst, bei relativen kann es zu unerwartetem Xl-Verhalten kommen (dazu hatte ich vor ca 1 Jahr mit neopa diskutiert). Man ist hierbei schon deshalb nicht auf der „sicheren Seite“…
Morhn, Luc :-?
Anzeige
Anm.
18.08.2018 18:29:56
lupo1
Hallo Luc,
als xl4 und xl12 benannte man - zumindest zum Zeitpunkt der Einführung xl2007 - die beiden Modelle, nämlich mit xl4 das BIFF .xls und mit xl12 das neue Container-Format .xlsx. xl4 ist also Excel 4 bis 2003, xl12 alles ab 2007. Die kleine Ungenauigkeit, dass VBA erst ab Excel 5 vorliegt, spielt da nicht mehr so eine Rolle.
(xl1 hatte 16384 Zeilen, bis inkl. Excel 3 (oder 2, falls es 3 nicht gab)).
Ich ziehe - diese Welten übergreifend - benFmln innerhalb VBA-seitig definierter bedFmt vor. Falls R1C1 auf irgendeine Weise ebenso funktioniert (tut es möglicherweise irgendwo, aber das müsste es dann in allen Versionen tun), kann ich mir diesen Schritt natürlich ersparen.
Anzeige
Alles möglich, je nach Zweck! orT
18.08.2018 23:49:34
Luc:-?
Gruß+schöSo, Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige