Converts Numbers to words in Spanish
Converts Numbers to words in Spanish
Rate Converts Numbers to words in Spanish
(1(1 Vote))
Public Function Num2String(Qty As String) As String
On Error GoTo flgerr
'Numero a string
Qty = Format(Qty, "####0.00")
Dim temp As String
If InStr(1, Qty, ".") > 0 Then
temp = Right$(Qty, Len(Qty) - InStr(1, Qty, "."))
Qty = Fix(Qty)
End If
Select Case Len(Qty)
Case 1
Num2String = Unidades(Qty, True)
Case 2
Num2String = Decenas(Qty)
Case 3
Num2String = Centenas(Qty)
Case 4
Num2String = UniMiles(Qty)
Case 5
Num2String = DecMiles(Qty)
Case 6
Num2String = CenMiles(Qty)
Case 7
Num2String = UniMillon(Qty)
End Select
If Len(temp) > 0 Then
Num2String = Num2String + Space(1) + temp + "/100"
End If
Exit Function
flgerr:
ErrTrap "miscelaneous", Err.Description, Err.Number
End Function
Private Function Unidades(Qty As String, Optional Un As Boolean) As String
On Error GoTo flgerr
Unidades = Choose(CLng(Qty) + 1, "Cero", IIf(Un, "Un", "Uno"), "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", "Ocho", "Nueve")
Exit Function
flgerr:
ErrTrap "miscelaneous", Err.Description, Err.Number
End Function
Private Function Decenas(Qty As String) As String
On Error GoTo flgerr
Select Case CInt(Qty)
Case 0
Decenas = vbNullString
Case 10
Decenas = "Diez"
Case 11
Decenas = "Once"
Case 12
Decenas = "Doce"
Case 13
Decenas = "Trece"
Case 14
Decenas = "Catorce"
Case 15
Decenas = "Quince"
Case 16
Decenas = "Diez y Seis"
Case 17
Decenas = "Diez y Siete"
Case 18
Decenas = "Diez y Ocho"
Case 19
Decenas = "Diez y Nueve"
Case 20
Decenas = "Veinte"
Case 21
Decenas = "Veintiun"
Case 22
Decenas = "Veintidos"
Case 23
Decenas = "Veintitres"
Case 24
Decenas = "Veinticuatro"
Case 25
Decenas = "Veinticinco"
Case 26
Decenas = "Veintiseis"
Case 27
Decenas = "Veintisiete"
Case 28
Decenas = "Veintiocho"
Case 20
Decenas = "Veintinueve"
Case 30
Decenas = "Treinta"
Case 40
Decenas = "Cuarenta"
Case 50
Decenas = "Cincuenta"
Case 60
Decenas = "Sesenta"
Case 70
Decenas = "Setenta"
Case 80
Decenas = "Ochenta"
Case 90
Decenas = "Noventa"
Case Else
Decenas = Decenas(Left$(Qty, 1) * 10) & IIf(Left$(Qty, 1) = 0, "", Space(1) & "y" + Space(1)) & Unidades(Right$(Qty, 1), True)
End Select
Exit Function
flgerr:
ErrTrap "miscelaneous", Err.Description, Err.Number
End Function
Private Function Centenas(Qty As String) As String
On Error GoTo flgerr
Select Case Left$(Qty, 1)
Case 1
If Qty = "100" Then: Centenas = "Cien": Else: Centenas = "Ciento"
Case 2
Centenas = "Doscientos"
Case 3
Centenas = "Trescientos"
Case 4
Centenas = "Cuatrocientos"
Case 5
Centenas = "Quinientos"
Case 6
Centenas = "Seiscientos"
Case 7
Centenas = "Setecientos"
Case 8
Centenas = "Ochocientos"
Case 9
Centenas = "Novecientos"
End Select
Centenas = Trim$(Centenas + Space(1) + Trim$(Decenas(Right$(Qty, 2))))
Exit Function
flgerr:
ErrTrap "miscelaneous", Err.Description, Err.Number
End Function
Private Function UniMiles(Qty As String) As String
On Error GoTo flgerr
UniMiles = Trim$(Unidades(Left$(Qty, 1), True) + " Mil" + Space(1) + Trim$(Centenas(Right$(Qty, 3))))
Exit Function
flgerr:
ErrTrap "miscelaneous", Err.Description, Err.Number
End Function
Private Function DecMiles(Qty As String) As String
On Error GoTo flgerr
DecMiles = Trim$(Decenas(Left$(Qty, 2)) + " Mil " + Centenas(Right$(Qty, 3)))
Exit Function
flgerr:
ErrTrap "miscelaneous", Err.Description, Err.Number
End Function
Private Function CenMiles(Qty As String) As String
On Error GoTo flgerr
CenMiles = Trim$(IIf(Len(Centenas(Left$(Qty, 3))) = 0, Centenas(Right$(Qty, 3)), Centenas(Left$(Qty, 3)) + " Mil " + Centenas(Right$(Qty, 3))))
Exit Function
flgerr:
ErrTrap "miscelaneous", Err.Description, Err.Number
End Function
Private Function UniMillon(Qty As String)
On Error GoTo flgerr
UniMillon = Unidades(Left$(Qty, 1), IIf(Left$(Qty, 1) = 1, True, False)) + IIf(Left$(Qty, 1) = 1, " Millon ", " Millones ") + CenMiles(Right$(Qty, 6))
Exit Function
flgerr:
ErrTrap "miscelaneous", Err.Description, Err.Number
End Function
Converts Numbers to words in Spanish Comments
No comments yet — be the first to post one!
Post a Comment