🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

❤️ 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. 🤗

[Gelöst] Calc-Funktion in Makro aufrufen - Anfängerfrage

Alles zur Programmierung im LibreOffice.
Antworten
nienna
Beiträge: 2
Registriert: So 26. Mai 2013, 10:20

[Gelöst] Calc-Funktion in Makro aufrufen - Anfängerfrage

Beitrag von nienna » Fr 24. Jan 2025, 20:22

Hallo allerseits,
ich scheine da etwas grundsätzlich nicht verstanden zu haben. Nach langem Herumprobieren und endlosem Googlen konnte ich mein Problem auf folgenden Kern reduzieren:

Weshalb führt folgender Makro-Code zur Fehlermeldung "BASIC-Laufzeitfehler.
Objektvariable nicht belegt."?

Code: Alles auswählen

Function meinMW(Zellen1 As Object) As Double
    meinMW = Application.WorksheetFunction.Average(Zellen1)
End Function
Der Code wird durch den Aufruf in einer Zelle aufgerufen, etwa durch

Code: Alles auswählen

=meinmw(A1:D1)
Ich befürchte, dass die Lösung ganz einfach ist... Diverse KI-Prompts konnten mir da allerdings nicht weiter helfen... Aber es gibt doch bestimmt jede Menge schlaue Hirne da draußen, die es locker mit ChatGPT & Co. aufnehmen können, oder?

Liebe Grüße
Zuletzt geändert von nienna am Sa 25. Jan 2025, 10:11, insgesamt 1-mal geändert.

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

Re: Calc-Funktion in Makro aufrufen - Anfängerfrage

Beitrag von karolus » Fr 24. Jan 2025, 20:57

Warum nimmst du nicht einfach die Formel:

Code: Alles auswählen

=MITTELWERT(D1:D4)

Code: Alles auswählen

option VBAsupport 1

Function meinMW(Zellen1 As Object) As Double
    meinMW = Application.WorksheetFunction.Average(Zellen1)
End Function
Was ich noch weniger verstehen kann… Du schwadroniest was von ChatGPT, google ectpp, aber das momentan neueste Thema neben deinem eigenen Thread, beantwortet exakt die gleiche Frage und die übersiehst du geflissentlich :roll:
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

nienna
Beiträge: 2
Registriert: So 26. Mai 2013, 10:20

Re: Calc-Funktion in Makro aufrufen - Anfängerfrage

Beitrag von nienna » Sa 25. Jan 2025, 10:09

Danke für die Antwort.
Warum nimmst du nicht einfach die Formel:
Was ich tun möchte, ist natürlich etwas verschachtelter, beruht aber im Wesentlichen darauf, ganz normale Calc-Funktionen in einer eigenen Funktion aufzurufen. Und das klappt eben nicht wie von mir erwartet. Und ich weiß nicht warum, um den Code zu verbessern.
Und dass der Nachbarthread exakt dasselbe behandelt, ist vielleicht einem Experten klar, aber für mich ist die Fehlermeldung "Objektvariable nicht belegt" etwas anderes als "Es ist eine Ausnahme aufgetreten Type: com.sun.star.lang.IllegalArgumentException". Klar, hat irgendetwas mit Argumenten zu tun, aber exakt gleich?
Dass in dem Thread irgendwo eine Lösung aufgezeigt wird, entgeht mir immer noch. Die Quintessenz finde ich im Satz
Es wird also darauf hinauslaufen, die details jeder einzelnen Funktion auszuprobieren (insbesondere wie robust sie gegenüber den Argumenten sind).
Jetzt mal ehrlich, wie soll ich aus dem Thread die Lösung

Code: Alles auswählen

option VBAsupport 1
herauslesen?
Denn das bringt's tatsächlich. Wie von mir vermutet, ganz einfach. Danke dafür.
Warum das etwas bringt, weiß ich zwar immer noch nicht, das kriege ich aber schon noch raus...
Viele Grüße

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

Re: [Gelöst] Calc-Funktion in Makro aufrufen - Anfängerfrage

Beitrag von mikele » Sa 25. Jan 2025, 14:10

Hallo,
du benötigst die Zeile

Code: Alles auswählen

option VBAsupport 1
weil du in deinem Makro die Programmiersprache von Excel (VBA) benutzt. Dadurch wird Excel-Code auch in LO lauffähig. Allerdings gilt das nicht für jeden VBA-Code.
Das hat grundsätzlich nichts mit dem Aufruf der Calc-Funktionen zu tun. Wie das mit Starbasic funktioniert, ist in dem anderen Thread geklärt worden.
Gruß,
mikele


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