NumLetras: Función para pasar (convertir) números a letras según tu país

Debido a que la función NumLetras para convertir números a letras ha tenido una gran aceptación por los lectores de este blog y he recibido muchos comentarios y peticiones sobre cómo mostrar las cantidades en letras según los formatos de cada país (por ejemplo México, Ecuador, España, etc.), he decidido crear una nueva versión que se ajuste a cada país.


Si tu país no está en la lista, puedes escribirme un comentario detallando cómo debe ser el formato y el nombre de tu país para agregarlo a la lista. Puedes descargar la macro desde aquí, o si lo prefieres puedes descargarlo como complemento de esta forma está disponible en todas las hojas de Excel que abras.

Como utilizar la función para convertir a letras.

La función se llama NumLetrasPais y recibe dos parámetros, el primero es la cantidad que deseas convertir y el segundo es el código ISO del país (más adelante puedes consultar una lista para el código de tu país)

Este es un ejemplo de como puedes utilizarla:

=NumLetrasPais( A2, "MX" )

En donde A2 es una celda que contiene la cantidad que deseas convertir y MX es el país para el cual deseas realizar la conversión, por el momento esta es la lista de países disponibles, recuerda que puedes colocar un comentario para solicitarme que agregue a tu país

Códigos de paises

PaisCódigoEjemplo
MéxicoMXQUINIENTOS SESENTA Y NUEVE PESOS 15/100 M.N.
EcuadorECCIENTO VEINTITRES DÓLARES con CUARENTA Y CINCO CENTAVOS DE DÓLAR
EspañaESCUATROCIENTOS EUROS con SESENTA CÉNTIMOS

109 comentarios en «NumLetras: Función para pasar (convertir) números a letras según tu país»

  1. ES LA PRIMERA VEZ QUE COMENTO,… ES EXCELENTE ESTA FUNCION, SIN EMBARGO AL QUERER CONVERTIR EL NUMERO “1,000,000.00” (UN MILLON), AL CONVERTIRLO SALE “UN MILLON PESOS 00/100 M.N” EN VEZ DE “UN MILLON DE PESOS 00/100 M.N” … COMO SE PODRIA SOLUCIONAR?

    Responder
  2. para que no salga “UN MIL Pesos” hay que sustituir el siguiente código en la función ValorALetras:

    Case 2
    ValorALetras = lcBloque & IIf(lnBloqueCero = 3, Null, ” MIL”) & ValorALetras

    con

    Case 2
    If Int(Valor) = 1000 Then
    ValorALetras = ” MIL” & ValorALetras
    Else
    ValorALetras = lcBloque & IIf(lnBloqueCero = 3, Null, ” MIL”) & ValorALetras
    End If

    Responder

Deja un comentario