🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird? [gelöst]

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
nrst
Beiträge: 16
Registriert: Mo 19. Mai 2014, 11:13

Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird? [gelöst]

Beitrag von nrst » Di 9. Mai 2023, 21:23

Hallo Alle,
ich habe ein (neues) Makro geschrieben und zwei ähnlichen calc Dateien (eigentlich .xls) sind geöffnet.
Wie kann ich bestimmen bei welcher Datei mein Makro ausgeführt wird bitte?
Makro.png
Makro.png (70.63 KiB) 1633 mal betrachtet
Zuletzt geändert von nrst am Mi 10. Mai 2023, 15:34, insgesamt 1-mal geändert.

Mondblatt24
* LO-Experte *
Beiträge: 3346
Registriert: Fr 3. Mär 2017, 17:12

Re: Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird?

Beitrag von Mondblatt24 » Mi 10. Mai 2023, 06:44

nrst hat geschrieben:
Di 9. Mai 2023, 21:23
ich habe ein (neues) Makro geschrieben
Und warum stellst Du die Frage dann im Bereich CALC?

LibreOffice Programmierung
Win 11 (x64) ▪ LO 25.2.5.1 (x64) ▪ AOO Portable 4.1.15
Wenn Eure Frage zutreffend beantwortet wurde, seid so nett und fügt dem Betreff der Eingangsfrage [GELÖST] hinzu.

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2539
Registriert: Fr 10. Dez 2010, 10:01

Re: Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird?

Beitrag von karolus » Mi 10. Mai 2023, 06:52

Hallo

Die Laufzeitfunktion »thisComponent« aus »MeineMakros…« heraus aufgerufen führt zum momentan aktiven Dokument.

falls sich der identische Code in einem Dokument befindet deutet »thisComponent« IMMER auf das Dokument in dem der Code gespeichert ist.

(nb. die »or« -verknüpfung der CellFlags funktioniert zwar so in BASIC***, trotzdem würde ich da schlicht per +operator addieren )

***off Topic: die CellFlags sind eigentlich nur 2er-potenzen ( 1 2 4 8 … 512 ) daher kann man in python summieren oder per bitwise_or operator | verknüpfen.
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

nrst
Beiträge: 16
Registriert: Mo 19. Mai 2014, 11:13

Re: Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird?

Beitrag von nrst » Mi 10. Mai 2023, 09:19

Hallo Mondblatt24 und karolus,

danke sehr für Ihre Antworte!
Leider komme ich mit karolus Antwort nicht zurecht.
Ich weiß nicht, wie man „Die Laufzeitfunktion »thisComponent« aus »MeineMakros…« heraus aufgerufen" umsetzen kann.
Es ist auch nicht sehr wichtig.
Ich habe die zwei .xls Blätter zugeschloßen und nur eines wieder geöffnet.
Vor 25 Jahren kannte ich mich gut mit Excels Visual Basic aus.
Ich dachte mir, dass Libre Office Basic ähnlich ist, und dass mein Gedächtnis in Ordnung ist, aber ich bin mindestens halbwegs verloren.
Die 5-Linien Software habe ich abgeschrieben und angepasst. Sie funktioniert.
Mein nächstes Ziel, ist sie bei einem .calc bzw. .xls Blatt zu registrieren.
Ich weiß nicht, wie das geht, denn das Makro wurde unter „Mein Makro..." und nicht unter einem Blatt geschrieben. Ich würde mich freuen, dies zu erfahren! :-)

PS: @Mondblatt: Ich arbeite nur mit Libreoffice und speichere meine Blätter als .xls-Dateien.
Zuletzt geändert von nrst am Mi 10. Mai 2023, 11:09, insgesamt 1-mal geändert.

mikele
* LO-Experte *
Beiträge: 1932
Registriert: Mo 1. Aug 2011, 20:51

Re: Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird?

Beitrag von mikele » Mi 10. Mai 2023, 10:20

Hallo,
Ich arbeite nur mit Libreoffice und speichere meine Blätter als .xls-Dateien.
Ganz schlechte Idee, da nun stets beim Öffnen und Speichern hin und her konvertiert wird (im Hintergrund). Nutze .ods und nur wenn du die Datei weitergeben willst und derjenige nicht anders will, dannexportiere als .xlsx.
Da das Makro unter "Meine Makros" gespeichert ist und von dort aufgerufen wird, bezieht sich ThisComponent auf die momentan aktive Datei.
Mit ThisComponent.Url könntest du z. B. den kompletten Dateiname inkl. Pfad erfahren (wenn die Datei schon mal gespeichert wurde).
Gruß,
mikele

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2539
Registriert: Fr 10. Dez 2010, 10:01

Re: Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird?

Beitrag von karolus » Mi 10. Mai 2023, 10:21

nrst hat geschrieben:
Mi 10. Mai 2023, 09:19
Leider komme ich mit karolus Antwort nicht zurecht.
Ich weiß nicht, wie man „Die Laufzeitfunktion »thisComponent« aus »MeineMakros…« heraus aufgerufen" umsetzen kann.
Das tust du doch bereits, wie dein Screenshot zeigt!
nrst hat geschrieben:
Mi 10. Mai 2023, 09:19
PS: @Mondblatt: Ich arbeite nur mit Libreoffice und speichere meine Blätter als .xls-Dateien.
Warum speicherst du nicht als .ods ?
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

nrst
Beiträge: 16
Registriert: Mo 19. Mai 2014, 11:13

Re: Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird?

Beitrag von nrst » Mi 10. Mai 2023, 14:35

Hallo mikele und karolus!

Ich verwende .xls, weil ich manchmal die Dateien zu jemandem, der nur Excel verwendet, sende. Zwar sollte Excel die .ods Dateien lesen, aber da bin ich mir nicht sicher.

Danke karolus für deine Erklärung!
Jetzt verstehe ich besser.

Benutzeravatar
RPP63
Beiträge: 172
Registriert: Sa 21. Apr 2018, 09:33

Re: Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird? [gelöst]

Beitrag von RPP63 » Mi 10. Mai 2023, 16:30

Jedenfalls kann Excel nichts mit Calc-Makros anfangen!
Vice versa geht das auch nur extrem eingeschränkt.
Ein Feedback auf eine gegebene Lösung tut nicht weh und zeigt Querlesern, dass das Problem gelöst ist.


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten