Hallo, wie kann ich beim Verlassen einer calc Tabelle ein Makro auslösen?
Also nicht beim Schließen des Dokuments, sondern wenn der Nutzel z.B. von Tabelle3 zur Tabelle1 wechselt.
Stefan
Makro auslösen beim verlassen einer Tabelle
Moderator: Moderatoren
Re: Makro auslösen beim verlassen einer Tabelle
Das kommt auf die OOo-version an.Hallo, wie kann ich beim Verlassen einer calc Tabelle ein Makro auslösen?
In neueren Versionen z.B. über das Kontextmenü der Tabellenregister dort "Tabellenereignisse" und dort "Auswahl geändert".
Gruß
Stephan
Re: Makro auslösen beim verlassen einer Tabelle
Hallo Stephan,
OO 2.4 scheint demnach nicht zu den "neueren Versionen" zu gehören?
Aber vielleicht kann mir jemand, einen konkreten Tipp zu einem Listener geben kann, falls es keine andere Lösung gibt?
Stefan
OO 2.4 scheint demnach nicht zu den "neueren Versionen" zu gehören?
Aber vielleicht kann mir jemand, einen konkreten Tipp zu einem Listener geben kann, falls es keine andere Lösung gibt?
Stefan
Re: Makro auslösen beim verlassen einer Tabelle
nein (2.4 erschien im März 2008)OO 2.4 scheint demnach nicht zu den "neueren Versionen" zu gehören?
Wenn ich von 'neueren Versionen' spreche dann vorrangig weil ich garnicht genau weiß auf welche Versionen das zutrifft, auf jeden Fall auf OO 3.3.0 und AOO 3.4.0
z.B. wäre folgender Listener geeignet:Aber vielleicht kann mir jemand, einen konkreten Tipp zu einem Listener geben kann, falls es keine andere Lösung gibt?
http://www.openoffice.org/api/docs/comm ... eetChanged
Gruß
Stephan
Re: Makro auslösen beim verlassen einer Tabelle
Danke, aufgrund des Stichwortes habe ich nun folgenden Listener mir zusammengeklaut, ohne richtig zu verstehen wie er funktioniert. Aber er funktioniert! Jedoch ich möchte immer ein Makro, wenn ich von einer bestimmten Tabelle WEGGEHE.
Das könnte ich sicher mit irgendwelchen Merker-Variablen erkennen, aber vielleicht gibt es noch eine elegantere Methode,
Z.B. ein Listener der nicht reagiert, wenn man auf dem neuen Blatt angekommen ist, sondern wenn man vom alten geht (und dann dessen Name unmittelbar abfragen kann?
Das könnte ich sicher mit irgendwelchen Merker-Variablen erkennen, aber vielleicht gibt es noch eine elegantere Methode,
Z.B. ein Listener der nicht reagiert, wenn man auf dem neuen Blatt angekommen ist, sondern wenn man vom alten geht (und dann dessen Name unmittelbar abfragen kann?
Code: Alles auswählen
Global oListener As Variant
Global oView As Variant
global oListener
Sub add_Listener
Dim oDoc
Dim oVIEW
' get the model
oDoc = thisComponent
' get the controller
oView = oDoc.getCurrentController()
' create the listener
oListener = CreateUnoListener ("XList_", "com.sun.star.sheet.XActivationEventListener")
' add the listener to controller
oView.addActivationEventListener (oListener)
' msgBox "XActivationEventListener added"
End Sub
Sub remove_Listener
' remove the listener from controller
oView.removeActivationEventListener (oListener)
msgBox "XActivationEventListener removed"
End Sub
'______________________________________________________
' Interface com.sun.star.sheet.XActivationEventListener
'______________________________________________________
' method activeSpreadsheetChanged()
Sub XList_activeSpreadsheetChanged ( oEvento )
dim oSheet
dim sSheetName
' get the event object
oSheet = oEvento.ActiveSheet
sSheetName = oSheet.getName()
if sSheetName = NameWirtschaftsblatt then
msgBox (sSheetName, 176, "Active Sheet")
end if
End Sub
'_________________________________________________________________
' method disposing() of interface com.sun.star.lang.XEventListener
' !! It isn't necessary !!
Sub XList_disposing ( oEvt )
' nothing to do
End Sub
Re: Makro auslösen beim verlassen einer Tabelle
Sorry, blöde Frage, das geht mit globalen Variablen ja ganz einfach!