Newsgroup: it.comp.aiuto
Titolo: FUNZIONE EXCEL

Vorrei sapere se in Excel c'è la possibilità di convertire i numeri in
lettere (es: 198>>> centonovantotto.
Qualora non ci sia questa possibilità, qualcuno conosce un programmino per
tale operazione?
Grazie 1000!
Angrin
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

adiacente il suo valore in lettere - cioè quarantacinquemilaottocento?
Le seguenti routine sono da inserire in un nuovo modulo dall'editor di
visual basic di excel e quindi utilizzare la funzione
trasforma_in_lettere() :
Function Trasforma_Gruppo(s As String) As String
Dim Ris As String
Dim us  As String
Dim ds  As String
Dim cs  As String
         u = Mid$(s, 3, 1)
         d = Mid$(s, 2, 1)
         c = Mid$(s, 1, 1)
 
         cs = ""
         ds = ""
         us = ""
 
         Select Case u
                Case "1": us = "uno"
                Case "2": us = "due"
                Case "3": us = "tre"
                Case "4": us = "quattro"
                Case "5": us = "cinque"
                Case "6": us = "sei"
                Case "7": us = "sette"
                Case "8": us = "otto"
                Case "9": us = "nove"
         End Select
 
         Select Case d
                Case "1": ds = "dieci"
                Case "2": ds = "venti"
                Case "3": ds = "trenta"
                Case "4": ds = "quaranta"
                Case "5": ds = "cinquanta"
                Case "6": ds = "sessanta"
                Case "7": ds = "settanta"
                Case "8": ds = "ottanta"
                Case "9": ds = "novanta"
         End Select
 
         Select Case c
                Case "1": cs = "cento"
                Case "2": cs = "duecento"
                Case "3": cs = "trecento"
                Case "4": cs = "quattrocento"
                Case "5": cs = "cinquecento"
                Case "6": cs = "seicento"
                Case "7": cs = "settecento"
                Case "8": cs = "ottocento"
                Case "9": cs = "novecento"
         End Select
 
         If ds = "dieci" Then
            us = ""
            Select Case u
                   Case "1": ds = "undici"
                   Case "2": ds = "dodici"
                   Case "3": ds = "tredici"
                   Case "4": ds = "quattordici"
                   Case "5": ds = "quindici"
                   Case "6": ds = "sedici"
                   Case "7": ds = "diciassette"
                   Case "8": ds = "diciotto"
                   Case "9": ds = "diciannove"
            End Select
         End If
 
         If (ds <> "") And ( (us = "uno") or (us = "otto") ) Then ds =
         Left$(ds, Len(ds) - 1)
 
         Ris = cs + ds + us
 
         Trasforma_Gruppo = Ris
End Function
Function Trasforma_in_lettere(n As Long) As String
Dim s As String
Dim ns As String
Dim grp1 As String
Dim grp2 As String
Dim grp3 As String
Dim grp4 As String
 
         ns = Str$(n)
         ns = Mid$(ns, 2)
         s = Left$("000000000000", 12 - Len(ns)) + ns
 
         grp1 = Trasforma_Gruppo(Right$(s, 3))
         grp2 = Trasforma_Gruppo(Mid$(s, 7, 1) + Mid$(s, 8, 1) +
Mid$(s, 9, 1))
         grp3 = Trasforma_Gruppo(Mid$(s, 4, 1) + Mid$(s, 5, 1) +
Mid$(s, 6, 1))
         grp4 = Trasforma_Gruppo(Left$(s, 3))
 
         If grp2 <> "" Then
            If grp2 = "uno" Then grp2 = "mille" Else grp2 = grp2 +
"mila"
         End If
 
         If grp3 <> "" Then
            If grp3 = "uno" Then grp3 = "unmilione" Else grp3 = grp3 +
"milioni"
         End If
 
         If grp4 <> "" Then
            If grp4 = "uno" Then grp4 = "unmiliardo" Else grp4 = grp4
+ "miliardi"
         End If
 
         Trasforma_in_lettere = grp4 + grp3 + grp2 + grp1
 
End Function
-- 
Andrea Laforgia
#exclude <windows.h>