Verteilte Bereichsmakrierungen auslesen

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

Moderator: Moderatoren

hawe
****
Beiträge: 151
Registriert: Di, 05.08.2008 19:47

Verteilte Bereichsmakrierungen auslesen

Beitrag von hawe »

Hallo zusammen,

ich hab mehrere mittels STRG zusammengefasste Zellenbereiche makriert.
z.B. A1:A9;D1:D9,A10:A19,D10:D19;B20
weiß jemand wie ich die Adressen dieser Bereiche zurück bekomme.
Ich möchte sie als NamedRanges festlegen. Und daraus eine Formel machen, die ich in die letzte Markierung eintrage.
Wenn ich getCurrentSelection() auslese, dann wird RangeAddressesAsSring zu "Tabelle1.B1:B19;Tabelle1.D1:D20" zusammengefasst.
Jemand eine Idee, wie an meine Bereichsaufteilung herankomme?
Gruss HW
Win7/SuSe 11.2 - LO 3.3
hawe
****
Beiträge: 151
Registriert: Di, 05.08.2008 19:47

Re: Verteilte Bereichsmakrierungen auslesen

Beitrag von hawe »

Hm,

soweit war ich schon.
Das Problem - siehe mein Post - ergibt sich dadurch, dass die Bereiche in einander überlaufen, nur weil sie zufällig aneinanderstoßen:
Aus A1:A9;D1:D9,A10:A19,D10:D19;D20 wird Tabelle1.B1:B19;Tabelle1.D1:D20.
und ich brauche sie entsprechend der vorgegebenen Markierung und Reihenfolge...
Ich markiere 5 Bereiche erkannt werden aber 2!
Gruss HW
Win7/SuSe 11.2 - LO 3.3
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Verteilte Bereichsmakrierungen auslesen

Beitrag von Stephan »

und ich brauche sie entsprechend der vorgegebenen Markierung und Reihenfolge...
das wird nicht gehen weil OO diese Bereiche bei Hinzukommen neuer Bereiche anscheinend 'verschmilzt'.

Als Lösungsweg müsstest Du ungefähr so vorgehen:

es gibt meiner Erinnerung nach einen, entweder Mouse- oder Selection-, Listener der das Ereignis 'am Ende des Markierens' beeinhaltet, diesen müsstest du für das Tabellenblatt registrieren und beim Auftreten des Ereignisses immer die aktuelle Selection zwischenspeichern (rückgenommene Selectionen entsprechend 'aussondern'), dann hast Du zum Zeitpunkt wo Du die Gesamtselektion weiterverarbeiten willst immer alle bis dahin gültigen Teilselektionen in Reihenfolge.

Um den richtigen Listener zu finden lies Dir unter:
http://www.openoffice.org/api/docs/comm ... ex-24.html
alles durch was mit X beginnt und mit "listener" endet und wenn Du auf etwas stößt was mit "Mouse" oder "Selection" zu tun hat schau Dir dessen methoden an.

Außerdem:
prinzipiell geht das auch mit dem Ereignis "Auswahl geändert" des Tabellenregisters, ich glaube nur das meldet jede Änderung und nicht erst die Änderung bei Abschluss des jeweiligen Zwischenschritts der Markierung (also da wo die Maustaste wieder losgelassen wird).


Eigentlich müsste das so gehen und wäre dann eine ganz interessante Programmierung, einzig:

das Du eine solche Lösung überhaupt brauchst ist wohl bereits Hinweis dafür das Dein Weg nicht der Richtige sein wird, denn fast alles was nicht mit normalen Mitteln geht ist etwas dem die Anwender noch nie begegnet sein werden und es fühlt sich dann bedienungsmäig immer irgendwie ungewohnt an.

Verlass Dich bei solchen Dingen auch nicht darauf das Du belegen kannst das etwas besser ist als das Bestehende, wenn etwaas den Anwendern ungewohnt erscheint ist es sehr schwer sie zu überzeugen, auch wenn das Neue objektiv besser ist.


Gruß
Stephan
hawe
****
Beiträge: 151
Registriert: Di, 05.08.2008 19:47

Re: Verteilte Bereichsmakrierungen auslesen

Beitrag von hawe »

Hallo,

ich habs net so mit Eventhandlerer...
Ich lasse einfach eine Leerzeile zwischen den Bereichen und ergänze die ausgelassene Zeile(n) im Code.
Mit etwas Disziplin beim Markieren der Selections sollte es dann funktionieren.
Tut es auch - Danke!
Gruss HW
Win7/SuSe 11.2 - LO 3.3
Antworten