numero a letras

alex
30 de Septiembre del 2005
pequeña aplicacion que hace lo mismo que el ocx

en un textbox ingresas 43600 y te devuelve
cuarenta y tres mil seiscientos 00/100 M/N

pesa apenas 43kb envíenme un mail y se los mando
espero no sean mas de 50

roelmer
30 de Septiembre del 2005
enviame ese archivo porfavor

Solid Snake
30 de Septiembre del 2005
Prererible coloca la funcion sera mas util

Saludos

alex
30 de Septiembre del 2005
como la adjunto para que puedan bajarla desde este mismo post, o debo hacerlo desde la opcion ¡Colabora!?

alex
30 de Septiembre del 2005
Ok. entiendo aqui les va...

en un form colocar 2 textbox un0 con la propiedad mutiline a True que es el que traducirá a letras y 1 commandButton para dar la orden de traducir

Espero que les sirva, ya que amí me ha servido de mucho. Hago incapié que este codigo no fué escrito por mi, pero me lo dieron muy amablemente en otro foro

Public cnum2let As Num2LetEsp
Private cALetra As New Num2LetEsp

Option Explicit

Private Sub Command1_Click()
'Conversion a Letras en Español con Pesos

Dim mstrMoneda As String
Dim txtndos As String
' Indica que la moneda es Pesos
' Esta variable puede ser modificada directamente en el form
' pudiendo cambiar con unas pequeñas modificaciones al modulo
' el tipo de modulo.

mstrMoneda = "Pesos"
cALetra.Moneda = mstrMoneda
'Inicia el Proceso para identificar la cantidad a convertir
If Val(txtCantidad) > 0 Then
txtndos = Format(Val(txtCantidad), "Currency")
cALetra.Numero = Val(txtCantidad)
txtLetra = cALetra.ALetra
Else
txtCantidad = ""
txtndos = ""
End If



End Sub

Ahora en un módulo de clase esto...


Option Explicit

'variables locales que contienen valores de propiedad
Private astrConversor(0 To 2, 1 To 9) As String
Private mvarNumero As Variant ' copia local
Private mstrMoneda As String ' copia local

Public Property Let Numero(ByVal vData As Variant)
If IsNumeric(vData) Then
mvarNumero = vData
End If
End Property

Public Property Get Numero() As Variant
Numero = mvarNumero
End Property

Public Function ALetra() As String
' Var
Dim i As Integer
Dim intProceder As Integer
Dim intPosNumero As Integer
Dim intLongNumero As Integer
Dim strNumero As String
Dim strLetraNumero As String

' Establece los valores iniciales para las Variables
mvarNumero = Abs(mvarNumero) 'Deberá ser positivo
strNumero = CStr(Fix(mvarNumero)) 'A Cadena
intLongNumero = Len(strNumero)
intPosNumero = intLongNumero

' Cicle por el total de caracteres del número
For i = 1 To intLongNumero
intProceder = True
If (intPosNumero Mod 3) = 1 Then
If intLongNumero > intPosNumero Then
Select Case Mid(strNumero, i - 1, 2)
Case "00"
If UCase(Right(strLetraNumero, 7)) = "CIENTO " Then
strLetraNumero = Left(strLetraNumero, Len(strLetraNumero) - 7)
strLetraNumero = strLetraNumero & "Cien "
End If
Case "11"
strLetraNumero = Left(strLetraNumero, Len(strLetraNumero) - 5)
strLetraNumero = strLetraNumero & "Once "
intProceder = False
Case "12"
strLetraNumero = Left(strLetraNumero, Len(strLetraNumero) - 5)
strLetraNumero = strLetraNumero & "Doce "
intProceder = False
Case "13"
strLetraNumero = Left(strLetraNumero, Len(strLetraNumero) - 5)
strLetraNumero = strLetraNumero & "Trece "
intProceder = False
Case "14"
strLetraNumero = Left(strLetraNumero, Len(strLetraNumero) - 5)
strLetraNumero = strLetraNumero & "Catorce "
intProceder = False
Case "15"
strLetraNumero = Left(strLetraNumero, Len(strLetraNumero) - 5)
strLetraNumero = strLetraNumero & "Quince "
intProceder = False
Case "16", "17", "18", "19"
strLetraNumero = Left(strLetraNumero, Len(strLetraNumero) - 2)
strLetraNumero = strLetraNumero & "ci"
Case "21" To "29"
strLetraNumero = Left(strLetraNumero, Len(strLetraNumero) - 2)
strLetraNumero = strLetraNumero & "i"
Case Else
If Val(Mid(strNumero, i, 1)) > 0 And Val(Mid(strNumero, i - 1, 1)) > 0 Then
strLetraNumero = strLetraNumero & "y "
End If
End Select
End If
End If

If Val(Mid(strNumero, i, 1)) > 0 And intProceder Then
strLetraNumero = strLetraNumero & astrConversor((intPosNumero Mod 3), Val(Mid(strNumero, i, 1))) & " "
End If

Select Case intPosNumero
Case 4
If Right(strLetraNumero, 9) <> "millones " And Right(strLetraNumero, 13) <> "mil millones " And Right(strLetraNumero, 9) <> "billones " Then
strLetraNumero = strLetraNumero & "mil "
End If
Case 7
If Right(strLetraNumero, 13) <> "mil millones " And Right(strLetraNumero, 9) <> "billones " Then
strLetraNumero = strLetraNumero & "millones "
End If
Case 10
If Right(strLetraNumero, 9) <> "billones " Then
strLetraNumero = strLetraNumero & "millardos "
End If
Case 13
strLetraNumero = strLetraNumero & "billones "
Case Else
End Select
intPosNumero = intPosNumero - 1
Next i

strLetraNumero = Left(strLetraNumero, 1) & LCase(Mid(strLetraNumero, 2))
If Numero <> Fix(Numero) Then
i = (Numero - Fix(Numero)) * 100
strLetraNumero = strLetraNumero & LCase(mstrMoneda) & Str(i)
Else
strLetraNumero = strLetraNumero & LCase(mstrMoneda)
End If

If UCase(mstrMoneda) = "PESOS" Then
strLetraNumero = "**" & strLetraNumero & ".-" End If

ALetra = strLetraNumero
End Function

Private Sub Asigna()
' Asigna los Valores al arreglo astrConversor
astrConversor(0, 1) = "Ciento"
astrConversor(0, 2) = "Doscientos"
astrConversor(0, 3) = "Trescientos"
astrConversor(0, 4) = "Cuatrocientos"
astrConversor(0, 5) = "Quinientos"
astrConversor(0, 6) = "Seiscientos"
astrConversor(0, 7) = "Setecientos"
astrConversor(0, 8) = "Ochocientos"
astrConversor(0, 9) = "Novecientos"
astrConversor(1, 1) = "Un"
astrConversor(1, 2) = "Dos"
astrConversor(1, 3) = "Tres"
astrConversor(1, 4) = "Cuatro"
astrConversor(1, 5) = "Cinco"
astrConversor(1, 6) = "Seis"
astrConversor(1, 7) = "Siete"
astrConversor(1, 8) = "Ocho"
astrConversor(1, 9) = "Nueve"
astrConversor(2, 1) = "Diez"
astrConversor(2, 2) = "Veinte"
astrConversor(2, 3) = "Treinta"
astrConversor(2, 4) = "Cuarenta"
astrConversor(2, 5) = "Cincuenta"
astrConversor(2, 6) = "Sesenta"
astrConversor(2, 7) = "Setenta"
astrConversor(2, 8) = "Ochenta"
astrConversor(2, 9) = "Noventa"
End Sub

Public Property Get Moneda() As String
Moneda = mstrMoneda
End Property

Public Property Let Moneda(ByVal vNewValue As String)
mstrMoneda = vNewValue
End Property

Private Sub Class_Initialize()
Asigna
mstrMoneda = "pesos"
End Sub

Private Sub Class_Terminate()
Erase astrConversor
End Sub

eecrs
30 de Septiembre del 2005
pasate la aplicacion espero que me la puedas mandar ami corre es: [email protected]

gracias.

atte. EDGAR

alex
30 de Septiembre del 2005
Ok. ahí les va el codigo, solo pidanlo

neptuso
30 de Septiembre del 2005
hola amigo necesito ese programejo
gracias