NUMEROS A LETRAS (SOLO CORTA Y PEGA EN TU VB)

Solo aportes de interés para otros usuarios Excel
Estos foros NO son para preguntas!
Reglas del Foro En estos foros solo puedes hacer aportes Excel de interés para la comunidad (no son para hacer preguntas!)

NUMEROS A LETRAS (SOLO CORTA Y PEGA EN TU VB)

Notapor fbaxter » 18 Oct 2013 18:00

Código: Seleccionar todo
' FUNCION NUMEROS A LETRA
Function NAL(N)
    Dim X
   
    If IsNumeric(N) Then N = Int(N) Else N = 0

    If Len(N) > 27 Then A = "Caleta Loko - Overflow - Chao!!": N = "": GoTo Volver
    If (Not IsNumeric(N)) Then A = "Ingresa un numero pos mermeck": N = "": GoTo Volver
    If N = 0 Then A = "Cero": N = "": GoTo Volver

    V$ = "          mil       millon    mil       billon    mil       trillon   mil       cuatrillonquintillonsextillon "

Cortar_Tres:
    X = Right(N, 3) * 1: I = I + 1: K = Len(N): If K > 2 Then N = Mid$(N, 1, K - 3) Else N = ""
    T = Trim(Mid$(V$, 10 * I - 9, 10)): P = Right(T, 1)
    If P = "n" Then If (X > 1 Or K > 1) Then T = T + "es" Else If X = 1 Then A = "un": GoTo Volver
    If Right(T, 1) = "s" And X = 0 And Len(N) > 3 Then T = ""
    If P = "l" Then If X = 0 Then T = "" Else If X = 1 Then A = "": GoTo Volver
    A = NAP(X)
    If I > 1 Then If Right(A, 3) = "uno" Then A = Mid(A, 1, Len(A) - 1)

Volver:
    L = A + " " + T + " " + L: L = Trim(L)
    If Len(N) > 0 Then GoTo Cortar_Tres

NAL = L

End Function

Function NAP(X)

    L = "": If X = 0 Then NL1 = "": X = Z: GoTo Numero_Final

Inicio:
    E = Int(Log(X) / Log(10)): y = Int(X / 10 ^ E): Z = X - y * 10 ^ E
    If X > 100 Then V$ = "ciento       doscientos   trescientos  cuatrocientosquinientos   seiscientos  setecientos  ochocientos  novecientos      novecientos      novecientos      novecientos      novecientos      novecientos      novecientos      ": P$ = " ": GoTo Calculo
    If X = 100 Then L = L + "cien": GoTo Numero_Final
    If X > 29 Then V$ = "                          treinta      cuarenta     cincuenta    sesenta      setenta      ochenta      noventa          cien": P$ = " y ": GoTo Calculo
    If X = 20 Then L = L + "veinte": GoTo Numero_Final
    If X > 20 Then X = X - 20:        L = L + "veinti": GoTo Inicio
    If X > 15 Then X = X - 10:        L = L + "dieci":  GoTo Inicio
    If X > 0 Then y = X: Z = 0: V$ = "uno          dos          tres         cuatro       cinco        seis         siete        ocho         nueve        diez         once         doce         trece        catorce      quince": P$ = ""

Calculo:
    L = L + Trim(Mid(V$, 13 * y - 12, 13)): If Z > 0 Then L = L + P$
 
Numero_Final:
    X = Z: If Z > 0 Then GoTo Inicio
    NAP = L

End Function
fbaxter
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 29
Registrado: 10 May 2011 19:47

Volver a TUS APORTES

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado