BasicMakro - CALC - bedingte Formatierung wird nicht aktiviert

Hallo,

folgendes Problem:

Gegeben sei folgende kleine CALC-Tabelle

1|4|1|4|
2|3|2|3|
3|2|3|2|
4|1|4|1|

und dieser BasicMakro-Code:

Sub BedingteFormatierung

Dim oBF as Object ' obj Bedingung Format (Conditional Format)
Dim oBFB as Object ' obj Bedingung Format Bereich
Dim oB(2) as New com.sun.star.beans.PropertyValue ' Bedingung (Condition)

oBFB = ThisComponent.Sheets(0).getCellRangeByPosition(0,0,3,3)
oBF = oBFB.ConditionalFormat

oB(0).Name = "Operator"
oB(0).Value = com.sun.star.sheet.ConditionOperator.FORMULA
oB(1).Name = "Formula1"
oB(1).Value = "INDIREKT(ADRESSE(ZEILE();SPALTE()))-INDIREKT(ADRESSE(ZEILE()-1;SPALTE())) < 0"
oB(2).Name = "StyleName"
oB(2).Value = "Bad"

oBF.addNew(oB())
oBFB.ConditionalFormat = oBF

End Sub

Nach Ausführung des Makros sind der "Bereich" ( oBFB ), die "Bedingung" ( oB(1).Value ) und die "Vorlage" ( oB(2).Value ) richtig eingetragen, aber die so eingetragene "bedingte Formatierung" ist nicht aktiv, d.h., keine Einfärbung der betroffenen Zellen gemäß "Vorlage".

Nach manuell

[Format] > [Bedingte Formatierung] > [Verwalten...] > [Bearbeiten] > [OK] > [OK]

ist die "bedingte Formatierung" aktiv und die entsprechenden Zellen sind sofort eingefärbt.

Der BasicMakro-Code ist sowohl bei Pitonyak/Lenhardt als auch Dannenhöfer so angegeben wie oben. Mir ist jedenfalls kein Unterschied aufgefallen ...

Habe ich da noch irgendeinen Fehler in meinem BasicMakro-Code ?
Fehlt da noch was, um die "bedingte Formatierung" zu aktivieren oder liegt da ein BUG vor ?

Mir fällt im Moment nichts weiter ein,
bin für jeden Hinweis dankbar

Grüße
Hans-Werner :-))

Hallo, Hans-Werner,

die Formeln müssen englisch sein. Versuch's mal mit:

oB(1).Value = "INDIRECT(ADDRESS(ROW();COLUMN()))-INDIRECT(ADDRESS(ROW()-1;COLUMN())) < 0"

Schöne Grüße
Volker

oB(1).Value =
"INDIREKT(ADRESSE(ZEILE();SPALTE()))-INDIREKT(ADRESSE(ZEILE()-1;SPALTE()))
< 0"

Abgesehen davon, dass diese Formel fehlerhaft ist, nämlich für Zeile 1
("Zeile()" = 0, und davon 1 abgezogen, ergibt als Adresse -1), weiß ich
auch nicht, warum die Bedingte Formatierung nicht aktualisiert wird;
scheint aber einfach so zu sein.

Nach Ausführung des Makros sind der "Bereich" ( oBFB ), die "Bedingung"
( oB(1).Value ) und die "Vorlage" ( oB(2).Value ) richtig eingetragen,
aber die so eingetragene "bedingte Formatierung" ist nicht aktiv, d.h.,
keine Einfärbung der betroffenen Zellen gemäß "Vorlage".

Yepp; auffällig ist auch, dass die Formel nur mit Kleinbuchstaben in der
Bedingten Formatierung steht, obwohl sie im Makro explizit in
Großbuchsteben angegeben ist. Eine aktive Formel wird aber immer in
Großbuchstaben umgewandelt, selbst wenn man sie in Kleinbuchsaben
eingibt. Und nachdem du ...

Nach manuell

[Format] > [Bedingte Formatierung] > [Verwalten...] > [Bearbeiten] >
[OK] > [OK]

ist die "bedingte Formatierung" aktiv und die entsprechenden Zellen sind
sofort eingefärbt.

ausgeführt hast, /steht/ sie auch in Großbuchstaben da. Das deutet für
mich darauf hin, dass da was grundsätzliches schief läuft. Aber ob das
ein Bug ist, oder einfach grundsätzlich gar nicht vorgesehen, kann ich
nicht sagen.

Ich hab jedenfalls noch nie eine Bedingte Formatierungen per Makro
gesetzt, sondern diese immer einfach über das Format direkt kopiert
(copy&paste).

Wolfgang

Hallo Volker, Hans-Werner,

das funktioniert!
Kannst du erklären, warum das so ist? Versteht die Zuweisung in Basic nur die englische Formulierung, die wahrscheinlich die eigentlich gültige ist? Stößt der Dialog für die Bedingte Formatierung da die "Übersetzung" an?
Das nur, um mein Wissen zu erweitern.

Viele Grüße
Gerhard