Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Come trasformare i numeri in lettere

887 views
Skip to first unread message

Cappellaio

unread,
Nov 23, 2003, 3:41:04 AM11/23/03
to
Innanzitutto buona domenica. Avrei bisogno di un comando (forse una macro?)
che mi permetta di trasferire il valore numerico di una cella (per es. 1550
euro) in un ' altra cella trasformandolo in lettere ( per es.
millecinquecentocinquanta euro). Spero di essermi espresso correttamente ma
uso da poco Excel.
Ciao

Tiziano Marmiroli

unread,
Nov 23, 2003, 4:56:41 AM11/23/03
to

Cappellaio

unread,
Nov 23, 2003, 6:02:03 AM11/23/03
to

"Tiziano Marmiroli" <t.mar...@mvps.org> ha scritto nel messaggio
news:2q01sv4c1mtaebrru...@4ax.com...

> Tiziano Marmiroli
> Microsoft MVP - Office
>>>>>>>>>>>>>>>>>
Innanzitutto ti ringrazio. Purtroppo il link
www.programmiliberi.it/sorgenti/programmazione/filezip/visual10.zip non
funziona. . Al link www.itportal.it/office/word/cifre_Word/default.asp c'e'
un programmino che pero' non funziona con i decimali.
Allora ho provato sia la macro di www.pcalmeglio.com/trucchi/tips02040.htm
che quella di www.giocaitalia.it/products.asp (che mi sembrano identiche) ma
spunta fuori " errore di compilazione : Sub o Function non definita". Cos'e'
che non va ?
Ancora grazie e buona domenica. Cappellaio

Maurizio Rota

unread,
Nov 23, 2003, 11:24:59 AM11/23/03
to

"Cappellaio" <apascarel...@inwind.it> ha scritto nel messaggio
news:os2qem5eba4u.1x0btk9fnl4nx$.dlg@40tude.net...


Come detto tempo fa, in rete ci sono numerose proposte; G. Giaccaglini
propone (anche in euro):

Function TreLettere(TreCifre As String) As String
Dim PrimaCifra, Ultime2Cifre, SecondaCifra, UltimaCifra, Pezzo
TabCifre = Array("", "uno", "due", "tre", "quattro", "cinque", _
"sei", "sette", "otto", "nove")
TabDiec = Array("dieci", "undici", "dodici", "tredici", "quattordici",
"quindici", _
"sedici", "diciassette", "diciotto", "diciannove")
TabAntine = Array("venti", "trenta", "quaranta", "cinquanta", "sessanta",
_
"settanta", "ottanta", "novanta")
TabAntineTronc = Array("vent", "trent", "quarant", "cinquant", "sessant",
_
"settant", "ottant", "novant")
If Val(TreCifre) < 10 Then
TreLettere = TabCifre(Val(TreCifre))
Exit Function
End If
PrimaCifra = Left(TreCifre, 1)
Ultime2Cifre = Right(TreCifre, 2)
SecondaCifra = Left(Ultime2Cifre, 1)
UltimaCifra = Right(TreCifre, 1)
CentoCent = IIf(SecondaCifra <> 8, "cento", "cent")
Select Case PrimaCifra
Case 0
TreLettere = ""
Case 1
TreLettere = CentoCent
Case Else
TreLettere = TabCifre(PrimaCifra) & CentoCent
End Select
Select Case Ultime2Cifre
Case 0 To 9
TreLettere = TreLettere & TabCifre(UltimaCifra)
Case 10 To 19
TreLettere = TreLettere & TabDiec(UltimaCifra)
Case Else
TreLettere = TreLettere & IIf(UltimaCifra = 1 Or UltimaCifra = 8, _
TabAntineTronc(SecondaCifra - 2), TabAntine(SecondaCifra - 2)) _
& TabCifre(UltimaCifra)
End Select
End Function

Function CifreInLettere(Numero As Double) As String
Dim s As String, t As String, c As String, _
NumTriple As Integer, n As Integer, i As Integer
If Numero = 0 Then
CifreInLettere = "zero"
Exit Function
End If
TabSuff = Array("", "mila", "milioni", "miliardi")
TabSuffUno = Array("", "mille", "unmilione", "unmiliardo")
s = Trim(Str(Numero)) 'Trim toglie lo spazio iniz. dato da Str()
s = Choose((Len(s) Mod 3) + 1, "", "00", "0") & s
NumTriple = Len(s) \ 3: n = NumTriple
For i = 1 To NumTriple * 3 Step 3
n = n - 1
Dim Tripletta As String
Tripletta = Mid(s, i, 3)
t = TreLettere(Tripletta)
If Tripletta <> "000" Then
If t = "uno" And n >= 1 Then
c = c & TabSuffUno(n)
Else
c = c & t & TabSuff(n)
End If
End If
Next
CifreInLettere = c
End Function
Function CifreInLettEuro(Numero As Double) As String

Dim Interi As Double, Centesimi As Double, StrCentesimi As String
Interi = Int(Numero)
Centesimi = round(Numero * 100, 0) - Interi * 100
StrCentesimi = IIf(Centesimi < 10, "0" & Centesimi, Centesimi)
CifreInLettEuro = "#" & LCase(CifreInLettere(Interi) & "/" &
StrCentesimi) & " cent#"

End Function

Tiziano Marmiroli

unread,
Nov 23, 2003, 7:22:40 PM11/23/03
to
Il Sun, 23 Nov 2003 11:02:03 GMT, Cappellaio ha scritto:

> Allora ho provato sia la macro di www.pcalmeglio.com/trucchi/tips02040.htm
> che quella di www.giocaitalia.it/products.asp (che mi sembrano identiche) ma
> spunta fuori " errore di compilazione : Sub o Function non definita". Cos'e'
> che non va ?

Se apri il file NUM2Euro.xls, contenuto nell'archivio num2euro.zip
scaricabile da www.giocaitalia.it, funziona?

Tu quali operazioni hai fatto?

--

Cappellaio

unread,
Nov 24, 2003, 1:46:28 AM11/24/03
to
In data Mon, 24 Nov 2003 00:22:40 GMT, Tiziano Marmiroli ha scritto:


>
> Se apri il file NUM2Euro.xls, contenuto nell'archivio num2euro.zip
> scaricabile da www.giocaitalia.it, funziona?
>
> Tu quali operazioni hai fatto?

Si , si , funziona :) .Tutto risolto, grazie mille.
Cappellaio

0 new messages