CONVERTIR NUMEROS TEXTO

02/12/2003 - 06:31 por DOUGLAS | Informe spam
HOLA ALGUIEM ME PUDE AYUDAR
LO QUE SE DESEA HACER ES CONVERTIR NUMEROS A TEXTO EJEMPLO $1234.56 (UN MIL DOSCIENTOS TREINTA Y CUATRO PESOS 56/100)
SI ALGUIEN SABE COMO PORFAVOR AVISEME ES MUY IMPORTANTE GRACIAS

Preguntas similare

Leer las respuestas

#1 Raul
02/12/2003 - 17:03 | Informe spam
Entra a Herrmientas --> Macro --> Editor de Visual Basic y pega este
codigo

Function Numeros_A_Letras(Numero As Double) As String
Dim Letras As String
Dim HuboCentavos As Boolean
Dim Decimales As Double
Decimales = Numero - Int(Numero)
Numero = Int(Numero)
Dim Numeros(90) As String
Numeros(0) = "cero"
Numeros(1) = "un"
Numeros(2) = "dos"
Numeros(3) = "tres"
Numeros(4) = "cuatro"
Numeros(5) = "cinco"
Numeros(6) = "seis"
Numeros(7) = "siete"
Numeros(8) = "ocho"
Numeros(9) = "nueve"
Numeros(10) = "diez"
Numeros(11) = "once"
Numeros(12) = "doce"
Numeros(13) = "trece"
Numeros(14) = "catorce"
Numeros(15) = "quince"
Numeros(20) = "veinte"
Numeros(30) = "treinta"
Numeros(40) = "cuarenta"
Numeros(50) = "cincuenta"
Numeros(60) = "sesenta"
Numeros(70) = "setenta"
Numeros(80) = "ochenta"
Numeros(90) = "noventa"
Do
'*> Centenas de Millón
If (Numero < 1000000000) And (Numero >= 100000000) Then
If (Int(Numero / 100000000) = 1) And ((Numero - (Int(Numero /
100000000) * 100000000)) < 1000000) Then
Letras = Letras & "cien millones "
Else
Select Case Int(Numero / 100000000)
Case 1
Letras = Letras & "ciento"
Case 5
Letras = Letras & "quinientos"
Case 7
Letras = Letras & "setecientos"
Case 9
Letras = Letras & "novecientos"
Case Else
Letras = Letras & Numeros(Int(Numero / 100000000))
End Select
If (Int(Numero / 100000000) <> 1) And (Int(Numero / 100000000)
<> 5) And (Int(Numero / 100000000) <> 7) _
And (Int(Numero / 100000000) <> 9) Then
Letras = Letras & "cientos "
Else
Letras = Letras & " "
End If
End If
Numero = Numero - (Int(Numero / 100000000) * 100000000)
End If
'*> Decenas de Millón
If (Numero < 100000000) And (Numero >= 10000000) Then
If Int(Numero / 1000000) < 16 Then
Letras = Letras & Numeros(Int(Numero / 1000000))
Letras = Letras & " millones "
Numero = Numero - (Int(Numero / 1000000) * 1000000)
Else
Letras = Letras & Numeros(Int(Numero / 10000000) * 10)
Numero = Numero - (Int(Numero / 10000000) * 10000000)
If Numero > 1000000 Then
Letras = Letras & " y "
End If
End If
End If
'*> Unidades de Millón
If (Numero < 10000000) And (Numero >= 1000000) Then
If Int(Numero / 1000000) = 1 Then
Letras = Letras & " un millón "
Else
Letras = Letras & Numeros(Int(Numero / 1000000))
Letras = Letras & " millones "
End If
Numero = Numero - (Int(Numero / 1000000) * 1000000)
End If
'*> Centenas de Millar
If (Numero < 1000000) And (Numero >= 100000) Then
If (Int(Numero / 100000) = 1) And ((Numero - (Int(Numero / 100000) *
100000)) < 1000) Then
Letras = Letras & "cien mil "
Else
Select Case Int(Numero / 100000)
Case 1
Letras = Letras & "ciento"
Case 5
Letras = Letras & "quinientos"
Case 7
Letras = Letras & "setecientos"
Case 9
Letras = Letras & "novecientos"
Case Else
Letras = Letras & Numeros(Int(Numero / 100000))
End Select
If (Int(Numero / 100000) <> 1) And (Int(Numero / 100000) <> 5)
And (Int(Numero / 100000) <> 7) _
And (Int(Numero / 100000) <> 9) Then
Letras = Letras & "cientos "
Else
Letras = Letras & " "
End If
End If
Numero = Numero - (Int(Numero / 100000) * 100000)
End If
'*> Decenas de Millar
If (Numero < 100000) And (Numero >= 10000) Then
If Int(Numero / 1000) < 16 Then
Letras = Letras & Numeros(Int(Numero / 1000))
Letras = Letras & " mil "
Numero = Numero - (Int(Numero / 1000) * 1000)
Else
Letras = Letras & Numeros(Int(Numero / 10000) * 10)
Numero = Numero - (Int((Numero / 10000)) * 10000)
If Numero > 1000 Then
Letras = Letras & " y "
Else
Letras = Letras & " mil "
End If
End If
End If
'*> Unidades de Millar
If (Numero < 10000) And (Numero >= 1000) Then
If Int(Numero / 1000) = 1 Then
Letras = Letras & "un"
Else
Letras = Letras & Numeros(Int(Numero / 1000))
End If
Letras = Letras & " mil "
Numero = Numero - (Int(Numero / 1000) * 1000)
End If
'*> Centenas
If (Numero < 1000) And (Numero > 99) Then
If (Int(Numero / 100) = 1) And ((Numero - (Int(Numero / 100) * 100))
< 1) Then
Letras = Letras & "cien "
Else
Select Case Int(Numero / 100)
Case 1
Letras = Letras & "ciento"
Case 5
Letras = Letras & "quinientos"
Case 7
Letras = Letras & "setecientos"
Case 9
Letras = Letras & "novecientos"
Case Else
Letras = Letras & Numeros(Int(Numero / 100))
End Select
If (Int(Numero / 100) <> 1) And (Int(Numero / 100) <> 5) And
(Int(Numero / 100) <> 7) _
And (Int(Numero / 100) <> 9) Then
Letras = Letras & "cientos "
Else
Letras = Letras & " "
End If
End If
Numero = Numero - (Int(Numero / 100) * 100)
End If
'*> Decenas
If (Numero < 100) And (Numero > 9) Then
If Numero < 16 Then
Letras = Letras & Numeros(Int(Numero))
Numero = Numero - Int(Numero)
Else
Letras = Letras & Numeros(Int((Numero / 10)) * 10)
Numero = Numero - (Int((Numero / 10)) * 10)
If Numero > 0.99 Then
Letras = Letras & " y "
End If
End If
End If
'*> Unidades
If (Numero < 10) And (Numero > 0.99) Then
Letras = Letras & Numeros(Int(Numero))
Numero = Numero - Int(Numero)

End If
Loop Until (Numero = 0)
'*> Decimales
If (Decimales > 0) Then
Letras = Letras & " pesos con "
Letras = Letras & Format(Decimales * 100, "00") & "/100 centavos"
Else
Letras = Letras & " pesos " & " con 00/100 centavos"
End If

Numeros_A_Letras = UCase(Letras)

End Function

Saludos...


"DOUGLAS" wrote in message
news:
HOLA ALGUIEM ME PUDE AYUDAR
LO QUE SE DESEA HACER ES CONVERTIR NUMEROS A TEXTO EJEMPLO $1234.56 (UN


MIL DOSCIENTOS TREINTA Y CUATRO PESOS 56/100)
SI ALGUIEN SABE COMO PORFAVOR AVISEME ES MUY IMPORTANTE GRACIAS
Respuesta Responder a este mensaje
#2 bohemio23
03/12/2003 - 21:07 | Informe spam
"DOUGLAS" wrote in message news:...
HOLA ALGUIEM ME PUDE AYUDAR
LO QUE SE DESEA HACER ES CONVERTIR NUMEROS A TEXTO EJEMPLO $1234.56 (UN MIL DOSCIENTOS TREINTA Y CUATRO PESOS 56/100)
SI ALGUIEN SABE COMO PORFAVOR AVISEME ES MUY IMPORTANTE GRACIAS



Hola, yo estaba buscando lo mismo y Jesus Peralta me dio esta solucion
que para mi funciono adecuadamente.

En tu formula pon =numletras(1234.56,1)
El ,1 te lo dara en mayusculas
El ,2 te lo da en minusculas

Espero te sirva

Dim NumTmp As String
Dim c01 As Integer
Dim c02 As Integer
Dim pos As Integer
Dim dig As Integer
Dim cen As Integer
Dim dec As Integer
Dim uni As Integer
Dim letra1 As String
Dim letra2 As String
Dim letra3 As String
Dim Leyenda As String
Dim Leyenda1 As String
Dim TFNumero As String

If Numero < 0 Then Numero = Abs(Numero)

NumTmp = Format(Numero, "000000000000000.00") 'Le
da un formato fijo
c01 = 1
pos = 1
TFNumero = "Son:"
'Para extraer tres digitos cada vez
Do While c01 <= 5
c02 = 1
Do While c02 <= 3
'Extrae un digito cada vez de izquierda a derecha
dig = Val(Mid(NumTmp, pos, 1))
Select Case c02
Case 1: cen = dig
Case 2: dec = dig
Case 3: uni = dig
End Select
c02 = c02 + 1
pos = pos + 1
Loop
letra3 = Centena(uni, dec, cen)
letra2 = Decena(uni, dec)
letra1 = Unidad(uni, dec)

Select Case c01
Case 1
If cen + dec + uni = 1 Then
Leyenda = "Billon "
ElseIf cen + dec + uni > 1 Then
Leyenda = "Billones "
End If
Case 2
If cen + dec + uni >= 1 And Val(Mid(NumTmp, 7, 3))
= 0 Then
Leyenda = "Mil Millones "
ElseIf cen + dec + uni >= 1 Then
Leyenda = "Mil "
End If
Case 3
If cen + dec = 0 And uni = 1 Then
Leyenda = "Millon "
ElseIf cen > 0 Or dec > 0 Or uni > 1 Then
Leyenda = "Millones "
End If
Case 4
If cen + dec + uni >= 1 Then
Leyenda = "Mil "
End If
Case 5
If cen + dec + uni >= 1 Then
Leyenda = ""
End If
End Select

c01 = c01 + 1

TFNumero = TFNumero + letra3 + letra2 + letra1 +
Leyenda

Leyenda = ""
letra1 = ""
letra2 = ""
letra3 = ""

Loop

If Val(NumTmp) = 0 Or Val(NumTmp) < 1 Then
Leyenda1 = "Cero Pesos "
ElseIf Val(NumTmp) = 1 Or Val(NumTmp) < 2 Then
Leyenda1 = "Peso "
ElseIf Val(Mid(NumTmp, 4, 12)) = 0 Or Val(Mid(NumTmp,
10, 6)) = 0 Then
Leyenda1 = "de Pesos "
Else
Leyenda1 = "Pesos "
End If

TFNumero = "(" & TFNumero & Leyenda1 & Mid(NumTmp, 17)
& "/100 M.N.)"

If Mayusculas = 1 Then
TFNumero = UCase(TFNumero)
Else
TFNumero = LCase(TFNumero)
End If

NumLetras = TFNumero

End Function


Private Function Centena(ByVal uni As Integer, ByVal dec
As Integer, ByVal cen As Integer) As String

Select Case cen
Case 1
If dec + uni = 0 Then
cTexto = "cien "
Else
cTexto = "ciento "
End If
Case 2: cTexto = "doscientos "
Case 3: cTexto = "trescientos "
Case 4: cTexto = "cuatrocientos "
Case 5: cTexto = "quinientos "
Case 6: cTexto = "seiscientos "
Case 7: cTexto = "setecientos "
Case 8: cTexto = "ochocientos "
Case 9: cTexto = "novecientos "
Case Else: cTexto = ""
End Select

Centena = cTexto
cTexto = ""

End Function


Private Function Decena(ByVal uni As Integer, ByVal dec As
Integer) As String

Select Case dec
Case 1
Select Case uni
Case 0: cTexto = "diez "
Case 1: cTexto = "once "
Case 2: cTexto = "doce "
Case 3: cTexto = "trece "
Case 4: cTexto = "catorce "
Case 5: cTexto = "quince "
Case 6 To 9: cTexto = "dieci"
End Select
Case 2
If uni = 0 Then
cTexto = "veinte "
ElseIf uni > 0 Then
cTexto = "veinti"
End If
Case 3: cTexto = "treinta "
Case 4: cTexto = "cuarenta "
Case 5: cTexto = "cincuenta "
Case 6: cTexto = "sesenta "
Case 7: cTexto = "setenta "
Case 8: cTexto = "ochenta "
Case 9: cTexto = "noventa "
Case Else: cTexto = ""
End Select

If uni > 0 And dec > 2 Then cTexto = cTexto + "y "

Decena = cTexto
cTexto = ""

End Function


Private Function Unidad(ByVal uni As Integer, ByVal dec As
Integer) As String

If dec <> 1 Then
Select Case uni
Case 1: cTexto = "un "
Case 2: cTexto = "dos "
Case 3: cTexto = "tres "
Case 4: cTexto = "cuatro "
Case 5: cTexto = "cinco "
End Select
End If

Select Case uni
Case 6: cTexto = "seis "
Case 7: cTexto = "siete "
Case 8: cTexto = "ocho "
Case 9: cTexto = "nueve "
End Select

Unidad = cTexto
cTexto = ""

End Function
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida