Convertir Numero a Letras
Enviado por JuanittaB • 5 de Septiembre de 2017 • Trabajo • 947 Palabras (4 Páginas) • 211 Visitas
'FUNCION ALETRAS
Function ALETRAS(Numero As Double, Optional DecimalEnLetra As Boolean) As String
'Declaracion de variables
Dim Moneda As String
Dim Monedas As String
Dim Centavo As String
Dim Centavos As String
Dim Con As String
Dim NumCentavos As Double
Dim Letra As String
Const Maximo = 1999999999.99
' Parámetros
Moneda = "Peso"
Monedas = "Pesos"
Decimal1 = "Centavo"
Decimales = "Centavos"
Con = "Con"
'Si el numero esta dentro de 0 y 1999999999.99 (Maximo) entonces
'convertir el numero a letras
If (Numero >= 0) And (Numero <= Maximo) Then
Letra = LETRAS((Fix(Numero)))
'Si solo es un numero entonces
'agregar la moneda en singular
If (Numero = 1) Then
Letra = Letra & " " & Moneda
'De lo contrario agregar la moneda en plural
Else
Letra = Letra & " " & Monedas
End If
NumCentavos = Round((Numero - Fix(Numero)) * 100) 'Pasar a decimales (al numero le resta el numero entero y lo multiplica por 100)
'Si los centvos son mayores a cero entonces
If NumCentavos >= 0 Then
'Si el parámetro DecimalEnLetra es VERDADERO
If DecimalEnLetra Then
'Convertir los centavos en letra
Letra = Letra & " " & Con & " " & LETRAS(Fix(NumCentavos))
'Si el centavo es uno agregar leyenda Centavo (Singular)
If (NumCentavos = 1) Then
Letra = Letra & " " & Decimal1
'De lo contrario agregar la leyenda Centavos (Plural)
Else
Letra = Letra & " " & Decimales
End If
'De lo contrario mostrar los centecimos como número
Else
'Si los centavos son menores a 10 entonces
If NumCentavos < 10 Then
Letra = Letra & " " & Con & " " & " 0" & NumCentavos & "/100"
Else
'De lo contrario
Letra = Letra & " " & Con & " " & NumCentavos & "/100"
End If
End If
End If
'Regresar el resultado final de la conversión
ALETRAS = Letra
Else
'Si el Numero no está dentro de los límites mostrar un mensaje de error
ALETRAS = "ERROR: el importe esta fuera del límite."
...