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
Pais | Código | Ejemplo |
México | MX | QUINIENTOS SESENTA Y NUEVE PESOS 15/100 M.N. |
Ecuador | EC | CIENTO VEINTITRES DÓLARES con CUARENTA Y CINCO CENTAVOS DE DÓLAR |
España | ES | CUATROCIENTOS EUROS con SESENTA CÉNTIMOS |
QUIERO AYUDA URGENTE….DEVERAS
Excelente función, pero podrías decirme como hacer para que la conversión salga entre parentesis como se usa en México…Saludos.
Puedes usar la funcion concatenar que sería algo así =CONCATENAR(“(“,NUMLETRAPAIS(A1,”MX”),”)”)
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?
Cómo sería para Colombia
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