Seite 1 von 1

Standardfunktionen werden nicht erkannt -- newbie ratlos

Verfasst: Di, 12.06.2007 17:10
von hottiger
Hallo,

sorry, wahrscheinlich ist es eine saudumme Frage, aber ich finde sie nicht im Netz beantwortet.

Ich möchte eigentlich nur in einem Makro das Minimum zweier Zahlenwerte berechen. Ich habe mal eine neue Funktion geschrieben, die die entscheidenden Elemente enthält. (Die Funktion selbst ist jetzt nicht von praktischem Nährwert!)

Function minim (wert as single) as single
Dim oDokument as object
Dim oTab as object
oDokument = ThisComponent
oTab= oDokument.Sheets.getByName("NotenGesamt")
minim = min(3, wert)
End Function

Setze ich zwischen 3 und wert ein Semikolon, so erhalte ich eine Fehlermeldung zur Klammerschachtelung, so wie es oben steht, erhalte ich die Fehlermeldung, dass eine Funktion in der Zeile "minim = min(3, wert)" nicht definiert ist.

Bitte helfen - und nicht steinigen für die dumme Frage.
hottiger

Re: Standardfunktionen werden nicht erkannt -- newbie ratlos

Verfasst: Di, 12.06.2007 17:52
von Karolus
Hallo Hottiger

min gehört nicht zu den Runtimefunctionen in Basic, die Ortsangabe ist einer solchen Function überflüssig:

Code: Alles auswählen

Function minim (wert as single) as single
'min ist keine Runtimefunction daher Aufruf der Calc-funktionen
oFunctionAccess = createUnoService( "com.sun.star.sheet.FunctionAccess" )
Dim args( 1 ) As Variant
     args(0) = 3
     args(1) = wert
minim = oFunctionAccess.callFunction( "Min", args() )

End Function
Gruß Karo
http://www.dannenhoefer.de/faqstarbasic/

Re: Standardfunktionen werden nicht erkannt -- newbie ratlos

Verfasst: Di, 12.06.2007 18:10
von hottiger
Danke Karolus,

bin aber ein bisschen baff, wie umständlich so eine einfache Funktion im Makro ist.

Ok, ich nehms so hin - was den Dank nicht schmälern soll.
hottiger

Re: Standardfunktionen werden nicht erkannt -- newbie ratlos

Verfasst: Mi, 13.06.2007 07:24
von Karolus
Hallo
bin aber ein bisschen baff, wie umständlich so eine einfache Funktion im Makro ist.
Na ja die Funktion ist zwar einfach, aber -weil keine Runtimefunction- nur über den Calc-functions-aufruf zu bekommen.
Natürlich gehts auch über eine simplen Vergleich:

Code: Alles auswählen

Function minim (wert as single)
if wert <= 3 then : minim = wert
else : minim = 3 : end if
End Function
Gruß Karo