Convertir números en texto

08/06/2007 - 16:31 por REMM.NET Venez | Informe spam
Quisiera saber como convertir números en texto en idioma español. uso Office
2003 y se que la función TEXTOBAHT lo hace pero devuelve el resultado en
idioma Tailándes.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
08/06/2007 - 17:23 | Informe spam
hola, 'anonimo/a' !

Quisiera saber como convertir numeros en texto en idioma espa#ol...



-> ve si te sirve alguna de las siguientes conversaciones: -> http://tinyurl.com/newym

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 vm_tapia
08/06/2007 - 23:30 | Informe spam
"REMM.NET Venez" wrote:

Quisiera saber como convertir números en texto en idioma español. uso Office
2003 y se que la función TEXTOBAHT lo hace pero devuelve el resultado en
idioma Tailándes.




Ingresa el siguiente codigo en un modulo "normal" de Vb
_________________________________
Function EnLetras(Valor) As String ' Función Principal '
If Not IsNumeric(Valor) Then
EnLetras = " ¡ La referencia no es un numero ! ":
Exit Function
End If: Dim Moneda As String, Fracs As String, Cents As Integer
If Int(Abs(Valor)) = 1 Then Moneda = " PESO " Else Moneda = " PESOS "
If Right(Letras(Abs(Valor)), 6) = "ILLON " Or Right(Letras(Abs(Valor)), 8)
= "ILLONES " Then Moneda = "DE" & Moneda
Cents = Application.Round(Abs(Valor) - Int(Abs(Valor)), 2) * 100
If Cents = 0 Then EnLetras = "(" & Letras(Int(Abs(Valor))) & Moneda &
Fracs & "00/100 M.N.)" Else
If Cents >= 1 & Cents < 10 Then EnLetras = "(" & Letras(Int(Abs(Valor)))
& Moneda & Fracs & "0" & Cents & "/100 M.N.)" Else
If Cents >= 10 Then EnLetras = "(" & Letras(Int(Abs(Valor))) & Moneda &
Fracs & Cents & "/100 M.N.)"
End Function
Private Function Letras(Valor) As String
' Función Auxiliar [uso 'exclusivo'de la función 'principal'] '
Select Case Int(Valor)
Case 0: Letras = "CERO"
Case 1: Letras = "UN"
Case 2: Letras = "DOS"
Case 3: Letras = "TRES"
Case 4: Letras = "CUATRO"
Case 5: Letras = "CINCO"
Case 6: Letras = "SEIS"
Case 7: Letras = "SIETE"
Case 8: Letras = "OCHO"
Case 9: Letras = "NUEVE"
Case 10: Letras = "DIEZ"
Case 11: Letras = "ONCE"
Case 12: Letras = "DOCE"
Case 13: Letras = "TRECE"
Case 14: Letras = "CATORCE"
Case 15: Letras = "QUINCE"
Case Is < 20: Letras = "DIECI" & Letras(Valor - 10)
Case 20: Letras = "VEINTE"
Case Is < 30: Letras = "VEINTI" & Letras(Valor - 20)
Case 30: Letras = "TREINTA"
Case 40: Letras = "CUARENTA"
Case 50: Letras = "CINCUENTA"
Case 60: Letras = "SESENTA"
Case 70: Letras = "SETENTA"
Case 80: Letras = "OCHENTA"
Case 90: Letras = "NOVENTA"
Case Is < 100: Letras = Letras(Int(Valor \ 10) * 10) & " Y " &
Letras(Valor Mod 10)
Case 100: Letras = "CIEN"
Case Is < 200: Letras = "CIENTO " & Letras(Valor - 100)
Case 200, 300, 400, 600, 800: Letras = Letras(Int(Valor \ 100)) &
"CIENTOS"
Case 500: Letras = "QUINIENTOS"
Case 700: Letras = "SETECIENTOS"
Case 900: Letras = "NOVECIENTOS"
Case Is < 1000: Letras = Letras(Int(Valor \ 100) * 100) & " " &
Letras(Valor Mod 100)
Case 1000: Letras = "UN MIL"
Case Is < 2000: Letras = "UN MIL " & Letras(Valor Mod 1000)
Case Is < 1000000: Letras = Letras(Int(Valor \ 1000)) & " MIL"
If Valor Mod 1000 Then Letras = Letras & " " & Letras(Valor Mod 1000)
Case 1000000: Letras = "UN MILLON "
Case Is < 2000000: Letras = "UN MILLON " & Letras(Valor Mod 1000000)
Case Is < 1000000000000#: Letras = Letras(Int(Valor / 1000000)) & "
MILLONES "
If (Valor - Int(Valor / 1000000) * 1000000) _
Then Letras = Letras & Letras(Valor - Int(Valor / 1000000) * 1000000)
Case 1000000000000#: Letras = "UN BILLON "
Case Is < 2000000000000#
Letras = "UN BILLON " & Letras(Valor - Int(Valor / 1000000000000#) *
1000000000000#)
Case Else: Letras = Letras(Int(Valor / 1000000000000#)) & " BILLONES "
If (Valor - Int(Valor / 1000000000000#) * 1000000000000#) Then Letras
= Letras & " " & Letras(Valor - Int(Valor / 1000000000000#) * 1000000000000#)
End Select
End Function



Function sololetra(Valor) As String ' Función Principal '
If Not IsNumeric(Valor) Then
sololetra = " ¡ La referencia no es un numero ! ":
Exit Function
End If
Dim Moneda As String, Fracs As String, Cents As Integer
Cents = Application.Round(Abs(Valor) - Int(Abs(Valor)), 2) * 100
If Cents = 0 Then sololetra = Letrassinmoneda(Int(Abs(Valor)))
End Function
Private Function Letrassinmoneda(Valor) As String
' Función Auxiliar [uso 'exclusivo'de la función 'principal'] '
Select Case Int(Valor)
Case 0: Letrassinmoneda = "cero"
Case 1: Letrassinmoneda = "un"
Case 2: Letrassinmoneda = "dos"
Case 3: Letrassinmoneda = "tres"
Case 4: Letrassinmoneda = "cuatro"
Case 5: Letrassinmoneda = "cinco"
Case 6: Letrassinmoneda = "seis"
Case 7: Letrassinmoneda = "siete"
Case 8: Letrassinmoneda = "ocho"
Case 9: Letrassinmoneda = "nueve"
Case 10: Letrassinmoneda = "diez"
Case 11: Letrassinmoneda = "once"
Case 12: Letrassinmoneda = "doce"
Case 13: Letrassinmoneda = "trece"
Case 14: Letrassinmoneda = "catorce"
Case 15: Letrassinmoneda = "quince"
Case Is < 20: Letrassinmoneda = "dieci" & Letrassinmoneda(Valor - 10)
Case 20: Letrassinmoneda = "veinte"
Case Is < 30: Letrassinmoneda = "veinti" & Letrassinmoneda(Valor - 20)
Case 30: Letrassinmoneda = "treinta"
Case 40: Letrassinmoneda = "cuarenta"
Case 50: Letrassinmoneda = "cincuenta"
Case 60: Letrassinmoneda = "sesenta"
Case 70: Letrassinmoneda = "setenta"
Case 80: Letrassinmoneda = "ochenta"
Case 90: Letrassinmoneda = "noventa"
Case Is < 100: Letrassinmoneda = Letrassinmoneda(Int(Valor \ 10) * 10) &
" Y " & Letrassinmoneda(Valor Mod 10)
Case 100: Letrassinmoneda = "cien"
Case Is < 200: Letrassinmoneda = "ciento " & Letrassinmoneda(Valor - 100)
Case 200, 300, 400, 600, 800: Letrassinmoneda =
Letrassinmoneda(Int(Valor \ 100)) & "cientos"
Case 500: Letrassinmoneda = "quinientos"
Case 700: Letrassinmoneda = "setecientos"
Case 900: Letrassinmoneda = "novecientos"
Case Is < 1000: Letrassinmoneda = Letrassinmoneda(Int(Valor \ 100) *
100) & " " & Letrassinmoneda(Valor Mod 100)
Case 1000: Letrassinmoneda = "un mil"
Case Is < 2000: Letrassinmoneda = "un mil " & Letrassinmoneda(Valor Mod
1000)
Case Is < 1000000: Letrassinmoneda = Letrassinmoneda(Int(Valor \ 1000))
& " mil"
If Valor Mod 1000 Then Letrassinmoneda = Letrassinmoneda & " " &
Letrassinmoneda(Valor Mod 1000)
Case 1000000: Letrassinmoneda = "un millon "
Case Is < 2000000: Letrassinmoneda = "un millon " &
Letrassinmoneda(Valor Mod 1000000)
Case Is < 1000000000000#: Letrassinmoneda = Letrassinmoneda(Int(Valor /
1000000)) & " millones "
If (Valor - Int(Valor / 1000000) * 1000000) _
Then Letrassinmoneda = Letrassinmoneda & Letrassinmoneda(Valor -
Int(Valor / 1000000) * 1000000)
Case 1000000000000#: Letrassinmoneda = "un billon "
Case Is < 2000000000000#
Letrassinmoneda = "un billon " & Letrassinmoneda(Valor - Int(Valor /
1000000000000#) * 1000000000000#)
Case Else: Letrassinmoneda = Letrassinmoneda(Int(Valor /
1000000000000#)) & " billones "
If (Valor - Int(Valor / 1000000000000#) * 1000000000000#) Then
Letrassinmoneda = Letrassinmoneda & " " & Letrassinmoneda(Valor - Int(Valor /
1000000000000#) * 1000000000000#)
End Select
End Function
_______________________________________

Despues pones una cantidad en cualquier celda (A1<-- ejemplo) de la hoja y
en otra (B2<-- ejemplo) ingresas lo siguiente:

=enletras(A1)

y el resultado es el importe EN LETRA que hayas tecleado en la celda de
ejemplo.

o tambien puedes introducir los siguiente

=sololetra(A1)


y el resultado es el mismo, pero con la diferencia de que no aparece al
final lo de PESOS y centavos.
Respuesta Responder a este mensaje
#3 irser2005
21/06/2007 - 17:11 | Informe spam
Funcion bueniiiiisima, y gracias si funciona yo la he modificado un
poco poniendole los quetzales en lugar de pesos ya que soy de
guatemala, gracias amigos y sigamos compartiendo nuestros
conocimientos.. mil gracias

Super Chejo
desde Guate
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida