🙏 Helfen Sie 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. 🤗

BASIC-Funktion definieren und benutzen - wie?

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
Freischreiber
* LO-Experte *
Beiträge: 829
Registriert: Fr 28. Mär 2014, 10:41

BASIC-Funktion definieren und benutzen - wie?

Beitrag von Freischreiber » Fr 6. Jun 2025, 10:14

Hallo,

ich scheitere schon an dem Minimalbeispiel unter https://help.libreoffice.org/latest/de/ ... ction.html

Die Funktion

Code: Alles auswählen

Function VOL(a, b, c)
    VOL = a*b*c
End Function
habe ich angelegt, wo auch die Makros gespeichert sind, und sie wird auch im Modul erkannt.

Aber wenn ich in Calc die Funktion aufrufe, z. B. mit dem Zellinhalt "=VOL(1;2;3), dann erhalte ich nicht "6", sondern "'#WERT!".

Warum??

Gruß
Freischreiber


Edit: Wenn ich die Funktion nicht unter "Meine Makros", sondern in der geöffneten Calc-Datei direkt anlege, dann wird der Wert 6 geliefert! Wie kann das sein? Warum ist die Funktion, wenn sie unter "Meine Makros" steht, für das Calc-Dokument nicht auffindbar? Mit Writer- oder Base-Makros klappt es doch auch!
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

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

Re: BASIC-Funktion definieren und benutzen - wie?

Beitrag von karolus » Fr 6. Jun 2025, 10:40

Hallo

Funktionen die als UDF (UserDefinedFunction) aus Calc aufgerufen werden sollen, MÜSSEN in einem Modul unterhalb »»⇒ Meine Makros ⇒ Standard«« gespeichert werden.
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Freischreiber
* LO-Experte *
Beiträge: 829
Registriert: Fr 28. Mär 2014, 10:41

Re: BASIC-Funktion definieren und benutzen - wie?

Beitrag von Freischreiber » Fr 6. Jun 2025, 10:49

karolus hat geschrieben:
Fr 6. Jun 2025, 10:40
Hallo

Funktionen die als UDF (UserDefinedFunction) aus Calc aufgerufen werden sollen, MÜSSEN in einem Modul unterhalb »»⇒ Meine Makros ⇒ Standard«« gespeichert werden.
Arrgh!!! Warum? Warum???
Gibt es bei Libreoffice einen Programmierer für Sonderlocken, und der hatte zuviel Zeit? :shock:

@karolus, vielen Dank! Aber woher weißt du sowas?

Freundliche Grüße
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

Freischreiber
* LO-Experte *
Beiträge: 829
Registriert: Fr 28. Mär 2014, 10:41

Re: BASIC-Funktion definieren und benutzen - wie?

Beitrag von Freischreiber » Fr 6. Jun 2025, 10:51

Jetzt habe ich noch eine Zusatzfrage:
bei der Fehlersuche bin ich auf die Parameter "ByRef" und "ByVal" gestoßen und dache, mein Fehler kommt davon, daß ich direkt Werte übergeben habe und nicht Zellbezüge. Aber das scheint der Formel gar nichts zu machen. Beides geht. Wozu gibt es dann die Unterscheidung?
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

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

Re: BASIC-Funktion definieren und benutzen - wie?

Beitrag von karolus » Fr 6. Jun 2025, 15:37

Hallo
…Aber woher weißt du sowas?
Ich hatte es mir mal aufgeschrieben, leider habe ich vergessen wo der Zettel liegt 8-)
Arrgh!!! Warum? Warum???
Gibt es bei Libreoffice einen Programmierer für Sonderlocken, und der hatte zuviel Zeit?
Weil es mglw. eine gute Idee ist den »Suchraum« für Funktionsnamen, die zunächst nicht zu den »eingebauten« Funktionen gehören, auf eine sinnvolle Weise zu limitieren … vielleicht fällt dir an der Stelle eine Analogie zu einem eher ironischen Satz in diesem Beitrag auf!
…Parameter "ByRef" und "ByVal" gestoßen…
Den Unterschied habe ich auch nie wirklich begriffen, dürfte hier aber komplett egal sein, weil die Formel sowieso schon in Calc »geparst« wird, auf der Basic-seite kommen da eh nur die Argumente so rein wie Calc das will.
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Freischreiber
* LO-Experte *
Beiträge: 829
Registriert: Fr 28. Mär 2014, 10:41

Re: BASIC-Funktion definieren und benutzen - wie?

Beitrag von Freischreiber » Fr 6. Jun 2025, 15:51

Weil es mglw. eine gute Idee ist den »Suchraum« für Funktionsnamen, die zunächst nicht zu den »eingebauten« Funktionen gehören, auf eine sinnvolle Weise zu limitieren … vielleicht fällt dir an der Stelle eine Analogie zu einem eher ironischen Satz in diesem Beitrag auf!
Weil man sonst leider vergessen könnte, wo der Funktionsname definiert wird? Ok, aber dann sollte man sinnvollerweise diese Einschränkung irgendwo dokumentieren. Sonst suchen sich ordentliche User, die brav für Writer- und Base- und Calc-Makros eigene Bibliotheken anlegen, einen Wolf. :roll:

Achso: das gilt nur für Funktionen, nicht für Makros?

Schon wieder vielen Dank!

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

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

Re: BASIC-Funktion definieren und benutzen - wie?

Beitrag von karolus » Fr 6. Jun 2025, 17:47

Hallo
Achso: das gilt nur für Funktionen, nicht für Makros?
nur für Funktionen die auch als UDF aus Calc benutzt werden sollen
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)


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