NumLettere




Public Function NumeroInLettere(NrAnalizzato As String, _
Optional Valuta As String, Optional Formato As Byte) _
As String
'NrAnalizzato = Numero da convertire

'Valuta = lire, euro, £, € oppure vuoto

'Formato= 0 tutto minuscolo, 1 tutto maiuscolo,

'2 primo carattere maiuscolo se omesso e' uguale a 0


Dim Miliardi, Milioni, Migliaia, Centinaia, Centesimi, inLettere

NrAnalizzato = Right(""000000000000"" & Format(NrAnalizzato, ""###0.00""), 15)
NrAnalizzato = Left(NrAnalizzato, 12) & ""0"" & Right(NrAnalizzato, 2)

If Val(Mid(NrAnalizzato, 1, 3)) = 1 Then _
Miliardi = ""unmiliardo""
If Val(Mid(NrAnalizzato, 1, 3)) > 1 Then _
Miliardi = DefinisciNumero(Mid(NrAnalizzato, 1, 3)) & ""miliardi""
If Val(Mid(NrAnalizzato, 4, 3)) = 1 Then _
Milioni = ""unmilione""
If Val(Mid(NrAnalizzato, 4, 3)) > 1 Then _
Milioni = DefinisciNumero(Mid(NrAnalizzato, 4, 3)) & ""milioni""
If Val(Mid(NrAnalizzato, 7, 3)) = 1 Then _
Migliaia = ""mille""
If Val(Mid(NrAnalizzato, 7, 3)) > 1 Then _
Migliaia = DefinisciNumero(Mid(NrAnalizzato, 7, 3)) & ""mila""
If Val(Mid(NrAnalizzato, 10, 3)) = 1 Then _
Centinaia = ""cento""
If Val(Mid(NrAnalizzato, 10, 3)) > 1 Then _
Centinaia = DefinisciNumero(Mid(NrAnalizzato, 10, 3))
If Val(Mid(NrAnalizzato, 13, 3)) = 1 Then _
Centesimi = ""uncentesimo""
If Val(Mid(NrAnalizzato, 13, 3)) > 1 Then _
Centesimi = DefinisciNumero(Mid(NrAnalizzato, 13, 3)) & ""centesimi""
If Centinaia = """" And Migliaia = """" _
And Valuta <> """" Then Valuta = ""di"" & Valuta
inLettere = Miliardi & Milioni & Migliaia & Centinaia & Valuta & Centesimi
If Formato = 0 Then NumeroInLettere = _
StrConv(inLettere, vbLowerCase)
If Formato = 1 Then NumeroInLettere = _
StrConv(inLettere, vbUpperCase)
If Formato = 2 Then NumeroInLettere = _
StrConv(inLettere, vbProperCase)

End Function

Function DefinisciNumero(Numero000 As String) As String
Dim numero0
Dim nrCento, nrDieci, stNumero0

nrCento = Val(Mid(Numero000, 1, 1))
nrDieci = Val(Mid(Numero000, 2, 2))
numero0 = Array(""zero"", ""uno"", ""due"", ""tre"", _
""quattro"", ""cinque"", ""sei"", ""sette"", _
""otto"", ""nove"", ""dieci"", ""undici"", _
""dodici"", ""tredici"", ""quattordici"", _
""quindici"", ""sedici"", ""diciassette"", _
""diciotto"", ""diciannove"", ""venti"", _
""ventuno"", ""ventidue"", ""ventitre"", _
""ventiquattro"", ""venticinque"", ""ventisei"", _
""ventisette"", ""ventotto"", ""ventinove"", _
""trenta"", ""trentuno"", ""trentadue"", _
""trentatre"", ""trentaquattro"", ""trentacinque"", _
""trentasei"", ""trentasette"", ""trentotto"", _
""trentanove"", ""quaranta"", ""quarantuno"", _
""quarantadue"", ""quarantatre"", _
""quarantaquattro"", ""quarantacinque"", _
""quarantasei"", ""quarantasette"", ""quarantotto"", _
""quarantanove"", ""cinquanta"", ""cinquantuno"", _
""cinquantadue"", ""cinquantatre"", _
""cinquantaquattro"", ""cinquantacinque"", _
""cinquantasei"", ""cinquantasette"", _
""cinquantotto"", ""cinquantanove"", ""sessanta"", _
""sessantuno"", ""sessantadue"", ""sessantatre"", _
""sessantaquattro"", ""sessantacinque"", _
""sessantasei"", ""sessantasette"", ""sessantotto"", _
""sessantanove"", ""settanta"", ""settantuno"", _
""settantadue"", ""settantatre"", _
""settantaquattro"", ""settantacinque"", _
""settantasei"", ""settantasette"", ""settantotto"", _
""settantanove"", ""ottanta"", ""ottantuno"", _
""ottantadue"", ""ottantatre"", ""ottantaquattro"", _
""ottantacinque"", ""ottantasei"", ""ottantasette"", _
""ottantotto"", ""ottantanove"", ""novanta"", _
""novantuno"", ""novantadue"", ""novantatre"", _
""novantaquattro"", ""novantacinque"", _
""novantasei"", ""novantasette"", ""novantotto"", _
""novantanove"")
If nrCento = 1 Then stNumero0 = ""cento""
If nrCento > 1 Then stNumero0 = numero0(nrCento) & ""cento""
If nrDieci > 0 Then stNumero0 = stNumero0 & numero0(nrDieci)

DefinisciNumero = stNumero0
End Function"










( numlettere.html )- by Paolo Puglisi - Modifica del 17/12/2023