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" |