Números a Letras con Decimales
Como están Expertos con otra duda, tengo un numero ej: 1234567,89 y quiero que se convierta con una macro en: UN MILLÓN DOCIENTOS TREINTA Y CUATRO MIL QUINIENTOS SESENTA Y SIETE DOLARES DE LOS ESTADOS UNIDOS DE AMERICA CON OCHENTA Y NUEVE CENTAVOS.
Consultando en el internet conseguí un código y cambia el número a letras, pero no los centavos como puedo hacer para que los centavos también sean letras.
Por favor ayuda, por el limite de caracteres envió una parte del código, pero si es necesario puedo enviar el código completo algún correo, de antemano gracias
'*---> Centenas
If (numero < 1000) And (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 < 100) And (numero > 9) Then
If numero < 16 Then
Letras = Letras & Numeros(Int(numero))
numero = numero - Int(numero)
Else
Letras = Letras & Numeros(Int((numero / 10)) * 10)
numero = numero - (Int((numero / 10)) * 10)
If numero > 0.99 Then
Letras = Letras & " Y "
End If
End If
End If
'*---> Unidades
If (numero < 10) And (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 & " DOLARES DE LOS ESTADOS UNIDOS DE AMERICA CON "
Letras = Letras & Format(Decimales * 100, "00") & "/100 CENTAVOS"
End If
numletras = Letras
End Function
Consultando en el internet conseguí un código y cambia el número a letras, pero no los centavos como puedo hacer para que los centavos también sean letras.
Por favor ayuda, por el limite de caracteres envió una parte del código, pero si es necesario puedo enviar el código completo algún correo, de antemano gracias
'*---> Centenas
If (numero < 1000) And (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 < 100) And (numero > 9) Then
If numero < 16 Then
Letras = Letras & Numeros(Int(numero))
numero = numero - Int(numero)
Else
Letras = Letras & Numeros(Int((numero / 10)) * 10)
numero = numero - (Int((numero / 10)) * 10)
If numero > 0.99 Then
Letras = Letras & " Y "
End If
End If
End If
'*---> Unidades
If (numero < 10) And (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 & " DOLARES DE LOS ESTADOS UNIDOS DE AMERICA CON "
Letras = Letras & Format(Decimales * 100, "00") & "/100 CENTAVOS"
End If
numletras = Letras
End Function
1 Respuesta
Respuesta de d2enri
-1