Stefano Bassi ha scritto:
At 00.55 18/10/2008, you wrote:
[...]
Esiste anche un extension nativa per openoffice che fa più o meno
lo stesso lavoro e si chiama InLettere è scritta in Python ed è
molto più veloce. La trovi qui: http://www.paolo-mantovani.org/
Intanto grazie e complimenti: integrare tale funzione è davvero utile
e non metto in dubbio che sia più performante della macro (anche se
obiettivamente mi è capitato di dover convertire al massimo un
centinaio di valori per foglio). Ora però ti faccio una richiesta: la
tua funzione converte soltanto la parte intera del numero, mentre
valori in euro necessitano anche i decimali rappresentati come "/nn",
arrotondando alla seconda cifra decimale.
Premetto che, se non ricordo male, Francesca Chiarelli aveva preparato
una versione estesa della macro InLettere che dovrebbe fare anche quello
che chiedi tu.
Controlla qui:
http://ooo.fchiarelli.it/
Bisogna dire che si tratta comunque di una macro in StarBasic derivata
da una mia primissima versione dei InLettere()
In ogni caso, trattandosi di Starbasic e non di VBA, la macro gira in
modo nativo, con performances accettabilissime.
Pensi di poter modificare,
o meglio creare un'altra estensione, con questa funzione?
Non serve creare un extension apposta in quanto si possono incudere più
funzioni per calc in una stessa extension. In questo caso si potrebbe
affiancare alla funzione InLettere() una seconda funzione InEuro() che
potrebbe fare la conversione di una valuta nella forma blablabla/00
Non l'ho aggiunta fino ad ora per motivi ehmm.... filosofici :-)
Mi spiego: io di solito mi attengo a questa massima:
"Mai scrivere una macro se si può evitare"
Non è un inno alla pigrizia, significa solo che la macro deve essere
l'ultima risorsa, da sfoderare solo *dopo* che si sono esaminate
infruttuosamente tutte le possibili alternative
Il motivo è molto semplice: per quanto sia ben scritta, una macro non
sarà mai nemmeno lontanamente performante e affidabile come il codice
compilato dell'applicazione ospite (OpenOffice.org nel nostro caso)
Quindi, se esiste una soluzione che sfrutta le feature native di
OpenOffice.org è sempre da preferire rispetto alla soluzione via macro.
Nel caso specifico una possibile soluzione potrebbe essere :
= INLETTERE(TESTO(A1;"0,00")) & "/" & DESTRA(TESTO(A1;"0,00");2)
Dove la cella A1 contiene il numero in formato valuta da convertire.
Riconosco comunque che non è il massimo della praticità e devo anche
ammettere che non è la prima volta che mi viene richiesto di integrare
questa feature, perciò, in barba alle mie massime, la prossima volta che
aggiornerò l'extension aggiungerò la funzione InEuro()
Se ci sono suggerimenti per un nome migliore sono ben accetti.
ciao
Paolo Mantovani
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]