Anda di halaman 1dari 3

Function Convierte_a_letra(Cantidad As Currency) As String

'Esta funcin recibe una cantidad numrica como argumento


'y devuelve la misma cantidad pero convertida
'a letras en el formato de las leyes mexicanas
'para expedicin de facturas, notas de venta, pagars y cheques
'Elabor
'Roy Vader
'roy.lobo@live.com.mx
Dim Cantidad_con_letra As String
Dim Roy_Vader As Byte
Dim Cantidad_texto As String
Cantidad_texto = Format(Abs(Cantidad), "000000000.00")
Cantidad_con_letra = ""
For Roy_Vader = 1 To 9
Select Case Roy_Vader
Case 1, 4, 7 'Centenas
If Roy_Vader = 4 Then
If Val(Mid(Cantidad_texto, Roy_Vader - 3, 3))
Cantidad_con_letra = Cantidad_con_letra &
ElseIf Val(Mid(Cantidad_texto, Roy_Vader - 3,
Cantidad_con_letra = Cantidad_con_letra &
End If
End If

> 1 Then
"Millones "
3)) = 1 Then
"Milln "

If Roy_Vader = 7 Then
If Val(Mid(Cantidad_texto, Roy_Vader - 3, 3)) > 0 Then
Cantidad_con_letra = Cantidad_con_letra & "Mil "
End If
End If
Select Case Mid(Cantidad_texto, Roy_Vader, 1)
Case "9"
Cantidad_con_letra = Cantidad_con_letra & "Novecientos "
Case "8"
Cantidad_con_letra = Cantidad_con_letra & "Ochocientos "
Case "7"
Cantidad_con_letra = Cantidad_con_letra & "Setecientos "
Case "6"
Cantidad_con_letra = Cantidad_con_letra & "Seiscientos "
Case "5"
Cantidad_con_letra = Cantidad_con_letra & "Quinientos "
Case "4"
Cantidad_con_letra = Cantidad_con_letra & "Cuatrocientos "
Case "3"
Cantidad_con_letra = Cantidad_con_letra & "Trescientos "
Case "2"
Cantidad_con_letra = Cantidad_con_letra & "Doscientos "
Case "1"
If Val(Mid(Cantidad_texto, Roy_Vader + 1, 2)) > 0 Then
Cantidad_con_letra = Cantidad_con_letra & "Ciento "
Else
Cantidad_con_letra = Cantidad_con_letra & "Cien "
End If
End Select 'Posicion centanas

Case 2, 5, 8 'Decenas
Select Case Mid(Cantidad_texto, Roy_Vader, 1)
Case "9"
If Val(Mid(Cantidad_texto, Roy_Vader + 1, 1)) > 0 Then
Cantidad_con_letra = Cantidad_con_letra & "Noventa y "
Else
Cantidad_con_letra = Cantidad_con_letra & "Noventa "
End If
Case "8"
If Val(Mid(Cantidad_texto, Roy_Vader + 1, 1)) > 0 Then
Cantidad_con_letra = Cantidad_con_letra & "Ochenta y "
Else
Cantidad_con_letra = Cantidad_con_letra & "Ochenta "
End If
Case "7"
If Val(Mid(Cantidad_texto, Roy_Vader + 1, 1)) > 0 Then
Cantidad_con_letra = Cantidad_con_letra & "Setenta y "
Else
Cantidad_con_letra = Cantidad_con_letra & "Setenta "
End If
Case "6"
If Val(Mid(Cantidad_texto, Roy_Vader + 1, 1)) > 0 Then
Cantidad_con_letra = Cantidad_con_letra & "Sesenta y "
Else
Cantidad_con_letra = Cantidad_con_letra & "Sesenta "
End If
Case "5"
If Val(Mid(Cantidad_texto, Roy_Vader + 1, 1)) > 0 Then
Cantidad_con_letra = Cantidad_con_letra & "Cincuenta y "
Else
Cantidad_con_letra = Cantidad_con_letra & "Cincuenta "
End If
Case "4"
If Val(Mid(Cantidad_texto, Roy_Vader + 1, 1)) > 0 Then
Cantidad_con_letra = Cantidad_con_letra & "Cuarenta y "
Else
Cantidad_con_letra = Cantidad_con_letra & "Cuarenta "
End If
Case "3"
If Val(Mid(Cantidad_texto, Roy_Vader + 1, 1)) > 0 Then
Cantidad_con_letra = Cantidad_con_letra & "Treinta y "
Else
Cantidad_con_letra = Cantidad_con_letra & "Treinta "
End If
Case "2"
If Val(Mid(Cantidad_texto, Roy_Vader + 1, 1)) > 0 Then
Cantidad_con_letra = Cantidad_con_letra & "Veinti"
Else
Cantidad_con_letra = Cantidad_con_letra & "Veinte "
End If
Case "1"
If Val(Mid(Cantidad_texto, Roy_Vader + 1, 1)) > 5 Then
Cantidad_con_letra = Cantidad_con_letra & "Dieci"
Else
Select Case Mid(Cantidad_texto, Roy_Vader + 1, 1)
Case "5"
Cantidad_con_letra = Cantidad_con_letra & "Quince "
Case "4"
Cantidad_con_letra = Cantidad_con_letra & "Catorce "
Case "3"

Cantidad_con_letra = Cantidad_con_letra
Case "2"
Cantidad_con_letra = Cantidad_con_letra
Case "1"
Cantidad_con_letra = Cantidad_con_letra
Case "0"
Cantidad_con_letra = Cantidad_con_letra
End Select 'Posicion unidades
End If

& "Trece "


& "Doce "
& "Once "
& "Diez "

End Select 'Posicion decenas


Case 3, 6, 9 'Unidades
Select Case Mid(Cantidad_texto, Roy_Vader, 1)
Case "9"
Cantidad_con_letra = Cantidad_con_letra & "Nueve "
Case "8"
Cantidad_con_letra = Cantidad_con_letra & "Ocho "
Case "7"
Cantidad_con_letra = Cantidad_con_letra & "Siete "
Case "6"
Cantidad_con_letra = Cantidad_con_letra & "Seis "
Case "5"
If Mid(Cantidad_texto, Roy_Vader - 1, 1) <> "1" Then
Cantidad_con_letra = Cantidad_con_letra & "Cinco "
End If
Case "4"
If Mid(Cantidad_texto, Roy_Vader - 1, 1) <> "1" Then
Cantidad_con_letra = Cantidad_con_letra & "Cuatro "
End If
Case "3"
If Mid(Cantidad_texto, Roy_Vader - 1, 1) <> "1" Then
Cantidad_con_letra = Cantidad_con_letra & "Tres "
End If
Case "2"
If Mid(Cantidad_texto, Roy_Vader - 1, 1) <> "1" Then
Cantidad_con_letra = Cantidad_con_letra & "Dos "
End If
Case "1"
If Mid(Cantidad_texto, Roy_Vader - 1, 1) <> "1" Then
Cantidad_con_letra = Cantidad_con_letra & " "
End If
End Select 'Posicion unidades
End Select 'Posicion
Next
If Val(Mid(Cantidad_texto, 1, 9)) > 1 Then
Cantidad_con_letra = Cantidad_con_letra & "Dolares "
ElseIf Val(Mid(Cantidad_texto, 1, 9)) = 1 Then
Cantidad_con_letra = Cantidad_con_letra & "Dolar "
Else
Cantidad_con_letra = Cantidad_con_letra & "Cero Dolares "
End If
Cantidad_con_letra = Cantidad_con_letra & Right(Cantidad_texto, 2) & _
"/100"
Convierte_a_letra = Cantidad_con_letra
End Function

Anda mungkin juga menyukai