BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Auslösen eines Tabellenereignisses aus einem Makro heraus

Alles zur Programmierung im LibreOffice.
Antworten
rlotz
Beiträge: 4
Registriert: So 13. Aug 2017, 23:48

Auslösen eines Tabellenereignisses aus einem Makro heraus

Beitrag von rlotz » Di 7. Aug 2018, 18:36

Folgende Ausgangssituation,

ich habe einen recht universellen Dialog ("Assistent") mithilfe dessen ich Daten in ein beliebiges Calc Dokument einfügen kann.

Einige der Dokumente (aber nicht alle) haben ihrerseits an das Tabellen Ereignis "Inhalt geändert" gebundene Scripte die beim Eingeben von Daten per Hand aufgerufen werden.

Beim Einfügen von Daten mithilfe des Dialogs wird das "Inhalt geändert" Ereignis nicht gezündet.
Das Aufrufen des verbundenen Makros im Dialog führt bei Dokumenten mit ungebundenem Ereignis logischerweise zum Fehler.

Gibt es einen allgemeinen Befehl, um die mit dem "Inhalt geändert" Ereignis verbundenen Makros auszuführen, falls sie vorhanden sind oder es manuell zu zünden?

Vielen Dank im Voraus für eure Bemühungen.

Libre Office Version 5.4.7 32 bit

mikele
Beiträge: 1642
Registriert: Mo 1. Aug 2011, 20:51

Re: Auslösen eines Tabellenereignisses aus einem Makro heraus

Beitrag von mikele » Do 9. Aug 2018, 12:34

Hallo,
ich wüsste nicht, dass das geht. Du könntest doch auch einfach das Makro, dass durch das Ereignis ausgelöst werden soll, direkt aufrufen (in dem Makro, dass den Zellinhalt ändert).
Gruß,
mikele

rlotz
Beiträge: 4
Registriert: So 13. Aug 2017, 23:48

Re: Auslösen eines Tabellenereignisses aus einem Makro heraus

Beitrag von rlotz » Do 9. Aug 2018, 23:21

Hallo Mikele,

ja das würde bei dem Tabellenblatt mit dem gebundenen Makro funktionieren.
Allerdings würde der Aufruf dann auch erfolgen wenn ich mich in einem anderen Tabellenblatt in derselben Mappe befinde obwohl das nicht gewünscht ist.
Zuletzt, würde dies in einer Mappe die garnicht über das gebunden Makro verfügt zu einem Fehler führen.

mmmh...

Als letzte Möglichkeit bliebe das SheetEvents.GetByName("OnChange")(1).Value auf genau den Namen des Makros zu prüfen, und selbiges nur dann per Select Case Verzweigung aufzurufen.
Ist nur nicht besonders elegant, da ich dann für jedes evtl vorkommende Makro ein Case vorsehen muss...

Trotzdem Danke für die Rückmeldung

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten