Re: Aufrunden in Basic-Makro?

2017-05-26 Diskussionsfäden Wolfgang Jäth
Am 25.05.2017 um 15:25 schrieb Bernd Obermayr:
>> Hi,
>> 
>> ich verzweifel gerade; ich müsste in einem Makro (also Basic) einen Wert
>> *aufrunden*, finde aber dazu keine Funktion. Gibt es wirklich nur INT
>> bzw. FIX (die aber lediglich *abrunden*), oder bin ich blind?
>> 
>> Gips evtl. irgend einen Workaround? Im Internet hab ich z. B. so was wie
>> 
>> | WorksheetFunction.Round(2.7, 2)
> 
> Da fehlt
> 
> Option VBAsupport 1
> 
> am Anfang des Moduls

Danke; das wars.

Wolfgang
-- 

-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Re: Aufrunden in Basic-Makro?

2017-05-26 Diskussionsfäden Bernd Obermayr
Jörg Schmidt schrieb am 26.05.2017 um 09:57:
>  
> 
>> -Original Message-
>> From: Bernd Obermayr [mailto:li...@bobermayr.de] 
>> Sent: Thursday, May 25, 2017 2:58 PM
>> To: users-de@openoffice.apache.org
>> Subject: Re: Aufrunden in Basic-Makro?
>>
>> Bernd Obermayr schrieb am 25.05.2017 um 14:14:
>>> Wolfgang Jäth schrieb am 25.05.2017 um 10:32:
>>>> Hi,
>>>>
>>>> ich verzweifel gerade; ich müsste in einem Makro (also 
>> Basic) einen Wert
>>>> *aufrunden*, finde aber dazu keine Funktion. Gibt es 
>> wirklich nur INT
>>>> bzw. FIX (die aber lediglich *abrunden*), oder bin ich blind?
>>>>
>>>> Gips evtl. irgend einen Workaround? Im Internet hab ich z. 
>> B. so was wie
>>>>
>>>> | WorksheetFunction.Round(2.7, 2)
>>>>
>>>> gefunden, aber da meckert mein (deutsches) OO eine nicht belegte
>>>> Objektvariable an.
>>>>
>>>> Wolfgang
>>>>
>>> Hi,
>>> wie wärs damit:
>>>
>> <https://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_
>> ROUND_function>
>>>
>> Sorry, das war Quatsch :)
> 
> Strenggenommen nicht, denn alle Calc-Tabellenfunktionen sind auch in 
> StarBasic-Makros nutzbar, z.B. siehe:
> http://www.dannenhoefer.de/faqstarbasic/WiekannmanFunktionenvonCalcverwenden.html
> 

Ja stimmt :) Hab ich auch irgendwo schon verwendet.

Wobei die site von Dannenhöfer schon lange nicht mehr gepflegt wird.

> 
> Ob das beim Runden sinnvoll ist, mag jeder selbst entscheiden, es gibt aber 
> diverse Fälle wo es sinnvoll IST, weil es Aufwand spart, da man sich die 
> Funktion fertiger Tabellenfunktionen nicht in StarBasic nachprogrammieren 
> muss.

genau.

> 
> 
> Gruß
> Jörg

-- 
Gruss
  Bernd


-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Re: Aufrunden in Basic-Makro?

2017-05-26 Diskussionsfäden Jörg Schmidt
 

> -Original Message-
> From: Bernd Obermayr [mailto:li...@bobermayr.de] 
> Sent: Thursday, May 25, 2017 2:58 PM
> To: users-de@openoffice.apache.org
> Subject: Re: Aufrunden in Basic-Makro?
> 
> Bernd Obermayr schrieb am 25.05.2017 um 14:14:
> > Wolfgang Jäth schrieb am 25.05.2017 um 10:32:
> >> Hi,
> >>
> >> ich verzweifel gerade; ich müsste in einem Makro (also 
> Basic) einen Wert
> >> *aufrunden*, finde aber dazu keine Funktion. Gibt es 
> wirklich nur INT
> >> bzw. FIX (die aber lediglich *abrunden*), oder bin ich blind?
> >>
> >> Gips evtl. irgend einen Workaround? Im Internet hab ich z. 
> B. so was wie
> >>
> >> | WorksheetFunction.Round(2.7, 2)
> >>
> >> gefunden, aber da meckert mein (deutsches) OO eine nicht belegte
> >> Objektvariable an.
> >>
> >> Wolfgang
> >>
> > Hi,
> > wie wärs damit:
> > 
> <https://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_
> ROUND_function>
> > 
> Sorry, das war Quatsch :)

Strenggenommen nicht, denn alle Calc-Tabellenfunktionen sind auch in 
StarBasic-Makros nutzbar, z.B. siehe:
http://www.dannenhoefer.de/faqstarbasic/WiekannmanFunktionenvonCalcverwenden.html


Ob das beim Runden sinnvoll ist, mag jeder selbst entscheiden, es gibt aber 
diverse Fälle wo es sinnvoll IST, weil es Aufwand spart, da man sich die 
Funktion fertiger Tabellenfunktionen nicht in StarBasic nachprogrammieren muss.


Gruß
Jörg


-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Fwd: Re: Aufrunden in Basic-Makro?

2017-05-25 Diskussionsfäden Oliver Brinzing


Hi,


ich verzweifel gerade; ich müsste in einem Makro (also Basic) einen Wert
*aufrunden*, finde aber dazu keine Funktion. Gibt es wirklich nur INT


Du kannst aus Basic grds. die Calc Funktionen über csss.FunctionAccess
https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Function_Handling#Calculating_Function_Results
aufrufen

Gruß
Oliver

OPTION EXPLICIT
Sub Main
Dim oFuncAccess as Object
Dim num as Double
Dim res as Double
Dim count as Integer

num = 123.45678
count = 1

oFuncAccess = createUnoService( "com.sun.star.sheet.FunctionAccess")
res = oFuncAccess.callFunction("ROUND", Array(num, count))
msgBox res
End Sub


-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Re: Aufrunden in Basic-Makro?

2017-05-25 Diskussionsfäden Bernd Obermayr
Wolfgang Jäth schrieb am 25.05.2017 um 10:32:
> Hi,
> 
> ich verzweifel gerade; ich müsste in einem Makro (also Basic) einen Wert
> *aufrunden*, finde aber dazu keine Funktion. Gibt es wirklich nur INT
> bzw. FIX (die aber lediglich *abrunden*), oder bin ich blind?
> 
> Gips evtl. irgend einen Workaround? Im Internet hab ich z. B. so was wie
> 
> | WorksheetFunction.Round(2.7, 2)

Da fehlt

Option VBAsupport 1

am Anfang des Moduls

public Function myround(optional zahl)
if IsMissing (zahl) then
zahl=123.34567
end if
myround=WorksheetFunction.Round(zahl, 2)
End Function

so gehts auch ohne:

public Function myround(optional zahl)
if IsMissing (zahl) then
zahl=123.34567
end if
myround=round(zahl,2)
End Function


> 
> gefunden, aber da meckert mein (deutsches) OO eine nicht belegte
> Objektvariable an.
> 
> Wolfgang
> 


-- 
Gruss
  Bernd


-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Re: Aufrunden in Basic-Makro?

2017-05-25 Diskussionsfäden Wolfgang Jäth
Am 25.05.2017 um 13:48 schrieb Mechtilde:
> Hallo Wolfgang,
> 
> mit der Funktion "Runden" wir auf die nächste ganze Zahl gerundet. 

Das weiß ich; aber das eintscheidende ist, die Funktion RUNDEN ist eine
*Calc*-Funktion, keine *Basic*-Funktion.

Das Makro schreibt Calc-Formeln in Tabellenblatt-Zellen. Damit kann ich
aber nix anfangen; ich muss *in Basic* runden, nicht in /Calc/.

> Damit
> dies auf für Dezimalzahlen mit festen Nachkommastellen , wie bei
> Beträgen, funktioniert, muss zunächst die Zahl, die gerundet werden soll
> mit 100 multipliziert werden, dann ge"rundet, und dann wieder durch 100
> geteilt werden.

In Calc aka dem Tabellenblatt kann ich auch problemlos mit der Funktion
AUFRUNDEN aufrunden; das ist nicht das Problem. Das Problem ist, dass
ich das im *Makro* brauche, nicht in einer /Zelle/.

> Sollte die Funktion immer nur abrunden, muss vor der Multiplikation mit
> 100 noch 0,5 addiert werden.

Das hab ich schon probiert; vielleicht bist Du da ja anderer Ansicht,
aber *meiner* Meinung nach sind Formeln wie

| myTypA = (int(myTypB+0.5)/15) +
((int(myTypC+0.5)*20+0.5)/5)/(int(myTypD) + (int(myTypA+0.5)/30))

wirklich nicht mehr übersichtlich. Selbst das 'Original'

| myTypA = (Aufrunden(myTypB)/15 +
Aufrunden(myTypC*20)/5)/(Abrunden(myTypD) + Aufrunden(myTypA)/30)

ist schon hart an der Grenze (aber noch(!) verstehbar).

Wolfgang
-- 

-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Re: Aufrunden in Basic-Makro?

2017-05-25 Diskussionsfäden Bernd Obermayr
Bernd Obermayr schrieb am 25.05.2017 um 14:14:
> Wolfgang Jäth schrieb am 25.05.2017 um 10:32:
>> Hi,
>>
>> ich verzweifel gerade; ich müsste in einem Makro (also Basic) einen Wert
>> *aufrunden*, finde aber dazu keine Funktion. Gibt es wirklich nur INT
>> bzw. FIX (die aber lediglich *abrunden*), oder bin ich blind?
>>
>> Gips evtl. irgend einen Workaround? Im Internet hab ich z. B. so was wie
>>
>> | WorksheetFunction.Round(2.7, 2)
>>
>> gefunden, aber da meckert mein (deutsches) OO eine nicht belegte
>> Objektvariable an.
>>
>> Wolfgang
>>
> Hi,
> wie wärs damit:
> 
> 
Sorry, das war Quatsch :)
in ooo Basic gibt tatsächlich kein round
Hier gibts die Lösung


-- 
Gruss
  Bernd


-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Re: Aufrunden in Basic-Makro?

2017-05-25 Diskussionsfäden Bernd Obermayr
Wolfgang Jäth schrieb am 25.05.2017 um 10:32:
> Hi,
> 
> ich verzweifel gerade; ich müsste in einem Makro (also Basic) einen Wert
> *aufrunden*, finde aber dazu keine Funktion. Gibt es wirklich nur INT
> bzw. FIX (die aber lediglich *abrunden*), oder bin ich blind?
> 
> Gips evtl. irgend einen Workaround? Im Internet hab ich z. B. so was wie
> 
> | WorksheetFunction.Round(2.7, 2)
> 
> gefunden, aber da meckert mein (deutsches) OO eine nicht belegte
> Objektvariable an.
> 
> Wolfgang
> 
Hi,
wie wärs damit:


-- 
Gruss
  Bernd


-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Re: Aufrunden in Basic-Makro?

2017-05-25 Diskussionsfäden Mechtilde
Hallo Wolfgang,

mit der Funktion "Runden" wir auf die nächste ganze Zahl gerundet. Damit
dies auf für Dezimalzahlen mit festen Nachkommastellen , wie bei
Beträgen, funktioniert, muss zunächst die Zahl, die gerundet werden soll
mit 100 multipliziert werden, dann ge"rundet, und dann wieder durch 100
geteilt werden.

Sollte die Funktion immer nur abrunden, muss vor der Multiplikation mit
100 noch 0,5 addiert werden.

Gruß

Mechtilde

Am 25.05.2017 um 13:35 schrieb Wolfgang Jäth:
> Am 25.05.2017 um 10:56 schrieb Mechtilde:
>> Hallo,
>>
>> Schau mal in
>>
>> http://canzeley.de/download/forderungsberechnung/096/Forderungsberechnung367.ots
>>
>> Dort sind alle Beträge auf 2 Stellen hinter dem Komma gerundet.
>>
>> Im Makro stehen die entsprechenden Rechenformeln
> 
> Danke; aber soweit ich das erkennen kann, werden in den Makros lediglich
> *Calc-Formeln* [1] erstellt, die dann wohl in Tabellenblatt-Zellen
> eingefügt werden sollen. Direkte Rundungsoperationen *in Basic* kann ich
> aber leider nicht finden. Oder hab ich irgendwo was übersehen?
> 
> [1] z. B. so was:
> | sFormel = "=RUNDEN(L" & CStr(iLeereZeile-1) & "*H" & CStr(iLeereZeile)
> & "*Q" & CStr(iLeereZeile-1) & "/360*100)/100"
> 
> Wolfgang
> 

-- 
Mechtilde Stehmann
## Apache OpenOffice.org
## Freie Office Suite für Linux, MacOSX, Windows
## Debian Developer
## Loook, calender-exchange-provider, libreoffice-canzeley-client
## PGP encryption welcome
## Key-ID 0x141AAD7F



signature.asc
Description: OpenPGP digital signature


Re: Aufrunden in Basic-Makro?

2017-05-25 Diskussionsfäden Wolfgang Jäth
Am 25.05.2017 um 10:56 schrieb Mechtilde:
> Hallo,
> 
> Schau mal in
> 
> http://canzeley.de/download/forderungsberechnung/096/Forderungsberechnung367.ots
> 
> Dort sind alle Beträge auf 2 Stellen hinter dem Komma gerundet.
> 
> Im Makro stehen die entsprechenden Rechenformeln

Danke; aber soweit ich das erkennen kann, werden in den Makros lediglich
*Calc-Formeln* [1] erstellt, die dann wohl in Tabellenblatt-Zellen
eingefügt werden sollen. Direkte Rundungsoperationen *in Basic* kann ich
aber leider nicht finden. Oder hab ich irgendwo was übersehen?

[1] z. B. so was:
| sFormel = "=RUNDEN(L" & CStr(iLeereZeile-1) & "*H" & CStr(iLeereZeile)
& "*Q" & CStr(iLeereZeile-1) & "/360*100)/100"

Wolfgang
-- 

-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Re: Aufrunden in Basic-Makro?

2017-05-25 Diskussionsfäden Mechtilde
Hallo,

Schau mal in

http://canzeley.de/download/forderungsberechnung/096/Forderungsberechnung367.ots

Dort sind alle Beträge auf 2 Stellen hinter dem Komma gerundet.

Im Makro stehen die entsprechenden Rechenformeln

Gruß

Mechtilde

Am 25.05.2017 um 10:32 schrieb Wolfgang Jäth:
> Hi,
> 
> ich verzweifel gerade; ich müsste in einem Makro (also Basic) einen Wert
> *aufrunden*, finde aber dazu keine Funktion. Gibt es wirklich nur INT
> bzw. FIX (die aber lediglich *abrunden*), oder bin ich blind?
> 
> Gips evtl. irgend einen Workaround? Im Internet hab ich z. B. so was wie
> 
> | WorksheetFunction.Round(2.7, 2)
> 
> gefunden, aber da meckert mein (deutsches) OO eine nicht belegte
> Objektvariable an.
> 
> Wolfgang
> 

-- 
Mechtilde Stehmann
## Apache OpenOffice.org
## Freie Office Suite für Linux, MacOSX, Windows
## Debian Developer
## Loook, calender-exchange-provider, libreoffice-canzeley-client
## PGP encryption welcome
## Key-ID 0x141AAD7F



signature.asc
Description: OpenPGP digital signature


Aufrunden in Basic-Makro?

2017-05-25 Diskussionsfäden Wolfgang Jäth
Hi,

ich verzweifel gerade; ich müsste in einem Makro (also Basic) einen Wert
*aufrunden*, finde aber dazu keine Funktion. Gibt es wirklich nur INT
bzw. FIX (die aber lediglich *abrunden*), oder bin ich blind?

Gips evtl. irgend einen Workaround? Im Internet hab ich z. B. so was wie

| WorksheetFunction.Round(2.7, 2)

gefunden, aber da meckert mein (deutsches) OO eine nicht belegte
Objektvariable an.

Wolfgang
-- 

-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org