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 :)
