Risultati da 1 a 2 di 2

Discussione: Convertire un numero in lettere



  1. #1
    L'avatar di MavericK
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Roma
    Messaggi
    1
    Versione Office
    Office 2010
    Likes ricevuti
    4
    Likes dati
    0

    Convertire un numero in lettere

    Pubblico una funzione che ho scritto per convertire un numero in lettere. Questa ha un codice evidentemente più breve e semplice di altre reperibili su internet. Funziona con numeri positivi uguali o minori di 999.999.999.999.999,99
    ESEMPIO:
    INPUT: 123.456.789,12
    OUTPUT: CENTOVENTITREMILIONIQUATTROCENTOCINQUANTASEIMILASETTECENTOOTTANTANOVE/12


    Codice: 
    Public Function NumToLet(N) As String
        
        Words = Array("", "UNO", "DUE", "TRE", "QUATTRO", "CINQUE", "SEI", _
        "SETTE", "OTTO", "NOVE", "DIECI", "UNDICI", "DODICI", "TREDICI", _
        "QUATTORDICI", "QUINDICI", "SEDICI", "DICIASSETTE", "DICIOTTO", "DICIANNOVE", _
        "VENTI", "TRENTA", "QUARANTA", "CINQUANTA", "SESSANTA", "SETTANTA", _
        "OTTANTA", "NOVANTA", "CENTO", "UNO", "MILLE", "UNMILIONE", _
        "UNMILIARDO", "UNTRILIONE", "", "MILA", "MILIONI", "MILIARDI", "TRILIONI")
        F$ = Right(Format(N, "###0.00"), 2)
        I = Int(N)
        If I = 0 Then
            L$ = "ZERO"
        Else
            Dim G(5, 3) As Long
            For J = 1 To 5
                For k = 3 To 1 Step -1
                    I = I / 10
                    G(J, k) = (I - Int(I)) * 10
                    I = Int(I)
                Next
            Next
            For J = 5 To 1 Step -1
                If G(J, 1) + G(J, 2) + G(J, 3) = 0 Then
                ElseIf G(J, 1) + G(J, 2) = 0 And G(J, 3) = 1 Then L$ = L$ & Words(28 + J)
                Else
                    If G(J, 1) > 1 Then L$ = L$ & Words(G(J, 1))
                    If G(J, 1) > 0 Then L$ = L$ & Words(28)
                    If G(J, 2) = 1 Then
                        L$ = L$ & Words(G(J, 3) + 10)
                    Else
                        If G(J, 2) > 1 Then
                            L$ = L$ & Words(G(J, 2) + 18)
                            If G(J, 3) = 1 Or G(J, 3) = 8 Then L$ = Left(L$, Len(L$) - 1)
                        End If
                        L$ = L$ & Words(G(J, 3))
                    End If
                    L$ = L$ & Words(33 + J)
                End If
            Next
        End If
        NumToLet = L$ & "/" & F$
    End Function
    Ultima modifica fatta da:cromagno; 15/02/16 alle 22:22 Motivo: Inserito codice tra i tag [CODE] + Indentazione

  2. I seguenti 4 utenti hanno dato un "Like" a MavericK per questo post:


  3. #2

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ciao Maverick,

    grazie per la condivisione :246:

    P.S.
    In futuro ricordati di inserire il codice tra i tag CODE.
    Ultima modifica fatta da:cromagno; 15/02/16 alle 23:50

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

Discussioni Simili

  1. [Risolto] convertire file da xls a xml
    Di dandim74 nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 09/01/17, 15:16
  2. Convertire totale ore in euro
    Di matteowifi nel forum Domande su Excel in generale
    Risposte: 3
    Ultimo Messaggio: 01/09/16, 18:19
  3. Convertire data
    Di alessio9567 nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 30/06/16, 10:00
  4. convertire formati ora
    Di sandro contri nel forum Domande su Excel in generale
    Risposte: 20
    Ultimo Messaggio: 18/10/15, 19:19
  5. Convertire numero da cifre in lettere
    Di Ste nel forum Domande su Excel in generale
    Risposte: 3
    Ultimo Messaggio: 17/06/15, 19:06

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •