Fórmula Números a letras

Alguna vez tuviste la necesidad de expresar montos en nuestra unidad monetaria para presentar informes o quizás al momento de hacer una factura, como bien sabemos Excel no puede cubrir nuestras necesidades al 100%, para ello existe programadores que nos facilitan la vida, Armando Montes programador vba en excel personalizo la con la finalidad de expresar números en letras y a la vez estas acompañadas de la denominación de “Nuevos ”.

Actualizado: Ahora puedes editar la función para trabajar con la moneda de tu país.

Instrucciones a seguir:

1.- Descargar el siguiente Archivo Función_Num_Letras.xla de preferencia en el escritorio.

2.- Ir al explorador de window, o también puede presionar la tecla windows + E, ir a Herramientas -> Opciones de Carpeta -> ver ->”Mostrar todos los archivos y carpetas ocultos”, click en aplicar y luego en aceptar.

3.- Ir a C:\Documents and Settings\Administrador\Datos de programa\Microsoft\Complementos o en algunas versiones dice “AddIns”.

4.- Copiamos el archivo descargado y lo pegamos aquí dentro de la carpeta “complementos” o en tal caso “AddIns”.

5.- Excel 2007, abra un nuevo archivo, luego vaya al “Botón de Office”, posteriormente a “Opciones de Excel” –> Complementos –>Complemento de Excel “ir”

6.-En la ventana que aparecerá Seleccionen Num_Letras asi como se muestra en la siguiente imagen:

1

7.- Excel 2003, abra un nuevo archivo, luego vaya “Herramientas”  –> Complementos, haga lo mismo que el paso 6.

8.- Y eso es todo, la función esta instalada ahora estará y permanecerá siempre en tu Excel, para usar la función basta con ir a:

54

Tambien desde Excel basta con teclear =num_letras()

Acontinuación te muestro como Editar La funcion para usarla con la moneda o denominacion de tu país. (Clic sobre el video para visualizarlo en pantalla completa)

112212

Video: 

 

Autor: Gustavo A.  Sebastiani Cépeda

  • ivan

    HE INSERTADO ESTA FUNCION NUM_LETRAS pero necesito que
    denominación de “Nuevos Soles” se cambie por quetzales.

    Me podrian ayudar?,gracias

    Ivan Diaz

  • Gabriel

    ya puse el programa en mi hoja Excel y me funciona de maravilla, de verdad Fernando me has ayudado mucho, pero te queria preguntar algo??, yo facturo en monto de soles y dolares, no seria posible añadir algo a tu porgrama para que fuera optativo, es decir solo cambiar la ultima frase de “Nuevo soles a “Dolares Americanos” y viceversa.

    gracias de antemano por tu valiosa ayuda.

    si me podrias contestar a mi correo gabrieldasilva188@msn.com

    Gabriel.

  • yony

    He insertado el programa en la hoja excel y funciona de maravilla, Gracias

  • Maribel

    Tu programa es excelente ,muchas gracias por tu ayuda,solo quisiera hacerte la misma consulta de gabriel y si se puede escribir en MAYUSCULAS.te agradeceria si me respondieras a mi correo.
    Maribel.

  • Linder Díaz M

    Quedo exelente solo una pregunta yo hago facturas en soles y en dolares americanos, quisiera saber como hacer para que diga dolares americanos, e antemano muchas gracias

  • Maricarmen Ramos

    preparo facturas en dólares y nuevos soles como puedo hacer para que diga dolares americanos

    Gracias

  • Maricarmen Ramos

    Espero su pronta respuesta

  • http://www.perucontable.com/excelcontable Sebastiani

    Ya fue actualizado el post, ahora podras usar la moneda que desees.
    saludos

  • http://www.perucontable.com/excelcontable Sebastiani

    Ahora la formula lo actualize, descargala nuevamente y mira el video.
    Saludos

  • Armando

    Buen dia Fernando

    Tengo vista y la ruta que me das en el paso 3
    3.-Ir a C:Documents and SettingsAdministradorDatos de programaMicrosoftComplementos o en algunas versiones dice “AddIns”.

    no la tengo como tal, puedes indicarme donde pegar el archivo k descarge o desirme k opciones tengo
    Gracias

    Armando Rdz. Chavez
    Monterrey, N.L.

  • Jaime

    Saludos muy util e interesante su herramienta pero tiene un error en los valores de centenas de mil por ejemplo 126.345,00 lo devuelve como Ciento mil Veinte y Seis Mil Trescientos Cincuenta y Cuatro y 00/100 Dolares Americanos

  • Jaime

    quisiera saber si se le puede modificar este error…o explicar como corregirlo

  • marco tulio rojas cavero

    hola Armando, aprecio tu valioso aporte y desde ahora este sera mi blog ya que el excel es mi programa favorito y se complementa con mi otra pasion: la contabilidad. hace un mes atras diseñe un programa de planillas para el regimen de construccion bajo el soporte de macros, lo diseñe pensando en los requerimientos del area de rr.hh de la empresa en donde trabajo, como entenderas para calcular esta planilla se debe tener en cuenta las categorias y las diversas bonificaciones que tiene los trabajadores bajo este regimen. me gustaria compartirlo en el blog, pero antes me gustaria que le des una revisada y le puedas aportar otras cosas, ya que si bien es cierto cubrio las expectativas de mi empresa, sigo creyendo que aun le faltan detalles que no puedo implementar xq aun no domino muy bien las macros-
    saludos cordiales-

    marco

  • césar

    hola Armando, tengo problemas para números de 7 dígitos, no los escribe.

    gracias por el programa.

  • serioman

    hola amigos:
    si el error que lanza de “mil” se puede corregir.
    estando en excel presionen alt +f11, luego busquen la palabra “mil” en la linea 119 (miren en la barra de herramientas Lin, 119 Col,17 (bueno la columna no es necesaria)

    y luego reemplacen esa linea por esta

    letras = letras & ” ” ‘ mil ”

    parece inofensivo pero la comilla despues de los parentesis convierte al resto a la derecha en comentario y por lo tanto inofensivo es decir lo desabilitan

    si no les gusto solo abran y encierren el mil en con comillas como estaba antes y todo vuelve a la normalidad

  • serioman

    me olvidaba sorry antes de salir pulsen grabar

    sorry otra vez, al creador de esta macros mil disculpas por meterle mano.
    Esta en tus manos el crear nuevos programas y corregirlos, pero nosotros te ayudaremos a mejorarlo usandolo.

    gracias por este aporte. gracias mil

  • Gianfree

    Hola te felicito por tu aporte, la verdad es bueno pero como sabras cualquier programa antes de lanzarlo a su conocimiento al publico debe ser bien revisado, ya q este es uno de los mayores problemas en todas las empresas q manejan programas, no se porque pero siempre sus software estan diseñados a medias, te recomiendo revises adicionalmente a los que ya algunos colegas han mencionado ciertas inconsistencias el porque no salen los 200,000; 300,000; etc… seria bueno le des una chequeada derrepente encuentras algo mas y mejoras tu aporte… gracias y suerte!!

  • Flor

    Hola: sabes he descargado el programa pero no lo puedo usar que me faltara sale como: #¡VALOR! segui todos los pasos. dame una ayuda te agradezco Saludos , Flor

  • edgar jose

    nbuenao de excel para contruir un certificacion de un colegio

  • Pingback: de número a letras con moneda de tu país | Compartiendo informarción, música, relatos, portables, etc. descargas directas

  • Mario

    Muchas gracias, esta macro me ha aliviado bastante el trabajo de generar recibos. Es lo que estaba buscando.

    Para aquellos que les sale #¡VALOR!, deben de ingresar el numero 1 o 2 como opción, el número “1″ le pone las letras del tipo de moneda al final y el número 2 le quita.

    Saludos.

  • GILMER ORTIZ IDROGO

    hola amigos programadores les queria felicitar por su trabajo esta super¿ lo que era mi inquietu es de como yo lo puedo descar para poder probarlo para poder comprarlo

  • http://www.perucontable.com/excelcontable Sebastiani

    no se vende amigo, es gratis, al comenzar la web esta la descarga.

  • DANIEL

    TE AGRADEZCO ESTE GRAN PORTE, SIN EMBARGO, QUISIERA SABER SI SE PUEDE MODIFICAR EL RANGO DE CANTIDADES EN VEINTE COMO POR EJEMPLO VEINTIUNO VEITIDOS Y NO VENITE Y DOS QUE EN REALIDAD NO ES ACEPTADO POR LA REAL ACADEMIA DE LA LENGUA COMO VALIDO

  • Danny Villar

    Buenas Compañero, excelente toda tu explicacion y trabajo, pero debo estar aciendo algo mal ya que cuando escribo la cifra 100,50 me devuelve en letras CIEN CON 50/100 CENTIMOS, hasta aca todo va bien , el problema se presenta cuando pongo 100,00 y me devuelve CIEN sin aparecer “con xx/100 CENTIMOS” que hay que cambiar para que eso aparezca ya que es impresindible para la elaboracion de Cheques.

    mil gracias por todo tu apoyo

    Saludos Cordiales
    Danny Villar
    Caracas – Venezuela

  • harvey

    gracias estuvo super bien, oye una pregunta la verdad yo he batallado en hacer en excel un formato para imprimir en los cheques de los diferentes bancos de aqui de mexico. sera que no me podrias ayudar con eso

  • luz

    Excelente todo tu trabajo gracias es justo lo que nesesitaba ahora me ahorro el trabajo de estar escribiendo numeros en letras

    y mucha suerte en tus proximos programas

  • jakelin

    hola, antes que nada te felicito es muy bueno tu trabajo pero hay alguna formas de sustituir al final el: ” Y 00/100″ por: “con 00/100″

  • http://www.perucontable.com/excelcontable Sebastiani

    claro, busca en la parte del codigo y cambialo por lo q necesitas

  • carla

    k pasa si en la factura se coloca 100/00

  • roberto

    buenas tardes muchsa gracias por la info solo tengo una duda si me pueden ayudar al final de letras por ejemplo un mil docientos con 25/100
    que antes del con puede poner quetzales como procederia para que dijera asi un docientos queztales con 25/100
    en espera de su valiosa ayuda muchas gracias
    y muy bueno este programita para convertir numeros a letras

  • karen

    Lo he probado y me parece genial tu aporte, la verdad que al comienzo me aparecia valor… pero leyendo los comentarios me salio :)… bueno he intendado ver el video .. pero no lo descarga en mi maquina… pero con la opciòn 2 que nos distes nos ayuda bastante ya que si al numero que hemos escrito le concatenamos la moneda que querramos o a elección en un area fuera de impresión nos devuelve ccualquier moneda..ejemplo:
    =num_letras(B32;2)&E32… en podemos tenerlo escrito(Dolares Americanos, soles lo que querramos y lo adiciona a la factura a nuestra eleccion, señalando la celda.

    Muchas gracias Gracias Sebastiani, la verdad que talvez ya lo sepan pero por ahi a alguien le pueda servir…..

  • TONY MONTANA

    Tu programa es excelente ,muchas gracias por tu ayuda,solo quisiera hacerte la misma consulta de gabriel y si se puede escribir en MAYUSCULAS.te agradeceria si me respondieras a mi correo.

  • ronald

    muy interesante, si solo necesito que digite el numero independiente de la moneda. gracias por el aporte

  • Carlos Joaquin

    Hola, gracias por tu aporte. Pero no veo en los comentarios como solucionar el problema de que no esta poniendo bien las cifras de 200,000, 300,000, 400,000 le falta colocar los miles.

  • VICTOR

    hola sebastian no me funciona será porque cuento con el excel 2010?? te comento que no encontre el archivo complementos mas bien “ADDins” y es aquí en donde coloqué el archivo descargaDO.

    la formula “Num_letras” me aparece como funcion pero cuando fijo la celda que quiero que se convierta me sale siempre el error muy conocido denominado:
    VALOR

  • EL_TIGRE

    Tengo problema con el complemento, ya que al ejecutar la funciòn se ejecuta bien, pero al ser modificado la celda donde se encuentra el nùmero se bloquea todo el libro de excel perdiendo toda la informaciòn realizada, serà que solo se puede ejecutar una sola vez, ademas no me permite ser ejecutado en distintos archivos de excel.
    En espera de comentarios.

  • Alejandro

    Hola, primera agradecerte por los aportes, pero tengo un problema, voy a complementos, luego a ir, pero no aparece la función Num_letras, me puedes ayudar en este caso, muchas gracias de antemano

  • Rafael

    Por favor, le agradezco respuesta. Instale la funcion y me da un error. Por Que sera eso? Dice #VALOR

  • Roberto

    Muchas gracias Sebastián, Genial aporte. Le he heccho algunas modificaciones, siguiendo tus instrucciones incluí el Euro, más abajo eliminé el “un” de “Mil” y puse en mayúscula “Ciento”, ha sido un buen ejercicio. Ahora estoy tratando de incluir “dieciseís…dicinueve” y “veintiuno…veintinueve”, pero me parece que requiero algo de ayuda.

    Gracias nuevamente

  • Francisco García Trujillo

    Como no puedo adjuntar el archivo, anexo el código modificado que corrige la mayoría de los errores citados anteriormente.
    La forma de uso cambia ahora a:
    =num_letras( cantidad en numero , moneda [si se usa en este punto], conjuncion [si se usa], moneda [si se usa en este otro punto] ). ejemplo:

    =num_letras( cantidad en numero , “Pesos”, “”, “M.N.” )
    =num_letras( cantidad en numero , “”, “y”, “nuevos soles” )

    Éste es el nuevo código:
    ‘Autor de la modificacion: Gustavo A. Sebastiani Cépeda
    ‘ Trujillo – Peru
    Excelparacontadores@hotmail.com http://www.perucontable.com/excelcontable/formula-numeros-a-letras/
    ‘Depurado por Francisco García Trujillo – Morelia – México – Octubre 2011
    ‘errores conocidos aún pendientes:
    ‘cien millones (de) pesos
    ‘treinta y uno pesos
    ‘no admite decenas de miles de millones (más de 7 dígitos)
    ‘Uso para Perú: =num_letras( cantidad en numero )
    ‘Uso para México: =num_letras( cantidad en numero , “Pesos”, “”, “M.N.” )
    Function Num_Letras(Numero As Double, Optional Prefijo As String = “”, Optional Conjuncion As String = “y”, Optional Postfijo As String = “nuevos soles”) As String
    Dim Letras As String
    Dim Decimales As Double
    Decimales = Numero – Int(Numero)
    Numero = Int(Numero)

    If Prefijo > “” Then
    Prefijo = Prefijo & ” ”
    End If

    If Conjuncion > “” Then
    Conjuncion = Conjuncion & ” ”
    End If

    If Postfijo > “” Then
    Postfijo = ” ” & Postfijo
    End If

    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(16) = “Dieciseis”
    Numeros(17) = “Diecisiete”
    Numeros(18) = “Dieciocho”
    Numeros(19) = “Diecinueve”
    Numeros(20) = “Veinte”
    Numeros(21) = “Veintiuno”
    Numeros(22) = “Veintidos”
    Numeros(23) = “Veintitres”
    Numeros(24) = “Veinticuatro”
    Numeros(25) = “Veinticinco”
    Numeros(26) = “Veintiseis”
    Numeros(27) = “Veintisiete”
    Numeros(28) = “Veintiocho”
    Numeros(29) = “Veintinueve”
    Numeros(30) = “Treinta”
    Numeros(40) = “Cuarenta”
    Numeros(50) = “Cincuenta”
    Numeros(60) = “Sesenta”
    Numeros(70) = “Setenta”
    Numeros(80) = “Ochenta”
    Numeros(90) = “Noventa”
    Do
    ‘*—> Millares de Millón
    If (Numero = 1000000000) Then
    If Int(Numero / 1000000000) = 1 Then
    Letras = Letras & ” Un mil millones ”
    Else
    Letras = Letras & Numeros(Int(Numero / 1000000000))
    Letras = Letras & ” mil millones ”
    End If
    Numero = Numero – (Int(Numero / 1000000000) * 1000000000)
    End If
    ‘*—> Centenas de Millón
    If (Numero = 100000000) Then
    If (Int(Numero / 100000000) = 1) And ((Numero – (Int(Numero / 100000000) * 100000000)) “”, ” de “, “”)
    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 millón ”
    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 mil ”
    Else
    Letras = Letras & ” mil ”
    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 & Prefijo & Conjuncion
    Letras = Letras & Format(Decimales * 100, “00″) & “/100″ & Postfijo
    Num_Letras = Letras
    Else

    Num_Letras = Letras & Prefijo & Conjuncion & “00/100″ & Postfijo

    End If

    End Function

  • Jean

    amigo excelente aporte, me has facilitado mucho el trabajo, pero tengo un problemita o un detallito, modifique la linea 119 como dices quitando la palabra MIL, el problema es cuando hay una cifra por ejemplo 200.200 dice docientos docientos y lo mismo pasa cuando esta en 300.000, 400.000 etc.

  • Claudio Fritz

    Hola

    Buenísimo tu programa, había buscado algo así desde hace mucho tiempo , tu tutorial muy claro y practico me resulto a la primera

    Saludos desde Chile
    PD, cambie el peso Chileno y saque el 000/100 del final

  • Antonio

    Excelente herramienta, te agradezco por tu apoyo con la implementación del complemento, muy al detalle te felicito y agradezco.