On Sat, May 17, 2008 at 7:23 PM, Francois <[EMAIL PROTECTED]> wrote:

> Buona sera Jack,
>
> Non so se ho capito bene ma io uso questa function modificata per
> quest'esempio :
>
> sub RoundMain()
>
>        dim oDoc as object
>        dim oCell as object
>        dim aValue as variant
>
>        oDoc = thisComponent
>        oCell = oDoc.CurrentSelection
>        aValue = oCell.Value
>
>        msgbox RoundNumber( aValue, 2 )
>
> end sub
>
> function RoundNumber( n2r as variant, optional ndec as integer )
>
>        dim initFormat as string, decpart as string
>
>        initFormat = "## ##0"
>
>        select case ndec
>          case 0
>                RoundNumber = Format( n2r, initFormat )
>          case 1 to 9
>                decpart = "." & String( ndec, "#" )
>                RoundNumber = Format( n2r, initFormat & decpart )
>          case else
>                RoundNumber = "Le nombre de décimales est erroné"
>        end select
>
> end function
>
> Se non ti va bene, mi puo spiegare un po piu cosa vuoi dire per "non mi va
> bene in quanto la formula permane ed a me serve il valore puro".
>
> Francois


Innanzitutto ti ringrazio della risposta e mi complimento nuovamente per l'
eleganza del tuo codice :)

Spiego meglio quanto mi servirebbe realizzare:

se in una cella ho il valore:

0,25326

vorrei approssimarlo per eccesso (ROUNDUP di Calc) a 4 cifre significative
facendolo diventare:

0,2533

se uso la tua macro il valore della cella rimane quello originario (cambia,
mi pare, la formattazione), se, invece, uso .setFormula(=RoundUp(Cella;4)),
il valore viene modificato, ma la cella contiene:


=RoundUp(Cella;4)


laddove io vorrei il mero valore

Ciao e grazie ancora :)

Rispondere a