Ausschließlich Bedingte Formatierung schützen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Maggus
****
Beiträge: 108
Registriert: Mo, 01.08.2005 13:32
Kontaktdaten:

Ausschließlich Bedingte Formatierung schützen

Beitrag von Maggus »

Hallo,
es geht um ein offensichtlich heikles Thema. Mein Ziel ist es, die Bedingte Formatierung bestimmter Zellen zu sichern, jedoch die Eingabe von Inhalten zuzulassen. Speziell benötigt für Copy&Paste.

Die Forensuche sagt mir, dass das gar nicht so einfach ist. Es gibt ja sicherlich mehrere Lösungswege, nur welcher ist der Beste?

Die angehängte Datei zeigt, wie ich das mit dem Code von Paolo Mantovani versucht habe zu lösen. Läuft einigermaßen gut.

Nun kann man aber ja unter Linux auch das zuletzt markierte mit der mittleren Maustaste abwerfen. Aber das Ereignis bekomme ich nirgendwo mit. Auch die Makroaufnahme / Dispatcher zeigt kein Ereignis an. Gibt es da eine spezielle Lösung oder muss ich doch ein onChangeEvent auf alle Zellen setzen? Problem dann: Ereignis wurde schon ausgeführt und dann wäre sowas nötig wie: -> rückgängig machen -> Formatierung auslesen -> wiederherstellen -> alte Formatierung drüberbügeln.

Oder vielleicht gibts ja inzwischen eine viel elegantere Lösung dafür.

Gruß,
Dateianhänge
dispatcher_abfangen.ods
(10.34 KiB) 65-mal heruntergeladen
Maggus (:o)
Maggus
****
Beiträge: 108
Registriert: Mo, 01.08.2005 13:32
Kontaktdaten:

Re: Ausschließlich Bedingte Formatierung schützen

Beitrag von Maggus »

Bin inzwischen der Meinung, da obiges zu instabil und aufwendig ist, es wäre besser wie folgt zu lösen:

- Listener auf Zellen oder beim Speichern Prozedur ausführen
- Prozedur kopiert versteckte Sheets über sichtbare mit nur dem Format

Aber: wie kann ich ohne Dispatcher ein Sheet oder einen Bereich kopieren und dann nur das Format einfügen?

Gruß,
Maggus (:o)
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Ausschließlich Bedingte Formatierung schützen

Beitrag von Karolus »

Hallo

Vielleicht zuerst ..[sheet].copyRange in einen temporären Bereich, auf diesem Bereich [tmpRange].clearContents(31) und im nächsten Schritt kopierst du den temporären Bereich dorthin wo du möchtest.

Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Antworten