Seite 1 von 1

[gelöst] Formatieren von Zahlen

Verfasst: Fr, 25.07.2008 21:15
von Schwedenbitter
Hallo,

ich möchte gern ein Makro programmieren, welches Berechnungen mit Gleitkommazahlen vornimmt und die auch ausgibt. Das ist aber nicht mein Problem. Ich möchte aber gern, dass diese Zahlen möglichst einfach als Währung dargestellt werden. Das €-Zeichen davor zu setzen, bekomme ich hin.

Wie schaffe ich es, dass mir OOo die Zahlen mit einer Genauigkeit von 2 Nachkommastellen in Strings umwandelt?

Ich habe schon einige Befehle ausprobiert. Leider ohne durchschlagenden Erfolg.

Gruß, Alex

Re: Formatieren von Zahlen

Verfasst: Fr, 25.07.2008 22:25
von turtle47
Hallo Alex,

bringt Dich folgender Code weiter:

Code: Alles auswählen

Sub Zahl_Runden
	FuncAcc = createunoservice("com.sun.star.sheet.FunctionAccess")
	aResult=FuncAcc.callFunction("ROUND", array(13.371399747 , 2))
	myResult = "€ " + aResult
	'myresult =("123,999") 'zum Testen auf Zahl
	myCheck = isnumeric(myresult)
	if myCheck Then print "Zahl" else print "Keine Zahl"
	msgbox myResult
End Sub
Jürgen

Re: Formatieren von Zahlen

Verfasst: Sa, 26.07.2008 00:17
von Schwedenbitter
Danke Jürgen,

das sieht schon einmal gut aus. Ich vermute, dass die 2 in dem Array die Anzahl der Nachkommastellen angeben soll. Nur leider scheint ihn das bei mir nicht zu interessieren. Wenn ich z.B. 197 (nicht 197,00 oder 197.00) als Wert mitgebe, dann bringt er als Ergebnis auch nur die "197" und nicht - wie gewünscht - die "197,00".

Ich habe in der Zwischenzeit auch gesehen, dass es im Basic die Function Format (Zahl [, Format As String]) gibt. Ich komme aber mit dem Formatstring überhaupt nicht klar. Der von Calc (#.##0 [$€-407];[ROT]-#.##0 [$€-407]) ist es jedenfalls nicht und auch Probieren hat mich hier nicht weitergebracht.

Gruß, Alex

P.S. Wo bekommt man mehr Informationen zum Programmieren mit OOo her, als aus dem lückenhaften Hilfetext? Die Seite StarBasic FAQ kenne ich schon. Dort wird unter anderem Format auch als Runtime Function genannt; nicht aber, wie man sie genau verwendet.

Re: Formatieren von Zahlen

Verfasst: Sa, 26.07.2008 04:04
von turtle47
Schwedenbitter hat geschrieben:Ich vermute, dass die 2 in dem Array die Anzahl der Nachkommastellen angeben soll.
Nein, die 2 gibt die letzte Nachkommastelle an wo gerundet wird.

Wenn Du zwei Stellen hinter den Komma brauchst dann hilft das hier:

Code: Alles auswählen

Sub Zahl_Nachkomma
	FuncAcc = createunoservice("com.sun.star.sheet.FunctionAccess")
	aResult=FuncAcc.callFunction("ROUND", array(23 , 2))
	s =  Format(aResult, "0.00")
	myResult = "€ " + s
	msgbox myResult
End Sub
Schwedenbitter hat geschrieben:Der von Calc (#.##0 [$€-407];[ROT]-#.##0 [$€-407]) ist es jedenfalls nicht und auch Probieren hat mich hier nicht weitergebracht.
Das ist das Zahlenformat für die Zelle . Dazu findest Du hier ein Beispiel.

Jetzt alles klar?

Jürgen

Re: Formatieren von Zahlen

Verfasst: Sa, 26.07.2008 09:17
von ykcim
Hi,
der Rundungbefehl ist überflüssig. Format() rundet von alleine.

mfg
Michael

Re: Formatieren von Zahlen

Verfasst: Sa, 26.07.2008 11:16
von turtle47
Hallo Michael,
ykcim hat geschrieben:der Rundungbefehl ist überflüssig. Format() rundet von alleine.
Danke Michael, daran habe ich überhaupt nicht gedacht.

Schönes Wochenende.

Jürgen