Makro auslösen beim verlassen einer Tabelle

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Makro auslösen beim verlassen einer Tabelle

Re: Makro auslösen beim verlassen einer Tabelle

von delta9 » Mo, 20.08.2012 13:44

Sorry, blöde Frage, das geht mit globalen Variablen ja ganz einfach!

Re: Makro auslösen beim verlassen einer Tabelle

von delta9 » Mo, 20.08.2012 13:39

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?


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

von Stephan » Mo, 20.08.2012 11:55

OO 2.4 scheint demnach nicht zu den "neueren Versionen" zu gehören?
nein (2.4 erschien im März 2008)

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
Aber vielleicht kann mir jemand, einen konkreten Tipp zu einem Listener geben kann, falls es keine andere Lösung gibt?
z.B. wäre folgender Listener geeignet:
http://www.openoffice.org/api/docs/comm ... eetChanged



Gruß
Stephan

Re: Makro auslösen beim verlassen einer Tabelle

von delta9 » Mo, 20.08.2012 11:34

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

Re: Makro auslösen beim verlassen einer Tabelle

von Stephan » Mo, 20.08.2012 11:08

Hallo, wie kann ich beim Verlassen einer calc Tabelle ein Makro auslösen?
Das kommt auf die OOo-version an.

In neueren Versionen z.B. über das Kontextmenü der Tabellenregister dort "Tabellenereignisse" und dort "Auswahl geändert".


Gruß
Stephan

Makro auslösen beim verlassen einer Tabelle

von delta9 » Mo, 20.08.2012 11:02

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

Nach oben