Importo in lettere

Importo in lettere

0
0

Buongiorno,

è possibile visualizzare un importo in lettere?

Grazie e saluti.

Lorenzo

Segnalato come spam
Pubblicato da (Domande: 24, Risposte: 38)
Domandato il 13 Maggio 2021 12:08
98 visualizzazioni
1
Domanda privata

si, ma non direttmente. ti serve un calcolo specifico con while o una funzione personalizzata come:

 

NumeroInLettere ( numero )

/*

NumeroInLettere ( number ) Custom Function

 

Scrive in lettere numeri fino al massimo di 999.999.999.999,99 cioè:

novecentonovantanovemiliardinovecentonovantanovemilioninovecentonovantanovemilanovecentonovantanove/99

( 12 cifre + 2 decimali )

 

Daniele Raybaudi

 

11/19/2012 v2 : simplified

10/27/2012 v1

*/

 

Case(

number < 0 ; "Errore: numero negativo" ;

number ≥ 10^12 ; "Errore: numero troppo alto" ;

Let([

t = Substitute ( NumToJText ( Int ( number ) ; 1 ; 0 ) ; "," ; ¶ ) ;

decimali = Mod ( number ; 1 ) ;

r = If ( not t ; "zero" ) & "/" & Left ( Substitute ( decimali ; Left ( 1/2 ; 1 ) ; "" ) & "00" ; 2 ) ;

$i_NumeroInLettereCF = $i_NumeroInLettereCF + 1 ;

v = ValueCount ( t ) - $i_NumeroInLettereCF ;

n = GetAsNumber ( GetValue ( t ; $i_NumeroInLettereCF ) ) ;

result = If ( Div ( n ; 100 ) ; Choose ( Div ( n ; 100 ) ; "" ; "" ; "due" ; "tre" ; "quattro" ; "cinque" ; "sei" ; "sette" ; "otto" ; "nove" ) & "cento" ) & 

Case(

Mod ( n ; 100 ) < 20 ; Choose ( Mod ( n ; 100 ) ; "" ; "uno" ; "due" ; "tre" ; "quattro" ; "cinque" ; "sei" ; "sette" ; "otto" ; "nove" ; "dieci" ; "undici" ; "dodici" ; "tredici" ; "quattordici" ; "quindici" ; "sedici" ; "diciassette" ; "diciotto" ; "diciannove"  ) ;

Mod ( n ; 100 ) < 30 ; "vent" & Choose ( Right ( Mod ( n ; 100 ) ; 1 ) ; "i" ; "uno" ; "idue" ; "itre" ; "iquattro" ; "icinque" ; "isei" ; "isette" ; "otto" ; "inove" ) ;

Choose ( Left ( Mod ( n ; 100 ) ; 1 ) ; "" ; "" ; "" ; "trent" ; "quarant" ; "cinquant" ; "sessant" ; "settant" ; "ottant" ; "novant" ) & Choose ( Right ( Mod ( n ; 100 ) ; 1 ) ; "a" ; "uno" ; "adue" ; "atre" ; "aquattro" ; "acinque" ; "asei" ; "asette" ; "otto" ; "anove" ) 

)

];

Case(

$i_NumeroInLettereCF < ValueCount ( t ) ; Case ( n > 1 ; result & Choose ( v ; "" ; "mila" ; "milioni" ; "miliardi" ) ; n = 1 ; Choose ( v ; "" ; "mille" ; "unmilione" ; "unmiliardo" ) ) & NumeroInLettere ( number ) ;

result & r & Let( $i_NumeroInLettereCF = "" ; "" )

)

)

)

 

 

puoi usarla in combinazione con assoluto() anche per i numeri negativi, basta passare comunque il numero in positivo.

 

facci sapere!

.g.

Segnalata come spam
Pubblicato da (Domande: 0, Risposte: 1480)
Risposto il 13 Maggio 2021 14:35
0
Domanda privata

OK, grazie Giulio.

Lorenzo

Segnalata come spam
Pubblicato da (Domande: 24, Risposte: 38)
Risposto il 17 Maggio 2021 12:39