Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Convertire numeri in lettere

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] Convertire numeri in lettere

Postdi *sara* » 13/03/14 17:35

Esiste una funzione di excel in grado di convertire numeri in lettere?
Ho provato a cercare su internet ma ho trovato solo macro e nessuna decente!
:-?
Avatar utente
*sara*
Utente Junior
 
Post: 48
Iscritto il: 06/03/14 11:34

Sponsor
 

Re: [Excel] Convertire numeri in lettere

Postdi *sara* » 13/03/14 18:07

Questa è la migliore che ho trovato:
Codice: Seleziona tutto
Sub NumeriLettere()
Dim N$(100), M$(100)
Range("B6").Select 'cella col numero da convertire
Num = ActiveCell.Value
N$(0) = ""
N$(1) = "uno"
N$(2) = "due"
N$(3) = "tre"
N$(4) = "quattro"
N$(5) = "cinque"
N$(6) = "sei"
N$(7) = "sette"
N$(8) = "otto"
N$(9) = "nove"
N$(10) = "dieci"
N$(11) = "undici"
N$(12) = "dodoci"
N$(13) = "tredici"
N$(14) = "quattordici"
N$(15) = "quindici"
N$(16) = "sedici"
N$(17) = "diciassette"
N$(18) = "diciotto"
N$(19) = "diciannove"
M$(0) = ""
M$(2) = "venti"
M$(3) = "trenta"
M$(4) = "quaranta"
M$(5) = "cinquanta"
M$(6) = "sessanta"
M$(7) = "settanta"
M$(8) = "ottanta"
M$(9) = "novanta"
M$(10) = "Cento"
NN$ = LTrim$(Str$(Num))
If Len(NN$) > 6 Then
Milioni$ = Left$(NN$, Len(NN$) - 6)
NN$ = Right$(NN$, 6)
End If
If Len(NN$) > 3 Then
Migliaia$ = Left$(NN$, Len(NN$) - 3)
NN$ = Right$(NN$, 3)
End If
GoSub Ciclo
LLL$ = LL$
NN$ = Migliaia$
If Migliaia$ = "1" Then
LLL$ = "mille" + LLL$
Else
GoSub Ciclo
If Len(LL$) > o Then LLL$ = LL$ + "mila" + LLL$
End If
NN$ = Milioni$
If Milioni$ = "1" Then
LLL$ = "unmilione" + LLL$
Else
GoSub Ciclo
If Len(LL$) > o Then LLL$ = LL$ + "milioni" + LLL$
End If
 
Range("B7").Select 'cella che riporta la conversione il lettere
ActiveCell.Value = LLL$
GoTo Fine
Ciclo:
LL$ = ""
Num0 = Val(NN$)
If Len(NN$) = 2 Then NN$ = "0" + NN$
If Len(NN$) = 1 Then NN$ = "00" + NN$
Num3 = Val(Right$(NN$, 1))
Num2 = Val(Mid$(NN$, 2, 1))
Num1 = Val(Left$(NN$, 1))
If Num0 > 99 Then
If Num0 > 199 Then LL$ = N$(Num1)
LL$ = LL$ + "cento"
End If
If Num2 > 1 Then
LL$ = LL$ + M$(Num2)
If Num3 > 0 Then
If Num3 = 1 Or Num3 = 8 Then LL$ = Left$(LL$, Len(LL$) - 1)
LL$ = LL$ + N$(Num3)
End If
End If
If Num2 < 2 Then
LL$ = LL$ + N$(Num3 + Num2 * 10)
End If
Return
Fine:
End Sub

Ma se volessi convertire i numeri di un'intera colonna???? Come posso modificare il codice?
Avatar utente
*sara*
Utente Junior
 
Post: 48
Iscritto il: 06/03/14 11:34

Re: [Excel] Convertire numeri in lettere

Postdi alfrimpa » 13/03/14 18:22

Per fare quello che chiedi non va bene una sub ma ci vuole una function.

Se cerchi un po' in rete dovresti riuscire a trovare qualcosa.

Ma mi pare di ricordare che anche su questo forum se ne sia parlato.

Ciao

Alfredo

P.S. Io ne ho trovato una a questo indirizzo http://archi.forumup.it/about2157-0.html provala e vedi se ti va bene.
Quella giusta è indicata nell'ultimo post
Ultima modifica di alfrimpa su 13/03/14 18:32, modificato 1 volte in totale.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 842
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: [Excel] Convertire numeri in lettere

Postdi *sara* » 13/03/14 18:31

Non sono molto pratica di macro...e sinceramente non conosco la differenza fra una sub e una function.... :oops:
Cercherò meglio!
Avatar utente
*sara*
Utente Junior
 
Post: 48
Iscritto il: 06/03/14 11:34

Re: [Excel] Convertire numeri in lettere

Postdi alfrimpa » 13/03/14 18:40

In linea generale una sub esegue un'azione mentre una function esegue dei calcoli (sulla base dei parametri assegnati) e ne restituisce il risultato.

Esempi:

Sub cancella()
Activecell.Value="Sara"
End Sub

Questa macro assegna alla cella attiva il valore Sara (in questo caso viene compiuta un'azione)

Function areatriangolo(a,b)
areatriangolo = a * b / 2
End function

Quindi se in a1 c'è la base ed in b1 l'altezza se scrivi in c1 =areatriangolo(a;b) la funzione calcolerà l'area.

Ciao

Alfredo
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 842
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: [Excel] Convertire numeri in lettere

Postdi *sara* » 13/03/14 18:50

GRAZIE!!!!!!!!!!! Mi hai aperto un mondo! :D
Avatar utente
*sara*
Utente Junior
 
Post: 48
Iscritto il: 06/03/14 11:34

Re: [Excel] Convertire numeri in lettere

Postdi Anthony47 » 13/03/14 18:56

Vedi anche la funzione SPELLIT pubblicata qui: viewtopic.php?f=26&t=96191&p=552935#p552935

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Convertire numeri in lettere

Postdi alfrimpa » 13/03/14 18:57

Sono contento!

Ora sei pronta a girare il mondo :)

Alfredo
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 842
Iscritto il: 30/12/13 17:01
Località: Napoli


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Convertire numeri in lettere":


Chi c’è in linea

Visitano il forum: Lucio Peruggini e 3 ospiti

cron