N A C H T R A G
Was mir eben noch aufgefallen ist:
Mit || oB(1).Value =
"INDIRECT(ADDRESS(ROW();COLUMN()))-INDIRECT(ADDRESS(ROW()-1;COLUMN())) <
0" || wird die Bedingung via Makro funktionierend eingetragen und so ||
INDIREKT(ADRESSE(ZEILE();SPALTE()))-INDIREKT(ADRESSE(ZEILE()-1;SPALTE()))
< 0 || angezeigt, wenn man sich nach Makro-Ausführung über das "Bedingte
Formatierung"-Menü die via Makro eingetragene "bedingte Formatierung"
anschaut.
Das ist schon etwas "BUGGY", aber zumindest doch ziemlich inkonsistent
und/oder verwirrend.
Gruß
Hans-Werner :-))
-------------------------------------------------------------------------------------------------------
Hallo Volker,
ganz herzlichen Dank für den Hinweis.
Mit || oB(1).Value =
"INDIRECT(ADDRESS(ROW();COLUMN()))-INDIRECT(ADDRESS(ROW()-1;COLUMN())) <
0" || funktioniert es, wie es sollte.
Mit || oB(1).Value =
"INDIREKT(ADRESSE(ZEILE();SPALTE()))-INDIREKT(ADRESSE(ZEILE()-1;SPALTE()))
< 0" || passiert folgendes:
Nach Ausführung des Makros erscheint die Formel erst mal so ||
indirekt(adresse(zeile();spalte()))-indirekt(adresse(zeile()-1;spalte()))
< 0 || unter [Format][Bedingte Formatierung].
Nach manuell [Format] > [Bedingte Formatierung] > [Verwalten...] >
[Bearbeiten] > [OK] > [OK] ist sie dann so ||
INDIREKT(ADRESSE(ZEILE();SPALTE()))-INDIREKT(ADRESSE(ZEILE()-1;SPALTE()))
< 0 || unter [Format][Bedingte Formatierung] eingetragen und
funktioniert.
In einem Beispiel von
http://www.dannenhoefer.de/faqstarbasic/BedingteFormatierungInsert.html#BedingteFormatierungInsert
ist die Formel auch in englischer Sprache eingetragen ||
oCondition(1).Value = "SUM(A1:A10) > 100" ||, was mir aber erst mal
nicht wirklich aufgefallen ist. Bei Pitonyak/Lenhardt gibt es kein
Beispiel mit "Formel".
Aber weder bei Pitonyak/Lenhardt noch bei Dannenhöfer wird explizit
darauf hingewiesen, dass in einer Formel englische Ausdrücke zu benutzen
sind. Andere WEB-Quellen hatte ich nicht recherchiert.
Ob BUG oder nicht, ist für mich als einen "Nicht-LO-Software-Entwickler"
nicht wirklich entscheidbar, aber auffällig ist schon, dass die
(deutsche) Formel nach manuell [Format] > [Bedingte Formatierung] >
[Verwalten...] > [Bearbeiten] > [OK] > [OK] in Großbuchstaben
umgewandelt wird und dann auch in deutscher Version funktioniert.
Hinweise für Wolfgang:
[1] Die Formel ist nicht fehlerhaft, sondern zur besseren
Nachvollziehbarkeit aus dem "Zusammenhang gerissen" eines 1347 Zeilen
langen Makros.
[2] Normalerweise setze ich "bedingte Formatierungen" auch manuell, es
kommt immer auf den Kontext der gesamten Anwendung an.
Gruß
Hans-Werner
Hier noch der Vollständigkeit halber die ursprüngliche
Problembeschreibung:
[1] CALC-Tabelle
|1|4|1|4|
|2|3|2|3|
|3|2|3|2|
|4|1|4|1|
[2] BasicMakro
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" ' ERROR-Variante
' oB(1).Value =
"INDIRECT(ADDRESS(ROW();COLUMN()))-INDIRECT(ADDRESS(ROW()-1;COLUMN())) <
0" ' OKAY-Variante
oB(2).Name = "StyleName"
oB(2).Value = "Bad"
oBF.addNew(oB())
oBFB.ConditionalFormat = oBF
End Sub
--
Liste abmelden mit E-Mail an: [email protected]
Probleme?
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy