Bueno instale la macro y funciona de maravilla ademas que las instrucciones son muy fáciles de seguir. COmo le puedo agregar para que el número en letras termine con la palabra "pesos". Gracias
Leyendo tu ficha no encontré que hayas hecho consulta antes, por lo que desconozco cuál sea tu rutina. Hay muchas por la web que transforman nros a letras. La que tengo te permite agregar la moneda como un argumento más, por ej: Function Nros_Letras (ByVal Nro as Double, Moneda as String) Pero si ese no es tu caso deberás agregar aquí tu rutina para que te podamos ayudar a modificarla.
Function Letras(x) Nu = Array("cero", "uno", "dos", "tres", "cuatro", "cinco", _ "seis", "siete", "ocho", "nueve", "diez", "once", "doce", _ "trece", "catorce", "quince", "dieciseis", "diecisiete", _ "dieciocho", "diecinueve", "veinte", "veintiuno", "veintidos", _ "veintitres", "veinticuatro", "veinticinco", "veintiseis", _ "veintisiete", "veintiocho", "veintinueve") Nd = Array("", "", "", "treinta", "cuarenta", "cincuenta", _ "sesenta", "setenta", "ochenta", "noventa") Nc = Array("", "ciento", "doscientos", "trescientos", "cuatrocientos", _ "quinientos", "seiscientos", "setecientos", "ochocientos", "novecientos") U = x Mod 10 d = Int(x / 10) Mod 10 c = Int(x / 100) If d > 2 Then Letras = Nd(d) + " y " + Nu(U) Else U = d * 10 + U Letras = Nu(U) End If If U = 0 Then Letras = Nd(d) If c > 0 Then Letras = Nc(c) + " " + Letras If x = 100 Then Letras = "cien" End Function Function Enletras(x) centavos = Int(x * 100) Mod 100 x = Int(x) grupo1 = x Mod 1000 grupo2 = Int(x / 1000) Mod 1000 grupo3 = Int(x / 1000000) n = Letras(grupo3) If Right(n, 3) = "uno" Then Enletras = Left(n, Len(n) - 1) + " millones " Else If grupo3 > 0 Then Enletras = n + " millones " End If If grupo3 = 1 Then Enletras = "un millón " n = Letras(grupo2) If Right(n, 3) = "uno" Then Enletras = Enletras + Left(n, Len(n) - 1) + " mil " Else If grupo2 > 0 Then Enletras = Enletras + n + " mil " End If If grupo1 > 0 Then Enletras = Enletras + Letras(grupo1) If centavos > 0 Then Enletras = Enletras + " con " + Str(centavos) + "/00" End Function
La última línea (de la última rutina) tenés que reemplazar por estas otras: If centavos > 0 Then Enletras = Enletras + " con " + Str(centavos) + "/00" & " pesos" Else Enletras = Enletras + " pesos" End If End Function Pruébala ingresando valores con y sin centavos para que veas el resultado.
Elsa Matilde. Mil gracias por tu oportuna y eficaz colaboración. La modificación funcionó perfecta. Un abrazo desde Colombia. Carlos Marín.