Zellenfunktion umschalten

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

Moderator: Moderatoren

turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Zellenfunktion umschalten

Beitrag von turtle47 »

Hallo Jordy,

schau Dir mal beigefügtes Beispiel an, ob das so in etwa Deinen Vorstellungen entspricht.
Leider hattest Du keine ganauen Angaben über die bei Dir vorhandene Tabellenstruktur gemacht.

In der Beispieldatei wird der Zellbereich von "F2:F101" von einem Listener auf Änderungen überwacht.
Dieser wird mit dem Ereignis "Dokument öffnen" gestartet.

Jürgen
Dateianhänge
Verein_Fehlbeträge_V1.ods
(12.3 KiB) 567-mal heruntergeladen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Zellenfunktion umschalten

Beitrag von turtle47 »

Jordy hat geschrieben:Aber was mir nicht klar ist, wie Data_Change eingentlich verknüpft ist
Mir ehrlich gesagt auch nicht. Den Listener habe ich irgend wann mal aus dem I-Net gefischt.
Jordy hat geschrieben:hatte erwartet dass irgendwo so eine Art Call-Back-Hook zu finden ist, also irgendwo diese aufzurufenden Funktionen mit dem Listener verknüpft werden.
Ich auch.

Die "Sub Data_Change" habe ich dagegen selber geschrieben. :D
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Zellenfunktion umschalten

Beitrag von Stephan »

Sonst jemand hier, der uns beiden vielleicht den magischen Zusammenhang zwischen listener und Data_Change in obigen Beispiel erklären kann?


Die Verknüpfung von Listenern mit ihren Ereignissen findet grundsätzlich über den bei der Registrierung des Listeners verwendeten Namensvorsatz statt:

oListener = CreateUnoListener( "CELL_","com.sun.star.chart.XChartDataChangeEventListener" )

(Der trennende/verbindende Unterstrich ist obligatorisch)

zur Zuordnung muß genau der gleiche Vorsatz im Namen des Ereinis-Makros verwendet werden:

Sub Cell_chartDataChanged



Gruß
Stephan
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Zellenfunktion umschalten

Beitrag von turtle47 »

Danke Stephan,
jetzt bin ich auch wieder eine Nummer schlauer.
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Zellenfunktion umschalten

Beitrag von turtle47 »

Jordy hat geschrieben:Nur ein klein wenig langsam ist das ganze
Ich verstehe Dein Problem nicht.
Bei meinem Läppi, 1,5 GHz 1024 MB RAM, dauert der Durchlauf maximal 1 Sekunde.
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Zellenfunktion umschalten

Beitrag von Stephan »

im Konkreten reicht es wohl aus die aktuelle Selektion zu benutzen:

Code: Alles auswählen

ThisComponent.GetCurrentSelection
aus Dieser läßt sich die Adresse lesen z.B. mit:

Code: Alles auswählen

With ThisComponent.GetCurrentSelection.getCellAddress
   Msgbox "Zeile: " & .Row & CHR(13) & _
          "Spalte: " & .Column & CHR(13) & _
          "Tabelle: " & .Sheet
End With

Gruß
Stephan
Antworten