Hey zusammen,
ja, natürlich gibt es einen entsprechenden API Zugang.
Während der bisherige nach wie vor besteht (und auch identisch ist mit
AOO) gibt es für die "neuen" Funktionen einen eigenes Sammeobjekt.
Ich zitiere mal aus meinem eigenen Buch ;)):
/Die folgende Beschreibung dient der Suche und als Ausgangspunkt für//
//eigene Recherchen://
//Ausgangspunkt ist auch hier das jeweilige Tabellenblatt.//
//oSheet = thisComponent.sheets.getByName("<Tabellenblattname>")//
//Neu ist nun ein (Sammel-)Objekt ConditionalFormats, welches das//
//Interface com.sun.star.sheet.XConditionalFormats implementiert. Diese//
//Interface stellt folgende Methoden zur Verfügung://
//Methode Beschreibung//
//createByRange(oRange) oRange wird als
com.sun.star.sheet.XSheetCellRanges//
//Objekt übergeben und definiert die Zellen, auf die//
//die aktuelle Bedingung(en) gilt(gelten).//
//getContitionalFormats()//
//liefert einen Array (Sequenz) aller Bereiche mit//
//bedingten Formatierungen zurück. Die Indexnummer//
//entspricht der ID.//
//getLength() als long: liefert die Anzahl der Zellbereiche mit//
//bedingter Formatierung.//
//removeByID(nID as//
//long)//
//entfernt den mit der nID bezeichneten Bereich aus//
//dem Sammelobjekt.//
//Das einzelne Objekt eines Zellbereichs mit bedingter Formatierung erhält//
//man dann als Element der Liste, also z.B.://
//aConFormats = oSheet.ConditionalFormats.getContitionalFormats()//
//oBedFormat = aConFormats(0)//
//Ein Zellbereich mit bedingter Formatierung stellt ein Objekt des Typs//
//com.sun.star.sheet.ConditionalFormat dar, mit einer wichtigen
Eigenschaf://
//Range – als com.sun.star.sheet.XSheetCellRanges Objekt. Dieses
Sammelobjekt//
//beinhalten nun alle zusammenhängenden CellRange-Objekte, die//
//wiederum jeweils ein Objekt ConditionalFormat beinhalten, das ein
Interface//
//des Types com.sun.star.sheet.XsheetConditionalEntries implementiert.//
//Dort sind dann die Eigenschafen der jeweiligen Bedingung abgelegt, und//
//zwar als Liste. Die einzelne Bedingung erhalten Sie über die Methoden//
//getByName() oder getByIndex(), die Namen sind abgelegt in der Liste//
//ElementNames.//
//Der Operator wird im ENUM com.sun.star.sheet.ConditionalOperator
verwaltet, Formatvorlagen und Vergleichsgrenzen sind selbst-sprechend, die
SourcePosition definiert einen Zellbereich als Qelle.
Insgesamt ist das alles etwas komplexer geworden, die verschiedenen
Verschachtelungen nicht ganz einfach zu durchschauen. Auf der anderen
Seite bietet die Struktur Raum für Erweiterungen.
Beim Arbeiten mit den Objekten und Interfaces ist es extrem wichtig, die
genaue Schreibweise einzuhalten. Oft unterscheiden sich die Objekte
lediglich
um ein angehängtes »s« ( ConditionalFormat, ConditionalFormats),
Schreibfehler führen schnell zu vielen Problemen./
Leider gibt es kaum brauchbare Ansätze wie nun die einzelnen Parameter,
Operatoren etc zu setzen sind.
Hier hilft eigentlich nur "reverse engineering" - das heisst man nimmt
ein leeres Tabellenblatt, baut seine gewünschte Formatierung Schritt für
Schritt in der Oberfläche auf und prüft nach jedem kleinen Schritt die
Veränderungen des Objectes "ConditionalFormats" mit xray oder so.
Kennnt man so die nötigen Einstellungen, kann man sie auch per makro
setzen.
Ist halt ein wenig Arbeit....
Viele Grüße
Thomas
Am 08.12.2022 um 17:46 schrieb OoOHWHOoO:
Hallo Henry,
ich habe auch mal den englischen Ausdruck
»Format Conditional Data Bar«
ge_GOOGLE_t: Libre Office macro Format Conditional Data Bar
https://ask.libreoffice.org/t/how-to-set-conditional-formatting-data-bar-from-a-macro/3903
[...] At the moment there is no API for the new conditional formats as
they are in stabilization phase and may require one more refactoring.
At least in LibO 4.2 I will provide a public API for that feature. [...]
Ob es da mittlerweile eine »public API for that feature« gibt, keine
Ahnung.
Aber vielleicht gibt es ja hier im Forum jemand, der das weiß ...
Vielleicht findest Du ja auch hier einen Hinweis:
https://api.libreoffice.org/
Complete LibreOffice 7.3 API reference.
https://api.libreoffice.org/docs/idl/ref/index.html
Grüße
Hans-Werner ;-))
------ Originalnachricht ------
Von "Henry Springer" <Henry.Springer@gmx.net>
An users@de.libreoffice.org
Datum 08.12.2022 12:49:58
Betreff Re: [de-users] Bedingte Formatierung per Makro setzen
Moin Hans-Werner,
vielen Dank für die Dokumente und die Infos dazu.
Einen großen Teil habe ich dazu auch befragt, also OOME 4.0 und auch den
Dannenhöfer, dort finde ich auch bedingte Formatierung über Bedingungen.
Allerdings ist dies bei beiden sehr knapp gefasst.
Die andere Art der Formatierung, im LO unter bedingte Formatierung
einsortiert,
ist eigentlich keine bedingte Formatierung, sondern eine Darstellung
der Inhalte
in Abhängigkeit einer Range. Eine davon ist im LO unter bedingte
Formatierung -
AlleZellen - Datenbalken zu finden. Diese Art möchte ich noch im
Makro abbilden
können, habe das aber über Suchmaschinen noch nicht gefunden.
Viele Grüße
Henry
Am 08.12.2022 um 08:05 schrieb OoOHWHOoO:
Hallo Henry,
hier
»BASIC-Makros für OpenOffice und LibreOffice - OOME_deutsch -
27.01.2021.odt«
solltest Du entsprechende Informationen (vielleicht) finden.
Die originale Download-Adresse
http://www.uni-due.de/~abi070/count.php?id=OOME_deutsch.odt
funktioniert zurzeit nicht wegen einem CYBER-Angriff auf die
IT-Infrastruktur
der Uni Duisburg.
Du kannst dieses Dokument (und weiter andere) hier von meine
MagentaCloud
herunterladen:
https://magentacloud.de/s/PHM9Xec5pKX6cHS
»BASIC-Makros für OpenOffice und LibreOffice - OOME_deutsch -
27.01.2021.odt«
»OpenOffice.org - Makros-Kochbuch (Stadt München).pdf«
»StarBasic - FAQ [ www.dannenhoefer.de ].odt«
»StarOffice - Programmer’s Tutorial.pdf«
Hier könntest Du vielleicht auch noch etwas finden:
http://www.dannenhoefer.de/faqstarbasic/
Und dann gibt es noch die beiden Bücher
»Makro Grundlagen - LibreOffice / OpenOffice Basic« von Thomas
Krumbein, zum
Beispiel hier:
https://www.eurobuch.de/buch/isbn/9783943771039.html
Grüße
Hans-Werner ;-))
------ Originalnachricht ------
Von "Henry Springer" <Henry.Springer@gmx.net>
An "users@de.libreoffice.org" <users@de.libreoffice.org>
Datum 08.12.2022 01:06:35
Betreff Re: [de-users] Bedingte Formatierung per Makro setzen
Schade,
hat niemand einen Tipp für mich, wie dies gehen könnte?
Ich habe es soweit "vereinfacht", jetzt sind es nur noch
Bedingungen, die ich
per Makro setzen kann und Datenbalken, wo ich die zugehörige
Makro-Funktion noch
nicht gefunden habe.
Es sind in jeder Tabelle ca. 30 verschiedene bedingte Formate, das
ist zu
manuell nur sehr mühsam zu korrigieren. Gibt es weitere
Ansprechpartner, wo ich
nachfragen könnte?
Vielen Dank für eine Antwort
Henry
Ich bin jetzt wieder auf diese Version zurück, die 7.4 hat für mich
Probleme
beim Einlesen und Konvertieren von Dateien.
Version: 7.3.7.2 (x64) / LibreOffice Community
Build ID: e114eadc50a9ff8d8c8a0567d6da8f454beeb84f
CPU threads: 12; OS: Windows 10.0 Build 19045;
UI render: Skia/Raster; VCL: win
Locale: de-DE (de_DE); UI: de-DE
Calc: CL
Am 30.11.2022 um 23:27 schrieb Henry Springer:
Moin,
ich habe einige Tabellen, die gespickt mit bedingten Formaten ist.
Da sich in
diesen Tabellen regelmäßig Änderungen ergeben, sehen nach einiger
Zeit die
Bereiche der bedingten Formatierungen ziemlich wild aus, da die
Formate beim
Verschieben von Zellen oder Zeilen immer mitziehen.
Daher habe ich angefangen, diese per Makro zu setzen, so dass ich
ab und an
alles wieder korrigiert habe, denn manuell dies zu ändern ist sehr
mühsam.
Für Bedingungen habe ich Anleitungen gefunden und bereits
umgesetzt, aber für
die anderen Arten der bedingten Formatierung fehlt mir der Zugang
im Makro
Es geht hier um bedingte Formatierung
... Bedingung, bereits erledigt
... Farbbalken,
... Datenbalken,
... Symbolsatz.
Vielen Dank für den richtigen Tipp
Henry
PS:
Version: 7.4.3.2 (x64) / LibreOffice Community
Build ID: 1048a8393ae2eeec98dff31b5c133c5f1d08b890
CPU threads: 12; OS: Windows 10.0 Build 19045;
UI render: Skia/Raster; VCL: win
Locale: de-DE (de_DE); UI: de-DE
Calc: CL
-- Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
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: users+unsubscribe@de.libreoffice.org
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
--
Riederbergstr. 92
65195 Wiesbaden
Tel. 0611 - 188 53 39
Fax: 0611 - 188 53 40
e-Mail:tk@mic-consulting.de
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
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
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.