Vedi
num2euro www.giocaitalia.it/products.asp
Cur2Str www.programmiliberi.it/sorgenti/programmazione/filezip/visual10.zip
www.pcalmeglio.com/trucchi/tips02040.htm
www.itportal.it/office/word/cifre_Word/default.asp
--
Tiziano Marmiroli
Microsoft MVP - Office
> 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
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
> 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?
--
>
> 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