Seite 1 von 1
Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird? [gelöst]
Verfasst: Di 9. Mai 2023, 21:23
von nrst
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 (70.63 KiB) 1632 mal betrachtet
Re: Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird?
Verfasst: Mi 10. Mai 2023, 06:44
von Mondblatt24
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
Re: Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird?
Verfasst: Mi 10. Mai 2023, 06:52
von karolus
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.
Re: Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird?
Verfasst: Mi 10. Mai 2023, 09:19
von nrst
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.
Re: Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird?
Verfasst: Mi 10. Mai 2023, 10:20
von mikele
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).
Re: Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird?
Verfasst: Mi 10. Mai 2023, 10:21
von karolus
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 ?
Re: Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird?
Verfasst: Mi 10. Mai 2023, 14:35
von nrst
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.
Re: Wie kann ich bestimmen, bei welcher Datei ein Makro ausgeführt wird? [gelöst]
Verfasst: Mi 10. Mai 2023, 16:30
von RPP63
Jedenfalls kann Excel nichts mit Calc-Makros anfangen!
Vice versa geht das auch nur extrem eingeschränkt.