Cómo convertir números a letras en Excel

Excel cuenta con VBA ( Aplicaciones en Visual Basic ) lo que ayuda a programar rutinas o tareas repetitivas, entre muchas cosas más. Por ahora los dejo con un videotutorial que surgió por la consulta puntual de uno de nuestros seguidores. Espero les sea de utilidad.

Para que les quede guardada la macro y la puedan usar siempre, en este video explico cómo hacerlohttp://www.expertoenexcel.com/convertir-mayusculas-a-minusculas-en-excel-y-viceversa

Acá les agrego el código de VBA para que lo implementen*

* Este código es cortesía del Blog de Gonzalo_Conta

Comments

  1. muy importantes las clases tutoriales por que asi uno aprende rapido el manejo de excel como trabajar en excel-2 gracias

    • Hola Didier… Me alegra mucho que te sirva el material que publicamos. La intención es que las personas aprendan fácil y sin presiones. Muchas gracias por tus comentarios.

      Saludos!!

  2. Muy Practico gracias por compartir

    • Hola Romel, bienvenido a ExpertoenExcel.Com, espero que aprendas mucho con nosotros. Cualquier duda que tengas, pregunta con tranquilidad, siempre habrá disposición para ayudar. Gracias por tus comentarios.

      Saludos!!

  3. Muchisismas Gracias por tu aportación!!!!!!!!!

    • Hola Ricardo. De nada amigo, lo hago con mucho gusto. Me alegra que te haya servido la información. Cualquier duda que tengas por favor me lo haces saber. Gracias por tus comentarios.

      Saludos!!

  4. Una pregunta, cada vez que se abra el libro de trabajo, se tiene que estar importando el modulo?, o existe la manera de hacerlo automaticamente?

    • Hola Luis: El módulo queda guardado en tu libro de trabajo. Cada que lo abras está listo. Si tienes alguna duda adicional me cuentas para colaborarte. Gracias por participar.

      Saludos!

  5. Estimado Juan Camilo, quiero dar mis felicitaciones por sus aportes, pero tengo un problema, yo trabajo con notas o calificaciones en una escala de 1 a 7 con un decimal, ejemplo un alumno puede obtener un 6,5 pero este valor lo quiero en palabras que deberia decir “seis coma cinco”, mi pregunta ¿como puedo modificar el codigo o macro para que me funfione de esta forma, solo he logrado que me diga “seis coma 50″, le agradeceria mucho si puede ayudarme, saludos

    yo necesito esto: 6,5 “seis coma cinco”
    he logrado esto : 6,5 “seis coma 50″

    que me falta???

    • Hola Ruben. Podrías enviarme un ejemplo del archivo que estás utilizando. Viéndolo podría asesorarte mejor, debido a que puede haber múltiples opciones y la idea es dar con la que te sirva a ti. Gracias por tus comentarios acerca de este espacio.

      Espero tu respuesta.

      Saludos!

  6. Jorge Barría says:

    Estimado Juan Camilo, quiero dar mis felicitaciones por sus aportes, pero tengo un problema, yo trabajo con notas o calificaciones en una escala de 1 a 7 con un decimal, ejemplo un alumno puede obtener un 6,5 pero este valor lo quiero en palabras que deberia decir “seis coma cinco”, mi pregunta ¿Cuál es la formula adecuada para que que me funcione de esta forma?
    Muy agradecido.
    Ojala puedas ayudarme, saludos

    • Hola Jorge: Esto se debe trabajar con Función Condicional SI. Voy a hacer un tutorial explicando el tema y te lo hago llegar. Gracias por tus comentarios.

      Saludos!

  7. Buenos días, super bueno el video de convertir numeros a letras, pero como puedo guardar esto para que me funcione siempre y no tenga que etar colocando el módulo.

    Muchas gracias y felicitaciones por esta página

  8. Jose Flores says:

    Gracias mi hermano, Por este sitio Dios te Bendiga!! Me sirvio excelente por tu trabajo!!

  9. hola excelente aporte, el detalle es que el código no se graba, si pudieras decirme como hacerlo te lo agradecería…
    gracias anticipadas

  10. Leonardo Olaya says:

    Muy bueno tu aporte, pero tengo un problema cuando paso a miles de millones, estos miles de millones no me los convierte, por ejemplo en 1.234.567.890 me convierte DOSCIENTOS TREINTA Y CUATRO MILLONES QUINIENTOS SESENTA Y SIETE MIL OCHOCIENTOS NOVENTA, no me convierte las cantidades de miles de millones, que debo hacer en este caso, te agradezco cualquier ayuda.

    • Hola Leonardo…

      Esto tiene que ver con el código, sólo está programado para que maneje miles. Lo voy a mirar y le agrego lo que falta para que te sirva en lo que tú necesitas. Apenas lo tenga listo te lo envío. Gracias por tus comentarios.

      Saludos!

  11. muy bueno el codigo lo probe y me sirve para realizar el llenado de cheques y presupuestos pero necesito que me ayuden soy de Venezuela y mi peticion es saber si el codigo se puede modificar ejemplo del codigo: SON: (SEIS MIL SESENTA Y CUATRO PESOS 68/100 C.O.) este es de pesos Colombianos el original pero aqui en Venezuela el llenado de cheque o presupuesto o factura se usa es asi ejemplo2: SON: SEIS MIL SESENTA Y CUATRO CON 68/100 si es posible de modificar se los agradeceria o postear el codigo slds de Venezuela

  12. Gracias Juan Camilo Alvarez por le codigo esta bien funciona no tiene errores pero mi peticion si es que se puede es esta claro no me explique bien o me confundi ejemplo1:SON: (SEIS MIL SESENTA Y CUATRO PESOS 68/100 C.O.) este es el codigo original tal cual como esta no ok ejemplo2:SON: SEIS MIL SESENTA Y CUATRO CON 68/100 asi es como se usa en los presupuestos, facturas, y en el llenado de los cheques en venezuela esta es en si mi peticion si se puede adaptar el codigo que funciona de mil maravillas pero sin las comillas y el con antes de los centimos como el ejemplo2 slds y gracias por esponder rapido

  13. buenas noche Googleando di con otro codigo con lo que yo requiero pero esta escrito de otra manera de antemano espero que sirva para otros como yo que necesitan esa exprecion slds y gracias

    Function num_letras(Numero As Double) As String
    Dim Letras As String
    Dim HuboCentavos As Boolean
    Dim Decimales As Double
    Decimales = Numero – Int(Numero)
    Numero = Int(Numero)
    Dim Numeros(90) As String
    Numeros(0) = “CERO”
    Numeros(1) = “UNO”
    Numeros(2) = “DOS”
    Numeros(3) = “TRES”
    Numeros(4) = “CUATRO”
    Numeros(5) = “CINCO”
    Numeros(6) = “SEIS”
    Numeros(7) = “SIETE”
    Numeros(8) = “OCHO”
    Numeros(9) = “NUEVE”
    Numeros(10) = “DIEZ”
    Numeros(11) = “ONCE”
    Numeros(12) = “DOCE”
    Numeros(13) = “TRECE”
    Numeros(14) = “CATORCE”
    Numeros(15) = “QUINCE”
    Numeros(20) = “VEINTE”
    Numeros(30) = “TREINTA”
    Numeros(40) = “CUARENTA”
    Numeros(50) = “CINQUENTA
    Numeros(60) = “SESENTA”
    Numeros(70) = “SETENTA”
    Numeros(80) = “OCHENTA”
    Numeros(90) = “NOVENTA”
    Do
    ‘*—> Centenas de Millón
    If (Numero = 100000000) Then
    If (Int(Numero / 100000000) = 1) And ((Numero – (Int(Numero / 100000000) * 100000000)) < 1000000) Then
    Letras = Letras & "CIEN MILLONES "
    Else
    Select Case Int(Numero / 100000000)
    Case 1
    Letras = Letras & "CIENTO"
    Case 5
    Letras = Letras & "QUINIENTOS"
    Case 7
    Letras = Letras & "SETECIENTOS"
    Case 9
    Letras = Letras & "NOVECIENTOS"
    Case Else
    Letras = Letras & Numeros(Int(Numero / 100000000))
    End Select
    If (Int(Numero / 100000000) 1) And (Int(Numero / 100000000) 5) And (Int(Numero / 100000000) 7) And (Int(Numero / 100000000) 9) Then
    Letras = Letras & “CIENTOS ”
    Else
    Letras = Letras & ” ”
    End If
    End If
    Numero = Numero – (Int(Numero / 100000000) * 100000000)
    End If
    ‘*—> Decenas de Millón
    If (Numero = 10000000) Then
    If Int(Numero / 1000000) 1000000 Then
    Letras = Letras & ” Y ”
    End If
    End If
    End If
    ‘*—> Unidades de Millón
    If (Numero = 1000000) Then
    If Int(Numero / 1000000) = 1 Then
    Letras = Letras & ” UN MILLON ”
    Else
    Letras = Letras & Numeros(Int(Numero / 1000000))
    Letras = Letras & ” MILLONES ”
    End If
    Numero = Numero – (Int(Numero / 1000000) * 1000000)
    End If
    ‘*—> Centenas de Millar
    If (Numero = 100000) Then
    If (Int(Numero / 100000) = 1) And ((Numero – (Int(Numero / 100000) * 100000)) < 1000) Then
    Letras = Letras & "CIEN MIL "
    Else
    Select Case Int(Numero / 100000)
    Case 1
    Letras = Letras & "CIENTO"
    Case 5
    Letras = Letras & "QUINIENTOS"
    Case 7
    Letras = Letras & "SETECIENTOS"
    Case 9
    Letras = Letras & "NOVECIENTOS"
    Case Else
    Letras = Letras & Numeros(Int(Numero / 100000))
    End Select
    If (Int(Numero / 100000) 1) And (Int(Numero / 100000) 5) And (Int(Numero / 100000) 7) And (Int(Numero / 100000) 9) Then
    Letras = Letras & “CIENTOS ”
    Else
    Letras = Letras & ” ”
    End If
    End If
    Numero = Numero – (Int(Numero / 100000) * 100000)
    End If
    ‘*—> Decenas de Millar
    If (Numero = 10000) Then
    If Int(Numero / 1000) 1000 Then
    Letras = Letras & ” Y”
    Else
    Letras = Letras & ” MIL ”
    End If
    End If
    End If
    ‘*—> Unidades de Millar
    If (Numero = 1000) Then
    If Int(Numero / 1000) = 1 Then
    Letras = Letras & “UN”
    Else
    Letras = Letras & Numeros(Int(Numero / 1000))
    End If
    Letras = Letras & ” MIL ”
    Numero = Numero – (Int(Numero / 1000) * 1000)
    End If
    ‘*—> Centenas
    If (Numero 99) Then
    If (Int(Numero / 100) = 1) And ((Numero – (Int(Numero / 100) * 100)) < 1) Then
    Letras = Letras & "CIEN "
    Else
    Select Case Int(Numero / 100)
    Case 1
    Letras = Letras & "CIENTO"
    Case 5
    Letras = Letras & "QUINIENTOS"
    Case 7
    Letras = Letras & "SETECIENTOS"
    Case 9
    Letras = Letras & "NOVECIENTOS"
    Case Else
    Letras = Letras & Numeros(Int(Numero / 100))
    End Select
    If (Int(Numero / 100) 1) And (Int(Numero / 100) 5) And (Int(Numero / 100) 7) And (Int(Numero / 100) 9) Then
    Letras = Letras & “CIENTOS ”
    Else
    Letras = Letras & ” ”
    End If
    End If
    Numero = Numero – (Int(Numero / 100) * 100)
    End If
    ‘*—> Decenas
    If (Numero 9) Then
    If Numero 0.99 Then
    Letras = Letras & ” Y ”
    End If
    End If
    End If
    ‘*—> Unidades
    If (Numero 0.99) Then
    Letras = Letras & Numeros(Int(Numero))
    Numero = Numero – Int(Numero)
    End If
    Loop Until (Numero = 0)
    ‘*—> Decimales
    If (Decimales > 0) Then
    Letras = Letras & ” CON ”
    Letras = Letras & Format(Decimales * 100, “00”) & “/100 centavos”
    End If
    num_letras = Letras
    End Function

  14. Hola muchas gracias por esta informacion, funciona muy bien, solo ocupo que me ayudes si eres tan amable con un detalle no me sale los numeros despues de la coma, osea 1263,19 el 19/100 me ayudas por favor

    • Hola Iván: Si salen, cuando colocas en la columna número 1263,19 el resultado que te aparece en la columna valor en letras es este: SON: (UN MIL DOSCIENTOS SESENTA Y TRES PESOS 19/100 C.O.) 19/100 se refiere al valor que hay después de la coma debido a que esos son los centavos. Si colocas un valor entero, verás que al final te aparecerá 00/100. Es decir, cero centavos. Cualquier duda adicional con gusto.

      Muchas gracias por tus comentarios.

      Saludos!

  15. Disculpame es que no me supe explicar bien lo que no sale son los 19/100 , me sale 00/100 y el valor que estoy poniendo es de 1263,19 osea la formula me esta omitiendo los 19, muchas gracias

    • Te voy a enviar el archivo del ejemplo para que lo mires. Debido a tu pregunta lo revisé y funciona perfecto. Con el archivo original puedes mirar a ver que estás omitiendo. Descarga el archivo desde aquí: >> http://bit.ly/fUaPcL Como es una macro le debes dar clic en Habilitar contenido.

      Espero te sirva.

      Saludos!

  16. arq. cruz remigio says:

    si me sirvio el codigo de hecho le cambie la moneda “C.O.” a “M.N”; pero al guadar el archivo solo me lo permite guardar como “libro de excel habilitado para macros” tengo el office 2007.

  17. GILBERTO MENDEZ says:

    Muchas gracias, me funciono perfecto tratare de estar en contacto mas adelante

  18. hola juan camilo gracias por ayudarnos con tus video tutoriales me han ayudado mucho

    pedro

  19. Ricardo Padilla Lugo says:

    Excelente código me ayudaste mucho te felicito y te doy las gracias por el apoyo en esta página.

    Desde algún espacio del cyber espacio en México

    Saludos.

    Ricardo Padilla

  20. Muchas gracias, soy Nydia de México, excelente aportación, sigo aprendiendo gracias a gente como tu, TU MUY BIEN¡¡¡¡¡