Conversión de numero a letras

Estoy teminando de diseñar una aplicación en ceess 2002 que adminstrra contablemente entiddes. Necesito saber como convierto un valor calculado a letras. Me explico : Si el valor de un pedido da $50.000.oo que un campo me almacene el texro correspondiente al vaklor calculado (CINCUENTA MIL PESOS )
Gracias. Es mi primera consulta y los felicito!. Soy un fanático de la programación...

1 respuesta

Respuesta
1
Como estas. Yo utilizo esta:
Function ENLETRAS(x)
Dim parte1 As Long
Dim parte2 As Long
Dim parte3 As Long
Dim millon As String
Dim millar As String
parte1 = Int(x / 1000000)
parte2 = Int((x - parte1 * 1000000) / 1000)
parte3 = x - parte1 * 1000000 - parte2 * 1000
If parte1 = 0 Then millon = ""
If parte1 = 1 Then millon = "UN MILLÓN "
If parte1 > 1 Then millon = Nombre(parte1) + " MILLONES "
If (parte1 - 100 * Int(parte1 / 100) > 11) And ((parte1 - 10 * Int(parte1 / 10)) = 1) Then
millon = Mid(Nombre(parte1), 1, Len(Nombre(parte1)) - 1) + " MILLONES "
End If
If parte2 = 0 Then millar = ""
If parte2 = 1 Then millar = " MIL "
If parte2 > 1 Then millar = Nombre(parte2) + " MIL "
If (parte2 - 100 * Int(parte2 / 100) > 11) And ((parte2 - 10 * Int(parte2 / 10)) = 1) Then
millar = Mid(Nombre(parte2), 1, Len(Nombre(parte2)) - 1) + " MIL "
End If
ENLETRAS = millon + millar + Nombre(parte3)
If Int(x) = 0 Then ENLETRAS = "CERO"
End Function
Function Nombre(x)
Dim uni As Variant
Dim dec As Variant
Dim cent As Variant
Dim xcent As Long
Dim xdec As Long
Dim xuni As Long
uni = Array("", "UNO", "DOS", "TRES", "CUATRO", "CINCO", _
"seis", "siete", "ocho", "nueve", "diez", _
"once", "doce", "trece", "catorce", "quince", _
"dieciseis", "diecisiete", "dieciocho", "diecinueve", "veinte", _
"veintiuno", "veintidos", "veintitres", "veinticuatro", "veinticinco", _
"veintiseis", "veintisiete", "veintiocho", "veintinueve")
dec = Array("", "", "", "TREINTA", "CUARENTA", "CINCUENTA", _
"SESENTA", "SETENTA", "OCHENTA", "NOVENTA")
cent = Array("", "CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", _
"QUINIENTOS", "SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS")
xcent = Int(x / 100)
xdec = Int(x / 10) - 10 * xcent
xuni = x - 100 * xcent - 10 * xdec
If xdec > 2 Then
Nombre = dec(xdec)
If xuni > 0 Then
Nombre = Nombre + " Y " + uni(xuni)
End If
Else
Nombre = uni(xdec * 10 + xuni)
End If
If xcent > 0 Then Nombre = cent(xcent) + " " + Nombre
If x = 100 Then Nombre = "CIEN"
End Function
Pones variable = enletras(numero) y ya te sale.
Experto te agradezco exageradamente. Sabia que alguien me ayudaría.
Quisiera saber si fuese posible de que me enviaras una copia de un pequeño archivo .mdb a [email protected] que realizara este calculo.
Lo revisare para conocerlo.
Una vez más le agradezco mil veces..
Ruben.
¿Te funciono?
Ya esta mandado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas