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

[0] Índice de Mensajes

Ir a la versión completa