Hallo Hans-Werner, entschuldige, dass ich gestern abend nicht auch die Alternative erwähnt habe, aber man braucht auch seinen Schlaf. Der Hinweis darauf, dass für Calc-Formeln in Basic-Makros (Zelleigenschaft Formula) im Prinzip die englischen Bezeichner notwendig sind, ist in OOME nur am Rande erwähnt (S. 458). Aber man kann auch die Zelleigenschaft FormulaLocal nutzen, in diesem Fall ConditionalFormatLocal (s. S. 467). Damit sollten die deutschen Bezeichner funktionieren. Ich bin gerade nicht am Desktop und kann es nicht testen. Probiere es einfach mal.
Was die Groß- und Kleinschreibung betrifft, so kann ich mir vorstellen, dass es nur so funktionieren kann, dass der Code intern vor der Ausführung entweder in Groß- oder in Kleinschreibung umgesetzt wird. Das mag für Basic anders sein als in Calc. Und dann kommt noch die Übersetzung in die lokale Sprache dazu. Ob man das im vorliegenden Fall als Bug bezeichnen soll? Ich meine, wenn man die entsprechende Zelleigenschaft korrekt anwendet, ist alles gut. Schöne Grüße Volker > Am 23.06.2020 um 07:20 schrieb OoOHWHOoO <[email protected]>: > > 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 -- 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
