Excel - Convertir número a letras

 
Vista:

Convertir número a letras

Publicado por Convertir letras a números (1 intervención) el 05/11/2022 21:27:59
Alguien que me ayude encontrando como solucionar el error, resulta que si escribo 7,01 igual me sigue convirtiendo en letras de esta forma "siete coma uno", cuando debería ser "siete coma cero uno"
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 + " coma "
End Function
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Convertir número a letras

Publicado por Antoni Masana (2478 intervenciones) el 07/11/2022 17:00:20
El error esta aqui:

1
centavos = Int(x * 100) Mod 100

en la variable centavos no hay 01, hay 1, primero porque no esta definida y segundo VBA la define como numérica y todos sabemos que los ceros de la izquierda no son representativos en una variable numérica.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar