Informática & Tecnología

En esta ocasión les traigo el código para convertir números a texto en Excel. El uso que puedan o deban darle ya se lo imaginarán. Los pasos a seguir son:

  1. Seleccionar la celda (vacía) donde se hará la conversión.
  2. Para Excel 2003, dar clic en Herramientas/Macro/Editor de Visual Basic; para Excel 2007, dar clic en la ficha Vista, opción Macro, Ver Macros, escribir el nombre y clic en crear. Con cualquiera de las dos versiones aparece una ventana de nombre Microsoft Visual Basic – Libro1, ahí es donde se pegará el siguiente código que debes DESCARGAR AQUÍ, antes borra las dos líneas de código que ahí aparecen.
  3. Guardas los cambios y cierras la ventana Microsoft Visual Basic.
  4. Da clic en el ícono de Excel Insertar función “fx”, aparece una ventana en la cual debes buscar CONVIERTENUMLETRA, cuando salga la seleccionamos y damos clic en aceptar, en la siguiente ventana escribimos la celda que contiene el número a convertir, por ejemplo “e5″.
  5. Ahora presionas ENTER y disfrútalo.

Como podemos observar cualquier cantidad escrita en números se convertirá a texto, esto es útil en muchas ocasiones, sobre todo cuando se trata de facturar o hacer notas de ventas con ayuda de Excel.

ACTUALIZACIÓN

Como una cortesía de nuestro amigo el Ing. Reséndiz, tenemos aquí una macro mejorada a la ya descrita. Es un archivo en Excel que no ha sido probado en la versión 2003, si alguien lo hace puede decirnos en los comentarios. Funciona correctamente en 2007 y 2010. Gracias Ing. Reséndiz por compartir la macro con todos. DESCARGAR AQUÍ.

ACTUALIZACIÓN (18/02/12)

Les comento a todos los que les da el problema de UN MIL UNO y algunos otros, que estos han sido corregidos, solo que por falta de tiempo no pude ponerlos antes, aquí en este enlace comparto con todos un ejemplo de factura con Código Bidimensional (CBB) en el cual está la macro modificada y funcionando correctamente, al menos hasta ahora, si encuentran algún error no olviden ponerlo en los comentarios.

¿Te ha funcionado la macro?

Deja un comentario y visita mis otros post.

533 respuestas a Convertir números a texto (letras) en Excel

  • Oswaldo dice:

    Aplico todo el procedimiento y al final como a otros, me aparece la leyenda #?NOMBRE?. Por favor, alguien que pueda contestar algo sobre este error, se o vamos a agradecer.

  • Aurora Sanchez dice:

    Me ayudo un buen este método de convertir los numeros en texto, solo tengo una duda, cada vez que vuelvo a entrar al archivo e imprimir facturas, ya no esta la opcion de convertir numero en letra, entonces tengo que volver hacer todo el procedimiento, hay alguna forma para que quede guardada la aplicacion y no tener que hacer todos los pasos nuevamente.? muchas gracias por su apoyo.

    • Vateos dice:

      No tienes que hacer todos los pasos cada vez que abras el archivo, solo debes habilitar las macros cuando lo abras de nuevo, si lo necesitas en otro archivo de excel entonces si debes realizar nuevamente el procedimiento.

  • miguel damian dice:

    hola, es excelente, es solo que lo que necesito es que la cantidad me de lo siguiente: 10.567 m3 en letras DIEZ METROS CON QUINIENTOS SESENTA Y SIETE DECIMETROS CUBICOS. PODRAN AYUDARME?

  • SOLAIME GOMEZ ROMERO dice:

    YA PUEDE LOGRAR CAMBIAR GRACIAS A SU FORMULA DE NUMEROS A LETRAS EL PROBLEMA FUE QUE CUANDO QUISE GUARDAR EL ARCHIVO YA NO ME DEJO SE BORRO LA FORMULTA Y YA ME ENRREDE TODA COMO LE HAGO PARA TERMINAR CON ESTE DOLOR DE CABEZA EXACTAMENTE LO QUIERO PARA HACER FACTURAS AYUDENME POR FA GRACIAS Y SALUDOS… :D

  • Carlos morales dice:

    Buen dia, necesito convertir Q1250.00 quetzales a letras “”Un mil doscientos cincuenta con 00/100″”, gracias y espero sus respuestas, saludos

  • JAIME dice:

    Buenas. con una pregunta alguien sabra como agregar esa formula a el programa loque pasa es que lo hice pero solo me funciona para un libro y yo quiero agregarlo a exel de forma que cuando abra un nuevo libro ya este la formula en cualquier libro ya lo hice pero no me acuerdo muy bien es mas omenos en opciones de exel y no estoy seguro si es en formulas o complementos! si alguien me pudiera ayudar se lo agradeceria muchisimo!!

  • Clayita Forero dice:

    Mil Gracias!
    Excelente aporte y para quitar el 00/100 M N, solo hay que modificar el codigo inicial, podes copiar el siguiente:

    FUNCTION CONVIERTENUMLETRA(NUMERO)
    DIM TEXTO
    DIM MILLONES
    DIM MILES
    DIM CIENTOS
    DIM DECIMALES
    DIM CADENA
    DIM CADMILLONES
    DIM CADMILES
    DIM CADCIENTOS
    TEXTO = NUMERO
    TEXTO = FORMATNUMBER(TEXTO, 2)
    TEXTO = RIGHT(SPACE(14) & TEXTO, 14)
    MILLONES = MID(TEXTO, 1, 3)
    MILES = MID(TEXTO, 5, 3)
    CIENTOS = MID(TEXTO, 9, 3)
    DECIMALES = MID(TEXTO, 13, 2)
    CADMILLONES = CONVIERTECIFRA(MILLONES, 1)
    CADMILES = CONVIERTECIFRA(MILES, 1)
    CADCIENTOS = CONVIERTECIFRA(CIENTOS, 0)
    IF TRIM(CADMILLONES) > “” THEN
    IF TRIM(CADMILLONES) = “UN” THEN
    CADENA = CADMILLONES & ” MILLON”
    ELSE
    CADENA = CADMILLONES & ” MILLONES”
    END IF
    END IF
    IF TRIM(CADMILES) > “” THEN
    CADENA = CADENA & ” ” & CADMILES & ” MIL”
    END IF

    IF TRIM(CADMILES & CADCIENTOS) = “UN” THEN
    CADENA = CADENA & “UNO PESOS” & DECIMALES
    ELSE
    IF MILES & CIENTOS = “000000″ THEN
    CADENA = CADENA & ” ” & TRIM(CADCIENTOS) & ” PESOS ” & DECIMALES
    ELSE
    CADENA = CADENA & ” ” & TRIM(CADCIENTOS) & ” PESOS ” & DECIMALES
    END IF
    END IF
    CONVIERTENUMLETRA = TRIM(CADENA)
    END FUNCTION

    FUNCTION CONVIERTECIFRA(TEXTO, SW)
    DIM CENTENA
    DIM DECENA
    DIM UNIDAD
    DIM TXTCENTENA
    DIM TXTDECENA
    DIM TXTUNIDAD
    CENTENA = MID(TEXTO, 1, 1)
    DECENA = MID(TEXTO, 2, 1)
    UNIDAD = MID(TEXTO, 3, 1)
    SELECT CASE CENTENA
    CASE “1″
    TXTCENTENA = “CIEN”
    IF DECENA & UNIDAD “00″ THEN
    TXTCENTENA = “CIENTO”
    END IF
    CASE “2″
    TXTCENTENA = “DOSCIENTOS”
    CASE “3″
    TXTCENTENA = “TRESCIENTOS”
    CASE “4″
    TXTCENTENA = “CUATROCIENTOS”
    CASE “5″
    TXTCENTENA = “QUINIENTOS”
    CASE “6″
    TXTCENTENA = “SEISCIENTOS”
    CASE “7″
    TXTCENTENA = “SETECIENTOS”
    CASE “8″
    TXTCENTENA = “OCHOCIENTOS”
    CASE “9″
    TXTCENTENA = “NOVECIENTOS”
    END SELECT

    SELECT CASE DECENA
    CASE “1″
    TXTDECENA = “DIEZ”
    SELECT CASE UNIDAD
    CASE “1″
    TXTDECENA = “ONCE”
    CASE “2″
    TXTDECENA = “DOCE”
    CASE “3″
    TXTDECENA = “TRECE”
    CASE “4″
    TXTDECENA = “CATORCE”
    CASE “5″
    TXTDECENA = “QUINCE”
    CASE “6″
    TXTDECENA = “DIECISEIS”
    CASE “7″
    TXTDECENA = “DIECISIETE”
    CASE “8″
    TXTDECENA = “DIECIOCHO”
    CASE “9″
    TXTDECENA = “DIECINUEVE”
    END SELECT
    CASE “2″
    TXTDECENA = “VEINTE”
    IF UNIDAD “0″ THEN
    TXTDECENA = “VEINTI”
    END IF
    CASE “3″
    TXTDECENA = “TREINTA”
    IF UNIDAD “0″ THEN
    TXTDECENA = “TREINTA Y ”
    END IF
    CASE “4″
    TXTDECENA = “CUARENTA”
    IF UNIDAD “0″ THEN
    TXTDECENA = “CUARENTA Y ”
    END IF
    CASE “5″
    TXTDECENA = “CINCUENTA”
    IF UNIDAD “0″ THEN
    TXTDECENA = “CINCUENTA Y ”
    END IF
    CASE “6″
    TXTDECENA = “SESENTA”

    IF UNIDAD “0″ THEN
    TXTDECENA = “SESENTA Y ”
    END IF
    CASE “7″
    TXTDECENA = “SETENTA”
    IF UNIDAD “0″ THEN
    TXTDECENA = “SETENTA Y ”
    END IF
    CASE “8″
    TXTDECENA = “OCHENTA”
    IF UNIDAD “0″ THEN
    TXTDECENA = “OCHENTA Y ”
    END IF
    CASE “9″
    TXTDECENA = “NOVENTA”
    IF UNIDAD “0″ THEN
    TXTDECENA = “NOVENTA Y ”
    END IF
    END SELECT

    IF DECENA “1″ THEN
    SELECT CASE UNIDAD
    CASE “1″
    IF SW THEN
    TXTUNIDAD = “UN”
    ELSE
    TXTUNIDAD = “UNO”
    END IF
    CASE “2″
    TXTUNIDAD = “DOS”
    CASE “3″
    TXTUNIDAD = “TRES”
    CASE “4″
    TXTUNIDAD = “CUATRO”
    CASE “5″
    TXTUNIDAD = “CINCO”
    CASE “6″
    TXTUNIDAD = “SEIS”
    CASE “7″
    TXTUNIDAD = “SIETE”
    CASE “8″
    TXTUNIDAD = “OCHO”
    CASE “9″
    TXTUNIDAD = “NUEVE”
    END SELECT
    END IF
    CONVIERTECIFRA = TXTCENTENA & ” ” & TXTDECENA & TXTUNIDAD
    END FUNCTION

    • P3DRO dice:

      Muy buen aporte !!! Es exactamente lo que necesitaba, solo le hice un par de modificaciones en lo q es texto, (le saqué el “M.N.” y “PESOS” ,) porque asi lo necesitaba pero muy bueno!!

  • jaime sanchez dice:

    Quedo muy agradecido con este conocimiento que compartes. Se ve que eres muy bueno en esto y ademas buena onda.
    Gracias. Todo lo que quieras compartir con los que no sabemos, será muy bienvenido.

    Saludos

  • yessica dice:

    a mi no me funciona hago todos los pasos pero cuando busco en la funcion fx la opcion CONVIERTENUMLETRA no me aparece?? que estoy haciendo mal???

    saludos

  • ALFONSO dice:

    muy bueno me ayudo mucho con mi trabajo yo lo hago en soles (Perú), solo me falta agregar el “con” antes de los decimales, aver si me ayudan gracias.

  • jelviel dice:

    agradesco vuestros comentarios me ayudado bastante, quiero saber si puedo eliminar 05/100 M.N no necesito los desimales e intentado varias cosas pero no resulta gracias

  • ELICITA dice:

    ‘Funciones para convertir de números a letras
    ‘Llamada : Letras(Número,Formato) – Formato 1-Pesos, 2-Dólares, 3-Sucres
    Function Unidades(num, UNO)
    Dim U
    Dim Cad

    U = Array(“UN”, “DOS”, “TRES”, “CUATRO”, “CINCO”, “SEIS”, “SIETE”, “OCHO”, “NUEVE”)
    Cad = “”
    If num = 1 Then
    If UNO = 1 Then
    Cad = Cad & “UNO”
    Else
    Cad = Cad & “UN”
    End If
    Else
    Cad = Cad & U(num – 1)
    End If
    Unidades = Cad
    End Function

    Function Decenas(num1, res)
    Dim D1
    D1 = Array(“ONCE”, “DOCE”, “TRECE”, “CATORCE”, “QUINCE”, “DIECISEIS”, “DIECISIETE”, _
    “DIECIOCHO”, “DIECINUEVE”)
    D2 = Array(“DIEZ”, “VEINTE”, “TREINTA”, “CUARENTA”, “CINCUENTA”, “SESENTA”, _
    “SETENTA”, “OCHENTA”, “NOVENTA”)

    If num1 > 10 And num1 < 20 Then
    Cad1 = D1(num1 – 10 – 1)
    Else
    Cad1 = D2((num1 10) – 1)
    If (num1 10) 2 Then
    If res > 0 Then
    Cad1 = Cad1 & ” Y ”
    Cad1 = Cad1 & Unidades(num1 Mod 10, 0)
    End If
    Else
    If res = 0 Then
    Cad1 = Cad1 & “E”
    Else
    Cad1 = Cad1 & ” Y ”
    Cad1 = Cad1 & Unidades(num1 Mod 10, 0)
    End If
    End If
    End If
    Decenas = Cad1
    End Function

    Function Cientos(num2)
    num3 = num2 100
    Select Case num3
    Case 1
    If num2 = 100 Then
    cad2 = “CIEN ”
    Else
    cad2 = “CIENTO ”
    End If
    Case 5
    cad2 = “QUINIENTOS ”
    Case 7
    cad2 = “SETECIENTOS ”
    Case 9
    cad2 = “NOVECIENTOS ”
    Case Else
    cad2 = Unidades(num3, 0) & “CIENTOS ”
    End Select

    num2 = num2 Mod 100
    If num2 > 0 Then
    If num2 = 100) Then
    cad3 = Cientos(num4)
    Else
    If (num4 >= 10) Then
    cad3 = Decenas(num4, num4 Mod 10)
    Else
    cad3 = Unidades(num4, 0)
    End If
    End If
    cad3 = cad3 & ” MIL ”
    Miles = cad3
    End Function

    Function Millones(cant)
    If cant = 1 Then
    ter = ” ”
    Else
    ter = “ES ”
    End If
    If (cant >= 1000) Then
    cantl = cantl & Miles(cant 1000)
    cant = cant Mod 1000
    End If
    If cant > 0 Then
    If cant >= 100 Then
    cantl = cantl & Cientos(cant)
    Else
    If cant >= 10 Then
    cantl = cantl & Decenas(cant, cant Mod 10)
    Else
    cantl = cantl & Unidades(cant, 0)
    End If
    End If
    End If
    Millones = cantl & ” MILLON” & ter
    End Function
    Function decimales(numero As Single) As Integer
    Dim iaux As Integer
    iaux = numero – Application.Round(numero, 2)
    decimales = iaux
    End Function

    Function letras(cantm As Variant, ByVal mon As Integer) As String
    Dim cants1 As String, num1 As Variant, num2 As Variant

    num1 = cantm 1000000
    num2 = cantm – (num1 * 1000000)

    cents = (num2 * 100) Mod 100
    If cents = 0 Then
    cents1 = “00″
    Else
    cents1 = Format(cents)
    End If
    cantm = cantm – (cents / 100)
    If cantm >= 1000000 Then
    cantlm = Millones(cantm 1000000)
    cantm = cantm Mod 1000000
    End If
    If cantm > 0 Then
    If (cantm >= 1000) Then
    cantlm = cantlm & Miles(cantm 1000)
    cantm = cantm Mod 1000
    End If
    End If
    If cantm > 0 Then
    If cantm >= 100 Then
    cantlm = cantlm & Cientos(cantm)
    Else
    If cantm >= 10 Then
    cantlm = cantlm & Decenas(cantm, cantm Mod 10)
    Else
    cantlm = cantlm & Unidades(cantm, 1)
    End If
    End If
    End If
    If mon = 1 Then
    letras = cantlm & ” PESOS ” & cents1 & “/100 M.N.”
    Else
    letras = cantlm & ” DOLARES CON ” & cents1 & ” CENTAVOS ”
    End If
    End Function

    Sub prueba()
    Dim res As String, num As Single
    num = 50899697.51
    res = letras(num, 1)
    End Sub

  • SILVIA JUDITH PINZON DIAZ dice:

    Hola hoy use la aplicacion de convertir numeros a letras pero me sale un error al terminar de usar que es el siguiente # ¿NOMBRE? me puede decir cual es el problema gracias

  • Marco dice:

    Buenos dias, quisiera sabe si me pueden ayudar a modificar la macro para que convierta montos superiores a los 1,000,000,000.00

    muchas gracias

    Function NUM_A_LETRAS(tyCantidad As Currency) As String

    Dim lyCantidad As Currency, lyCentavos As Currency, lnDigito As Byte, lnPrimerDigito As Byte, lnSegundoDigito As Byte, lnTercerDigito As Byte, lcBloque As String, lnNumeroBloques As Byte, lnBloqueCero
    Dim laUnidades As Variant, laDecenas As Variant, laCentenas As Variant, I As Variant ‘Si esta como Option Explicit

    tyCantidad = Round(tyCantidad, 2)
    lyCantidad = Int(tyCantidad)
    lyCentavos = (tyCantidad – lyCantidad) * 100
    laUnidades = Array(“UN”, “DOS”, “TRES”, “CUATRO”, “CINCO”, “SEIS”, “SIETE”, “OCHO”, “NUEVE”, “DIEZ”, “ONCE”, “DOCE”, “TRECE”, “CATORCE”, “QUINCE”, “DIECISEIS”, “DIECISIETE”, “DIECIOCHO”, “DIECINUEVE”, “VEINTE”, “VEINTIUN”, “VEINTIDOS”, “VEINTITRES”, “VEINTICUATRO”, “VEINTICINCO”, “VEINTISEIS”, “VEINTISIETE”, “VEINTIOCHO”, “VEINTINUEVE”)
    laDecenas = Array(“DIEZ”, “VEINTE”, “TREINTA”, “CUARENTA”, “CINCUENTA”, “SESENTA”, “SETENTA”, “OCHENTA”, “NOVENTA”)
    laCentenas = Array(“CIENTO”, “DOSCIENTOS”, “TRESCIENTOS”, “CUATROCIENTOS”, “QUINIENTOS”, “SEISCIENTOS”, “SETECIENTOS”, “OCHOCIENTOS”, “NOVECIENTOS”)
    lnNumeroBloques = 1

    Do

    lnPrimerDigito = 0
    lnSegundoDigito = 0
    lnTercerDigito = 0
    lnCuartoDigito = 0
    LQuintoDigito = 0
    lcBloque = “”
    lnBloqueCero = 0
    For I = 1 To 3
    lnDigito = lyCantidad Mod 10

    If lnDigito 0 Then

    Select Case I
    Case 1
    lcBloque = ” ” & laUnidades(lnDigito – 1)
    lnPrimerDigito = lnDigito
    Case 2
    If lnDigito <= 2 Then
    lcBloque = " " & laUnidades((lnDigito * 10) + lnPrimerDigito – 1)
    Else
    lcBloque = " " & laDecenas(lnDigito – 1) & IIf(lnPrimerDigito 0, ” Y”, Null) & lcBloque
    End If
    lnSegundoDigito = lnDigito
    Case 3
    lcBloque = ” ” & IIf(lnDigito = 1 And lnPrimerDigito = 0 And lnSegundoDigito = 0, “CIEN”, laCentenas(lnDigito – 1)) & lcBloque
    lnTercerDigito = lnDigito
    End Select
    Else
    lnBloqueCero = lnBloqueCero + 1
    End If
    lyCantidad = Int(lyCantidad / 10)
    If lyCantidad = 0 Then
    Exit For
    End If
    Next I
    Select Case lnNumeroBloques
    Case 1
    NUM_A_LETRAS = lcBloque
    Case 2
    NUM_A_LETRAS = lcBloque & IIf(lnBloqueCero = 3, Null, ” MIL”) & NUM_A_LETRAS
    Case 3
    NUM_A_LETRAS = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, ” MILLLON”, ” MILLONES”) & NUM_A_LETRAS
    Case 4
    NUM_A_LETRAS = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0 And lnCuartoDigito = 0, ” MIL”, ” MILLONES”) & NUM_A_LETRAS
    End Select
    lnNumeroBloques = lnNumeroBloques + 1
    Loop Until lyCantidad = 0

    NUM_A_LETRAS = “MONTO_EN_LETRAS: (” & NUM_A_LETRAS & IIf(tyCantidad > 1, ” COLONES “, ” COLON “) & Format(Str(lyCentavos), “00″) & “/100 )”
    End Function

  • LORENA dice:

    Hola a todos, buen día.. A ver si por favor me pueden ayudar; necesito convertir una fecha de números a letras. Ej. 30/08/2012 esto debería convertirse a: treinta días del mes de Agosto del año 2012.
    Es esto posible o quiero hacer magia donde no se puede?.
    De antemano mil gracias.

    • Joe dice:

      Hola Lorena. no había visto tu pregunta, hasta hoy: Espero que todavía te sirva, si no la dejo para alguien más que la necesite.
      La fórmula es:
      =DIA(A1)&” días del mes de “&ELEGIR(MES(A1),”Enero”,”Febrero”,”Marzo”,”Abril”,”Mayo”,”Junio”,”Julio”,”Agosto”,”Septiembre”,”Octubre”,”Noviembre”,”Diciembre”)&” de “&AÑO(A1)
      suponiendo que la fecha la pones en A1

      • ROJO332 dice:

        HOLA LORENA

        LEI TU PREGUNTA Y TAL VEZ ESTO TE AYUDE! ES IGUAL CONTEMPLANDO QUE PUSIERAS LA FECHA EN LA CELDA “A1″ Solo tendrias q meter esta formula en la celda que quieras q aparezca con letras. Y si no es lo q buscabas si me mandas el archivo con lo q hace tal vez te pueda ayudar.

        =ELEGIR(DIA(A1),”un”,”dos”,”tres”,”cuatro”,”cinco”,”seis”,”siete”,”ocho”,”nueve”,”diez”,”once”,”doce”,”trece”,”catorce”,”quince”,”dieciseis”,”diecisiete”,”dieciocho”,”diecinueve”,”veinte”,”veintiun”,”veintidos”,”veintitres”,”veinticuatro”,”veinticinco”,”veintiseis”,”veintisiete”,”veintiocho”,”veintinuve”,”treinta”,”treinta y un”)& SI(DIA(A1)=1,” día del mes de “,” días del mes de “) & ELEGIR(MES(A1),”Enero”,”Febrero”,”Marzo”,”Abril”,”Mayo”,”Junio”,”Julio”,”Agosto”,”Septiembre”,”Octubre”,”Noviembre”,”Diciembre”) & ” del año ” & AÑO(A1)

        Otra opcion es poner estos simbolos en FORMATOS DE CELDA, NUMERO, PERSONALIZADA
        [$-80AAAA]d” dias del mes de “mmmm” del año “aaaa;@

        SUERTE

  • OCTAVIO dice:

    HOLA, GRACIAS POR EL APORTE,
    PERO ME PODRIAN AYUDAR A MODIFICARLO UN POCO, YA QUE NECESITO PONER EL TEXTO ENTRE PARÉNTESIS, DESPUES DE LA PALABRA PESOS PONER “CON” 00/100 M.N.

  • JENNYP dice:

    Super muchas gracias por ese aporte tan bueno, que bien que el internet sirva para cosas tan útiles como esta… mil y mil gracias.

  • Evelyn dice:

    A mi tampoco me aparece la cantidad en letras, solo “#NAME?” pero sí funciona cuando está vacía, entonces deja en blanco la casilla. ¿Alguien me puede decir como lo corrijo? Gracias

  • pacotescribe dice:

    Hola buenas tardes,
    Me parece un excelente aporte, todo muy bien, excepto que no me aparece la cantidad con letra, solo me aparece esto : #¿NOMBRE?

    ¡Que hago para que me aparezca la cantidad con letra????

    Gracias :D

  • IVELISSE DURAN dice:

    MUCHAS GRACIAS POR ESTE APORTE, TENIA MUCHO TIEMPO TRATANDO DE CONSEGUIR ESTE MACRO PARA LA IMPRESION DE LOS CHEQUES EN MI OFICINA Y AL FIN LO LOGRE!

    • Vateos dice:

      Pedro:

      Si funciona en otras computadoras, sólo debes verificar al momento de abrir el archivo que la opción de habilitar macros esté activa.

  • Victor Garcia dice:

    Que tal esta genial tu codigo, le he modificado un poco para eliminar el “UN MIL PESOS” y quede “MIL PESOS” o “UN PESOS” a “UN PESO” y agregue “CERO PESOS”
    Function CONVIERTENUMLETRA(NUMERO)
    Dim A
    Dim TEXTO
    Dim MILLONES
    Dim MILES
    Dim CIENTOS
    Dim DECIMALES
    Dim CADENA
    Dim CADMILLONES
    Dim CADMILES
    Dim CADCIENTOS

    TEXTO = NUMERO
    TEXTO = FormatNumber(TEXTO, 2)
    TEXTO = Right(Space(14) & TEXTO, 14)
    MILLONES = Mid(TEXTO, 1, 3)
    MILES = Mid(TEXTO, 5, 3)
    CIENTOS = Mid(TEXTO, 9, 3)
    DECIMALES = Mid(TEXTO, 13, 2)

    ‘Convertir Numeros a Palabras
    CADMILLONES = CONVIERTECIFRA(MILLONES, 1)
    CADMILES = CONVIERTECIFRA(MILES, 1)
    CADCIENTOS = CONVIERTECIFRA(CIENTOS, 0)

    If MILLONES & MILES & CIENTOS = 0 Then
    CADENA = “(*” & “CERO” & ” PESOS ” & DECIMALES & “/100″ & ” M.N.*)”
    Else
    ‘Checar si hay Millones
    If Trim(CADMILLONES) > “” Then
    If Trim(CADMILLONES) = “UN” Then ‘Checa si es 1,000,000
    CADENA = CADMILLONES & ” MILLON ”
    Else
    CADENA = CADMILLONES & ” MILLONES ”
    End If
    End If
    ‘Checar si hay Miles
    If Trim(CADMILES) > “” Then
    If Trim(CADMILES) = “UN” Then ‘Checa si es 1,000
    CADENA = “MIL ”
    Else
    CADENA = CADENA & CADMILES & ” MIL ”
    End If
    End If

    If Trim(CADMILES & CADCIENTOS) = “UN” Then
    If Trim(CADCIENTOS) > “” Then
    A = “UN PESO ”
    Else
    A = ” PESOS ”
    End If
    CADENA = “(*” & CADENA & A & DECIMALES & “/100″ & ” M.N.*)”
    Else
    If MILES & CIENTOS = “000000″ Then
    CADENA = “(*” & CADENA & Trim(CADCIENTOS) & ” DE PESOS ” & DECIMALES & “/100″ & ” M.N.*)”
    Else
    CADENA = “(*” & CADENA & Trim(CADCIENTOS) & ” PESOS ” & DECIMALES & “/100″ & ” M.N.*)”
    End If
    End If
    End If
    CONVIERTENUMLETRA = Trim(CADENA)
    End Function

    Function CONVIERTECIFRA(TEXTO, SW)
    Dim CENTENA
    Dim DECENA
    Dim UNIDAD
    Dim TXTCENTENA
    Dim TXTDECENA
    Dim TXTUNIDAD
    CENTENA = Mid(TEXTO, 1, 1)
    DECENA = Mid(TEXTO, 2, 1)
    UNIDAD = Mid(TEXTO, 3, 1)

    Select Case CENTENA
    Case “1″
    TXTCENTENA = “CIEN”
    If DECENA & UNIDAD “00″ Then
    TXTCENTENA = “CIENTO ”
    End If
    Case “2″
    TXTCENTENA = “DOSCIENTOS ”
    Case “3″
    TXTCENTENA = “TRESCIENTOS ”
    Case “4″
    TXTCENTENA = “CUATROCIENTOS ”
    Case “5″
    TXTCENTENA = “QUINIENTOS ”
    Case “6″
    TXTCENTENA = “SEISCIENTOS ”
    Case “7″
    TXTCENTENA = “SETECIENTOS ”
    Case “8″
    TXTCENTENA = “OCHOCIENTOS ”
    Case “9″
    TXTCENTENA = “NOVECIENTOS ”
    End Select

    Select Case DECENA
    Case “1″
    TXTDECENA = “DIEZ”
    Select Case UNIDAD
    Case “1″
    TXTDECENA = “ONCE”
    Case “2″
    TXTDECENA = “DOCE”
    Case “3″
    TXTDECENA = “TRECE”
    Case “4″
    TXTDECENA = “CATORCE”
    Case “5″
    TXTDECENA = “QUINCE”
    Case “6″
    TXTDECENA = “DIECISEIS”
    Case “7″
    TXTDECENA = “DIECISIETE”
    Case “8″
    TXTDECENA = “DIECIOCHO”
    Case “9″
    TXTDECENA = “DIECINUEVE”
    End Select
    Case “2″
    TXTDECENA = “VEINTE”
    If UNIDAD “0″ Then
    TXTDECENA = “VEINTI”
    End If
    Case “3″
    TXTDECENA = “TREINTA”
    If UNIDAD “0″ Then
    TXTDECENA = “TREINTA Y ”
    End If
    Case “4″
    TXTDECENA = “CUARENTA”
    If UNIDAD “0″ Then
    TXTDECENA = “CUARENTA Y ”
    End If
    Case “5″
    TXTDECENA = “CINCUENTA”
    If UNIDAD “0″ Then
    TXTDECENA = “CINCUENTA Y ”
    End If
    Case “6″
    TXTDECENA = “SESENTA”
    If UNIDAD “0″ Then
    TXTDECENA = “SESENTA Y ”
    End If
    Case “7″
    TXTDECENA = “SETENTA”
    If UNIDAD “0″ Then
    TXTDECENA = “SETENTA Y ”
    End If
    Case “8″
    TXTDECENA = “OCHENTA”
    If UNIDAD “0″ Then
    TXTDECENA = “OCHENTA Y ”
    End If
    Case “9″
    TXTDECENA = “NOVENTA”
    If UNIDAD “0″ Then
    TXTDECENA = “NOVENTA Y ”
    End If
    End Select

    If DECENA “1″ Then
    Select Case UNIDAD
    Case “1″
    TXTUNIDAD = “UN”
    Case “2″
    TXTUNIDAD = “DOS”
    Case “3″
    TXTUNIDAD = “TRES”
    Case “4″
    TXTUNIDAD = “CUATRO”
    Case “5″
    TXTUNIDAD = “CINCO”
    Case “6″
    TXTUNIDAD = “SEIS”
    Case “7″
    TXTUNIDAD = “SIETE”
    Case “8″
    TXTUNIDAD = “OCHO”
    Case “9″
    TXTUNIDAD = “NUEVE”
    End Select
    End If
    CONVIERTECIFRA = TXTCENTENA & TXTDECENA & TXTUNIDAD
    End Function

    • Alejandra Martínez dice:

      ESTA INCREÍBLE Y TE AGRADEZCO MUCHO QUE NOS LO COMPARTAS, PERO SI YO TAMBIEN QUISIERA SABER COMO LE HAGO PARA PONERLO EN DLLS ?! OJALA ME PPUEDAS AYUDAR, SALUDOS

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>