Seite 1 von 1

Re: Zellenfunktion umschalten

Verfasst: Mi, 06.05.2009 11:02
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

Re: Zellenfunktion umschalten

Verfasst: Mi, 06.05.2009 17:44
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

Re: Zellenfunktion umschalten

Verfasst: Do, 07.05.2009 09:27
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

Re: Zellenfunktion umschalten

Verfasst: Do, 07.05.2009 12:09
von turtle47
Danke Stephan,
jetzt bin ich auch wieder eine Nummer schlauer.

Re: Zellenfunktion umschalten

Verfasst: Fr, 15.05.2009 16:19
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.

Re: Zellenfunktion umschalten

Verfasst: Di, 19.05.2009 00:16
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