Programación General > Visual Basic 6.0 e inferiores
De Numero A Letras
(1/1)
az8:
HOLA DE NUEVO ... ESTOY HACIENDO UNA APLICACION KE EMITE RECIBOS..PERO PARA AUTOMATIZARLO MEJOR NO HE ENCONTRADO UN PROGRAMA KE ME MANDE LA CANTIDA KE SE INTRODUCE A SU EKIVALENTE EN LETRAS... NO IMPORTANDO SI LA CANTIDAD CONTIENE DECIMALES......
NO LO HE PODIDO ENCONTRAR EN LA RED. ASI ES KE SI ALGUIEN TIENE UNA APLICACION PARECIDA,, POR FAVOR ENVIENMELA PLISSS ME URGE... GRACIAS
ATE AZ8
tyron:
Hola, tengo una función para eso. Espero te sirva. Un saludo.
--- Código: Text ---Function NumATexto(ByVal Valor As Double) As StringOn Error GoTo RutError Select Case Valor Case 0: NumATexto = "CERO" Case 1: NumATexto = "UN" Case 2: NumATexto = "DOS" Case 3: NumATexto = "TRES" Case 4: NumATexto = "CUATRO" Case 5: NumATexto = "CINCO" Case 6: NumATexto = "SEIS" Case 7: NumATexto = "SIETE" Case 8: NumATexto = "OCHO" Case 9: NumATexto = "NUEVE" Case 10: NumATexto = "DIEZ" Case 11: NumATexto = "ONCE" Case 12: NumATexto = "DOCE" Case 13: NumATexto = "TRECE" Case 14: NumATexto = "CATORCE" Case 15: NumATexto = "QUINCE" Case Is < 20: NumATexto = "DIECI" & NumATexto(Valor - 10) Case 20: NumATexto = "VEINTE" Case Is < 30: NumATexto = "VEINTI" & NumATexto(Valor - 20) Case 30: NumATexto = "TREINTA" Case 40: NumATexto = "CUARENTA" Case 50: NumATexto = "CINCUENTA" Case 60: NumATexto = "SESENTA" Case 70: NumATexto = "SETENTA" Case 80: NumATexto = "OCHENTA" Case 90: NumATexto = "NOVENTA" Case Is < 100: NumATexto = NumATexto(Int(Valor \ 10) * 10) & " Y " & NumATexto(Valor Mod 10) Case 100: NumATexto = "CIEN" Case Is < 200: NumATexto = "CIENTO " & NumATexto(Valor - 100) Case 200, 300, 400, 600, 800: NumATexto = NumATexto(Int(Valor \ 100)) & "CIENTOS" Case 500: NumATexto = "QUINIENTOS" Case 700: NumATexto = "SETECIENTOS" Case 900: NumATexto = "NOVECIENTOS" Case Is < 1000: NumATexto = NumATexto(Int(Valor \ 100) * 100) & " " & NumATexto(Valor Mod 100) Case 1000: NumATexto = "MIL" Case Is < 2000: NumATexto = "MIL " & NumATexto(Valor Mod 1000) Case Is < 1000000: NumATexto = NumATexto(Int(Valor \ 1000)) & " MIL" If Valor Mod 1000 Then NumATexto = NumATexto & " " & NumATexto(Valor Mod 1000) End If Case 1000000: NumATexto = "UN MILLON" Case Is < 2000000: NumATexto = "UN MILLON " & NumATexto(Valor Mod 1000000) Case Is < 1000000000000#: NumATexto = NumATexto(Int(Valor / 1000000)) & " MILLONES" If (Valor - Int(Valor / 1000000) * 1000000) Then NumATexto = NumATexto & " " & NumATexto(Valor - Int(Valor / 1000000) * 1000000) End If Case 1000000000000#: NumATexto = "UN BILLON" Case Is < 2000000000000#: NumATexto = "UN BILLON " & NumATexto(Valor - Int(Valor / 1000000000000#) * 1000000000000#) Case Else: NumATexto = NumATexto(Int(Valor / 1000000000000#)) & " BILLONES" If (Valor - Int(Valor / 1000000000000#) * 1000000000000#) Then NumATexto = NumATexto & " " & NumATexto(Valor - Int(Valor / 1000000000000#) * 1000000000000#) End If End Select Exit FunctionRutError: MsgBox "Debe introducir Numeros", vbCritical, "Aviso (NumATexto)"End Function
sylver:
hola por ahi te mando otra funcion haber si te sirve,,,,
es una funcion que yo la he usado tambienn en varios programitas,, y me va bastante bien....
Public Function numlet(letnum) As String
pesos = Int(letnum)
centavo = Int((letnum - pesos) * 100)
pesos = Int(letnum)
If centavo = 0 Then
letras = "00"
Else
letras = Trim(Str(centavo))
If centavo < 10 Then
letras = "0" + LTrim(Str(letras))
End If
End If
letras = LTrim(letras) + "/100 M.N."
If pesos = 0 Then
letras = "CERO PESOS" + LTrim(letras)
Else
If pesos = 1 Then
letras = "UN PESO" + LTrim(letras)
Else
CONTADOR = 0
While pesos > 0
ELIMINA
unidad = CANT
decena = 0
centena = 0
UNIDADES
If pesos > 0 Then
ELIMINA
decena = CANT
DECENAS
End If
If pesos > 0 Then
ELIMINA
centena = CANT
CENTENAS
End If
Select Case CONTADOR
Case Is = 0
If unidad = 0 And decena = 0 And centena = 0 Then
ok = 1
Else
ok = 0
End If
letras = "PESOS " + LTrim(letras)
Case Is = 1
If ok = 1 And unidad = 0 And decena = 0 And centena = 0 Then
letras = "DE " + letras
Else
letras = "MIL " + letras
End If
Case Is = 2
If unidad = 1 And decena = 0 And centena = 0 Then
letras = "MILLON " + letras
Else
letras = "MILLONES " + letras
End If
End Select
CONTADOR = CONTADOR + 1
letras = LTrim(letras2) + " " + LTrim(letras)
Wend
End If
End If
letra1 = LTrim(Mid(letras, 1, 32))
letra2 = LTrim(Mid(letras, 33, 32))
letra3 = LTrim(Mid(letras, 65, 32))
letra4 = LTrim(Mid(letras, 97, 32))
letra5 = LTrim(Mid(letras, 129, 32))
numlet = letras
End Function
Public Function ELIMINA()
Dim pesos2 As Double
Dim canlet, canfin As String
Dim cannum As Integer
pesos2 = pesos / 10
canlet = Str(pesos)
cannum = Len(canlet)
canfin = Mid(canlet, cannum, 1)
CANT = Val(Trim(canfin))
pesos = Int(pesos2)
End Function
Public Function INT1(Cantidad, POS)
Dim POS10, RESTA, VALe As Double
POS10 = 10 * POS
RESTA = 0.5 * POS10
CANT = Cantidad - RESTA
If CANT < 0 Then
VALe = Cantidad
Else
VALe = CANT
End If
INT1 = VALe
End Function
Public Function UNIDADES()
Select Case unidad
Case Is = 0
letras2 = ""
Case Is = 1
letras2 = "UN "
Case Is = 2
letras2 = "DOS "
Case Is = 3
letras2 = "TRES "
Case Is = 4
letras2 = "CUATRO "
Case Is = 5
letras2 = "CINCO "
Case Is = 6
letras2 = "SEIS "
Case Is = 7
letras2 = "SIETE "
Case Is = 8
letras2 = "OCHO "
Case Is = 9
letras2 = "NUEVE "
End Select
End Function
Public Function DECENAS()
If unidad = 0 Then
Select Case decena
Case Is = 1
letras2 = "DIEZ "
Case Is = 2
letras2 = "VEINTE "
Case Is = 3
letras2 = "TREINTA "
Case Is = 4
letras2 = "CUARENTA "
Case Is = 5
letras2 = "CINCUENTA "
Case Is = 6
letras2 = "SESENTA "
Case Is = 7
letras2 = "SETENTA "
Case Is = 8
letras2 = "OCHENTA "
Case Is = 9
letras2 = "NOVENTA "
End Select
Else
Select Case decena
Case Is = 1
Select Case unidad
Case Is = 1
letras2 = "ONCE "
Case Is = 2
letras2 = "DOCE "
Case Is = 3
letras2 = "TRECE "
Case Is = 4
letras2 = "CATORCE "
Case Is = 5
letras2 = "QUINCE "
Case Else
letras2 = "DIEZ Y " + letras2
End Select
Case Is = 2
letras2 = "VEINTI " + letras2
Case Is = 3
letras2 = "TREINTA Y " + letras2
Case Is = 4
letras2 = "CUARENTA Y " + letras2
Case Is = 5
letras2 = "CINCUENTA Y " + letras2
Case Is = 6
letras2 = "SESENTA Y " + letras2
Case Is = 7
letras2 = "SETENTA Y " + letras2
Case Is = 8
letras2 = "OCHENTA Y " + letras2
Case Is = 9
letras2 = "NOVENTA Y " + letras2
End Select
End If
End Function
Public Function CENTENAS()
Select Case centena
Case Is = 1
If decena = 0 And unidad = 0 Then
letras2 = "CIEN "
Else
letras2 = "CIENTO " + letras2
End If
Case Is = 2
letras2 = "DOSCIENTOS " + letras2
Case Is = 3
letras2 = "TRESCIENTOS " + letras2
Case Is = 4
letras2 = "CUATROCIENTOS " + letras2
Case Is = 5
letras2 = "QUINIENTOS " + letras2
Case Is = 6
letras2 = "SEISCIENTOS " + letras2
Case Is = 7
letras2 = "SETECIENTOS " + letras2
Case Is = 8
letras2 = "OCHOCIENTOS " + letras2
Case Is = 9
letras2 = "NOVECIENTOS " + letras2
End Select
End Function
Makko:
Yo hice un programita una vez que pasa numeros a letras, si aun no lo has podido hacer funcionar con lo que te han dado los chicos arriba, solo hazmelo saber.
Saludos.
Makko.
Navegación
Ir a la versión completa