Tabellenereignis mit Basic zuweisen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.

BBCode ist eingeschaltet
[img] ist ausgeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Tabellenereignis mit Basic zuweisen

Re: Tabellenereignis mit Basic zuweisen

von Stephan » Di, 05.11.2019 14:51

Wie würde der Codesnibsel aussehen, wenn das Makro nicht im Dokument, sondern unter 'Meine Makros & Dialoge' gespeichert ist?
z.B. mit:
"vnd.sun.star.script:Standard.Module1.Main?language=Basic&location=application"
PS: Wie setzt man diesen Beitrag auf gelöst?????
indem Du DEinen ersten Beitrag Editierst und dort vor den Anfang des 'Betreffs' schreibst "[Gelöst]"


Gruß
Stephan

Re: Tabellenereignis mit Basic zuweisen

von Johannes » Di, 05.11.2019 14:15

Hallo Stephan,

ja, das Makro ist im Dokument gespeichert. Hätte ich noch erwähnen können.

Danke für das kurze Script, hat natürlich funktioniert. Damit ist mein Problem gelöst.

Aus reiner Neugier:
Wie würde der Codesnibsel aussehen, wenn das Makro nicht im Dokument, sondern unter 'Meine Makros & Dialoge' gespeichert ist?


Vielen Dank für deine Mühe und deiner Zeit.

LG Johannes

PS: Wie setzt man diesen Beitrag auf gelöst?????

Re: Tabellenereignis mit Basic zuweisen

von Stephan » Di, 05.11.2019 13:27

z.B. wenn das zuzuweisende Makro im Dokument gespeichert ist:

Code: Alles auswählen

Dim Props(1) as new com.sun.star.beans.PropertyValue
Props(0).Name = "EventType"
Props(0).Value = "Script"
Props(1).Name = "Script"
Props(1).Value = "vnd.sun.star.script:Standard.Module1.Main?language=Basic&location=document"

oDoc.Sheets.getByName(BlattName).Events.ReplaceByName("OnChange", Props())

Hierbei "Standard.Module1.Main" durch die realen Werte für Bibliothek-Name, Modul-Name und Makroname ersetzt werden.


Gruß
Stephan

Tabellenereignis mit Basic zuweisen

von Johannes » Di, 05.11.2019 10:50

Hallo liebes Forum,

ich beschäftige mich noch nicht lange mit LO, konnte aber hier im Forum, über Google-Suche und Makrorecorder schon vieles Lernen und Herausfinden.
Ich arbeite mit Win10 und LO 6.3.2.2.
Mit der Forum- sowie Googlesuche konnte ich für mein Problem noch keine Lösung finden und auch der Makrorecorder brachte nicht das erhoffte Ergebnis. Vielleicht mache ich ja hier etwas Falsch!!
Darum möchte ich Euch nun um Hilfe bitten.
Ich habe ein Calc-Dokument mit einem Tabellenblatt, dem als Tabellenereignis - Inhalt geändert ein Makro zugewiesen wurde.
Wenn sich jetzt die Zelle J1 auf dem Tabellenblatt ändert, wird das Tabellenblatt kopiert, umbenannt und ans Ende gestellt. Das ganz Grob zum Hergang.

'-- Blatt kopieren
oDoc.Sheets().CopyByName(oSheets.Name, BlattName, oDoc.Sheets.Count)

Nun habe ich das Problem, das beim neuen Tabellenblatt dem Tabellenereignis - Inhalt geändert KEIN Makro mehr zugewiesen ist und ich es manuell wieder zuweisen muß.
Frage an Euch: Läßt sich dieser Mißstand gleich beim Kopieren des Tabellenblattes mit Angeben, das diese Makrozuweisung erhalten bleibt?
Oder gibt es anschließend nach dem Kopierbefehl die Möglichkeit über Basic diese Zuweisung wieder herzustellen?

Vielen Dank im Vorraus für Eure Hilfe.

LG Johannes

Nach oben