Post by gf68Help! qualcuno sa dirmi se e come posso fare per trasformare una cifra
presente in una cella nella sua traduzione il lettere (es.€ 5,00 =
"cinque").
[cut]
Ciao, la funzione più in basso converte l'importo in lettere, ma non i
decimali del'importo che cmq in euro non si mettono in cifre, per quelli
ho risolto scrivendo nella cella la seguente formula
=NumToWord(Cifra_in_numeri)&"/"&DESTRA((TESTO(Cifra_in_numeri;"€. 0,00"));2)
cifra_in_numeri = 13.104,54 = tredicimilacentoquattro/54
spero ti sia utile ciao
======FUNZIONE ==================
Function NumToWord(nNumber As Currency)
Dim nFract1, nFract2, nFract3, nExp As Integer
Dim cNumber As String
Dim Temp As Double
cifra(1) = ""
cifra(2) = "uno"
cifra(3) = "due"
cifra(4) = "tre"
cifra(5) = "quattro"
cifra(6) = "cinque"
cifra(7) = "sei"
cifra(8) = "sette"
cifra(9) = "otto"
cifra(10) = "nove"
cifra(11) = "dieci"
cifra(12) = "undici"
cifra(13) = "dodici"
cifra(14) = "tredici"
cifra(15) = "quattordici"
cifra(16) = "quindici"
cifra(17) = "sedici"
cifra(18) = "diciassette"
cifra(19) = "diciotto"
cifra(20) = "diciannove"
cifra(21) = "venti"
cifra(22) = "trenta"
cifra(23) = "quaranta"
cifra(24) = "cinquanta"
cifra(25) = "sessanta"
cifra(26) = "settanta"
cifra(27) = "ottanta"
cifra(28) = "novanta"
For nExp = 3 To 0 Step -1
Temp = nNumber / 1000 ^ nExp
nFract1 = Int(Temp)
If nFract1 > 0 Then
nFract2 = nFract1
If nFract2 > 99 Then
Temp = nFract2 / 100
nFract3 = Int(Temp)
nFract2 = nFract2 - nFract3 * 100
If nFract3 = 1 Then
cNumber = cNumber + "cento"
Else
cNumber = cNumber + cifra(nFract3 + 1) + "cento"
End If
End If
If nFract2 <= 20 Then
cNumber = cNumber + cifra(nFract2 + 1)
Else
Temp = nFract2 / 10
nFract3 = Int(Temp)
cNumber = cNumber + cifra(nFract3 + 19)
nFract2 = nFract2 - nFract3 * 10
If nFract2 = 1 Or nFract2 = 8 Then
cNumber = Left(cNumber, Len(cNumber) - 1)
End If
cNumber = cNumber + cifra(nFract2 + 1)
End If
Select Case nExp
Case Is = 1
If nFract1 = 1 Then
cNumber = Left(cNumber, Len(cNumber) - 3) + "mille"
Else
cNumber = cNumber + "mila"
End If
Case Is = 2
If nFract1 = 1 Then
cNumber = Left(cNumber, Len(cNumber) - 3) + "unmilione"
Else
cNumber = cNumber + "milioni"
End If
Case Is = 3
If nFract1 = 1 Then
cNumber = "unmiliardo"
Else
cNumber = cNumber + "miliardi"
End If
End Select
nNumber = nNumber - nFract1 * 1000 ^ nExp
End If
Next
numToWord = cNumber
End Function