Date: prev next · Thread: first prev next last
2022 Archives by date, by thread · List index


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.