Wikipedia

Resultados de la búsqueda

jueves, 17 de mayo de 2012


Function num_letras(Numero As Double) As String

Dim Letras As String

Dim HuboCentavos As Boolean

Dim Decimales As Double

Decimales = Numero - Int(Numero)

Numero = Int(Numero)

Dim Numeros(90) As String

Numeros(0) = "cero"

Numeros(1) = "uno"

Numeros(2) = "dos"

Numeros(3) = "tres"

Numeros(4) = "cuatro"

Numeros(5) = "cinco"

Numeros(6) = "seis"

Numeros(7) = "siete"

Numeros(8) = "ocho"

Numeros(9) = "nueve"

Numeros(10) = "diez"

Numeros(11) = "once"

Numeros(12) = "doce"

Numeros(13) = "trece"

Numeros(14) = "catorce"

Numeros(15) = "quince"

Numeros(20) = "veinte"

Numeros(30) = "treinta"

Numeros(40) = "cuarenta"

Numeros(50) = "cincuenta"

Numeros(60) = "sesenta"

Numeros(70) = "setenta"

Numeros(80) = "ochenta"

Numeros(90) = "noventa"

Do

'*---> Centenas de Millón

If (Numero < 1000000000) And (Numero >= 100000000) Then

If (Int(Numero / 100000000) = 1) And ((Numero - (Int(Numero / 100000000) * 100000000)) < 1000000) Then

Letras = Letras & "cien millones "

Else

Select Case Int(Numero / 100000000)

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 / 100000000))

End Select

If (Int(Numero / 100000000) <> 1) And (Int(Numero / 100000000) <> 5) And (Int(Numero / 100000000) <> 7) And (Int(Numero / 100000000) <> 9) Then

Letras = Letras & "cientos "

Else

Letras = Letras & " "

End If

End If

Numero = Numero - (Int(Numero / 100000000) * 100000000)

End If

'*---> Decenas de Millón

If (Numero < 100000000) And (Numero >= 10000000) Then

If Int(Numero / 1000000) < 16 Then

Letras = Letras & Numeros(Int(Numero / 1000000))

Letras = Letras & " millones "

Numero = Numero - (Int(Numero / 1000000) * 1000000)

Else

Letras = Letras & Numeros(Int(Numero / 10000000) * 10)

Numero = Numero - (Int(Numero / 10000000) * 10000000)

If Numero > 1000000 Then

Letras = Letras & " y "

End If

End If

End If

'*---> Unidades de Millón

If (Numero < 10000000) And (Numero >= 1000000) Then

If Int(Numero / 1000000) = 1 Then

Letras = Letras & " un millón "

Else

Letras = Letras & Numeros(Int(Numero / 1000000))

Letras = Letras & " millones "

End If

Numero = Numero - (Int(Numero / 1000000) * 1000000)

End If

'*---> Centenas de Millar

If (Numero < 1000000) And (Numero >= 100000) Then

If (Int(Numero / 100000) = 1) And ((Numero - (Int(Numero / 100000) * 100000)) < 1000) Then

Letras = Letras & "cien mil "

Else

Select Case Int(Numero / 100000)

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 / 100000))

End Select

If (Int(Numero / 100000) <> 1) And (Int(Numero / 100000) <> 5) And (Int(Numero / 100000) <> 7) And (Int(Numero / 100000) <> 9) Then

Letras = Letras & "cientos "

Else

Letras = Letras & " "

End If

End If

Numero = Numero - (Int(Numero / 100000) * 100000)

End If

'*---> Decenas de Millar

If (Numero < 100000) And (Numero >= 10000) Then

If Int(Numero / 1000) < 16 Then

Letras = Letras & Numeros(Int(Numero / 1000))

Letras = Letras & " mil "

Numero = Numero - (Int(Numero / 1000) * 1000)

Else

Letras = Letras & Numeros(Int(Numero / 10000) * 10)

Numero = Numero - (Int((Numero / 10000)) * 10000)

If Numero > 1000 Then

Letras = Letras & " y "

Else

Letras = Letras & " mil "

End If

End If

End If

'*---> Unidades de Millar

If (Numero < 10000) And (Numero >= 1000) Then

If Int(Numero / 1000) = 1 Then

Letras = Letras & "un"

Else

Letras = Letras & Numeros(Int(Numero / 1000))

End If

Letras = Letras & " mil "

Numero = Numero - (Int(Numero / 1000) * 1000)

End If

'*---> 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 & " con "

Letras = Letras & Format(Decimales * 100, "00") & "/100 centavos"

End If

num_letras = Letras

End Function

No hay comentarios: