convertir tailandés a español

27/03/2006 - 23:45 por Gerson Miranda | Informe spam
como convertir valores numericos a letras, ejemplo: 100 seria "cien"

Preguntas similare

Leer las respuestas

#11 KL
28/03/2006 - 22:08 | Informe spam
Hola de nuevo,

En el siguiente enlace te pongo una hoja de ejemplo: http://www.telefonica.net/web/kl/UDF.NumbersToText(Spanish).xls

Saludos,
KL


"KL" wrote in message news:%
Hola Gerson,

Por Dios ! :-) Que quiere decir "no la reconoce"? Que error te da exactamente? Te lo pondre mas facil - #¿NOMBRE? o #¡VALOR!

Otra cosa, cuando pegas el codigo...
1) Pegas todo el codigo o solo una parte?
2) Algunas lineas aparecen en rojo?

Saludos,
KL


"Gerson Miranda" wrote in message news:
hola KL, esto fue lo que hice

pegue el siguiente algoritmo, segun tus instrucciones, luego corri la
formula sig =EnLetras(A1;1) pero no la reconoce aun, me suacribi en esta
pagina y baje un zip http://www.elguille.info/vb/utilida...2Text.htm,
pero no se donde colocarlo



Function EnLetras(Valor, Optional ByVal Tipo As Byte = 1) As String '
Funcion Principal '
If Not IsNumeric(Valor) Then
EnLetras = "¡ La referencia no es valor o... 'excede' la precisión !!!":
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(Int(Valor))), 6) = "illón " Or
Right(Letras(Abs(Int(Valor))), 8) = "illones " Then Moneda = "de" & Moneda
Cents = Application.Round(Abs(Valor) - Int(Abs(Valor)), 2) * 100
If Cents = 1 Then Fracs = " centavo" Else Fracs = " centavos"
If Cents = 0 Then Fracs = "" Else Fracs = " con " & Letras(Cents) & Fracs
EnLetras = Letras(Int(Abs(Valor))) & Moneda & Fracs
If Valor < 0 Then EnLetras = "menos " & EnLetras
If Tipo = 2 Then EnLetras = UCase(EnLetras) ' TODO EN MAYUSCULAS '
If Tipo = 3 Then EnLetras = StrConv(EnLetras, vbProperCase) ' Todo Como
Nombre Propio '
If Tipo = 4 Then EnLetras = UCase(Left(EnLetras, 1)) & Mid(EnLetras, 2) '
Primer letra en mayuscula SOLAMENTE '
EnLetras = "(" & EnLetras & ")"
End Function
Private Function Letras(Valor) As String ' Función Auxiliar [uso 'exclusivo'
de la funcion '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 = "mil"
Case Is < 2000: Letras = "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 millón "
Case Is < 2000000: Letras = "un millón " & 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 billón "
Case Is < 2000000000000#
Letras = "un billón " & 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


"KL" escribió:

Hola Gerson,

A ver, vayamos por partes ;-) ?Que quiere decir exactamente "no me funciono"? ?Podrias explicar que es lo que has hecho, que datos y en que celdas tienes, la formula que has introducido y donde la has introducido, que error has obtenido?

Saludos,
KL


"Gerson Miranda" wrote in message news:
> Gracias KL, probe de esa manera pero no me funciono, tambien baje un zip de
> la pagina de elguille, no se si sabes como instalar ese zip?
>
>
> gracias
>
> "KL" escribió:
>
>> Hola Gerson,
>>
>> > Francisco GMAIL me paso un algoritmo pero no se donde pegarlo,
>> > para poder utilizarlo como funcion, me podrias dar alguna direccion.
>>
>> Prueba hacer lo siguiente:
>>
>> Con el archivo en cuestion abierto...
>> 1) Haz clic-derecho sobre el pequeño logo de Excel a la izquierda del menu Archivo
>> 2) Elige la opcion 'Ver Codigo' para abrir el editor VBA.
>> 3) Una vez en el Editor VBA, ve al menu Insertar>Modulo...
>> 4) En la ventana mas grande a la derecha pega el codigo que te pasaron en la otra respuesta
>> 5) Pulsa Alt+F11 para volver a la hoja.
>> 6) Ahora puedes usar la funcion (solo en este archivo) como si fuera una funcion normal y corriente, p.ej. en una celda introduces:
>>
>> =EnLetras(A1;1)
>>
>> o bien
>>
>> =EnLetras(A1;2)
>>
>> o bien
>>
>> =EnLetras(A1;3)
>>
>> o bien
>>
>> =EnLetras(A1;4)
>>
>> Saludos,
>> KL
>>

Respuesta Responder a este mensaje
#12 Gerson Miranda
28/03/2006 - 22:36 | Informe spam
gracias KL pegue todo, desde fuctionenletras, hastaq end funtion, el error
que da es "error de compilacion" y me marca la primera linea con amarillo la
line es esta Function EnLetras(Valor, Optional ByVal Tipo As Byte = 1) As
String ', de ahi en adelante todo aprece en rojo

gracias por tener paciencia


"KL" escribió:

Hola Gerson,

Por Dios ! :-) Que quiere decir "no la reconoce"? Que error te da exactamente? Te lo pondre mas facil - #¿NOMBRE? o #¡VALOR!

Otra cosa, cuando pegas el codigo...
1) Pegas todo el codigo o solo una parte?
2) Algunas lineas aparecen en rojo?

Saludos,
KL


"Gerson Miranda" wrote in message news:
> hola KL, esto fue lo que hice
>
> pegue el siguiente algoritmo, segun tus instrucciones, luego corri la
> formula sig =EnLetras(A1;1) pero no la reconoce aun, me suacribi en esta
> pagina y baje un zip http://www.elguille.info/vb/utilida...2Text.htm,
> pero no se donde colocarlo
>
>
>
> Function EnLetras(Valor, Optional ByVal Tipo As Byte = 1) As String '
>> Funcion Principal '
>> If Not IsNumeric(Valor) Then
>> EnLetras = "¡ La referencia no es valor o... 'excede' la precisión !!!":
>> 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(Int(Valor))), 6) = "illón " Or
>> Right(Letras(Abs(Int(Valor))), 8) = "illones " Then Moneda = "de" & Moneda
>> Cents = Application.Round(Abs(Valor) - Int(Abs(Valor)), 2) * 100
>> If Cents = 1 Then Fracs = " centavo" Else Fracs = " centavos"
>> If Cents = 0 Then Fracs = "" Else Fracs = " con " & Letras(Cents) & Fracs
>> EnLetras = Letras(Int(Abs(Valor))) & Moneda & Fracs
>> If Valor < 0 Then EnLetras = "menos " & EnLetras
>> If Tipo = 2 Then EnLetras = UCase(EnLetras) ' TODO EN MAYUSCULAS '
>> If Tipo = 3 Then EnLetras = StrConv(EnLetras, vbProperCase) ' Todo Como
>> Nombre Propio '
>> If Tipo = 4 Then EnLetras = UCase(Left(EnLetras, 1)) & Mid(EnLetras, 2) '
>> Primer letra en mayuscula SOLAMENTE '
>> EnLetras = "(" & EnLetras & ")"
>> End Function
>> Private Function Letras(Valor) As String ' Función Auxiliar [uso 'exclusivo'
>> de la funcion '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 = "mil"
>> Case Is < 2000: Letras = "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 millón "
>> Case Is < 2000000: Letras = "un millón " & 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 billón "
>> Case Is < 2000000000000#
>> Letras = "un billón " & 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
> "KL" escribió:
>
>> Hola Gerson,
>>
>> A ver, vayamos por partes ;-) ?Que quiere decir exactamente "no me funciono"? ?Podrias explicar que es lo que has hecho, que datos y en que celdas tienes, la formula que has introducido y donde la has introducido, que error has obtenido?
>>
>> Saludos,
>> KL
>>
>>
>> "Gerson Miranda" wrote in message news:
>> > Gracias KL, probe de esa manera pero no me funciono, tambien baje un zip de
>> > la pagina de elguille, no se si sabes como instalar ese zip?
>> >
>> >
>> > gracias
>> >
>> > "KL" escribió:
>> >
>> >> Hola Gerson,
>> >>
>> >> > Francisco GMAIL me paso un algoritmo pero no se donde pegarlo,
>> >> > para poder utilizarlo como funcion, me podrias dar alguna direccion.
>> >>
>> >> Prueba hacer lo siguiente:
>> >>
>> >> Con el archivo en cuestion abierto...
>> >> 1) Haz clic-derecho sobre el pequeño logo de Excel a la izquierda del menu Archivo
>> >> 2) Elige la opcion 'Ver Codigo' para abrir el editor VBA.
>> >> 3) Una vez en el Editor VBA, ve al menu Insertar>Modulo...
>> >> 4) En la ventana mas grande a la derecha pega el codigo que te pasaron en la otra respuesta
>> >> 5) Pulsa Alt+F11 para volver a la hoja.
>> >> 6) Ahora puedes usar la funcion (solo en este archivo) como si fuera una funcion normal y corriente, p.ej. en una celda introduces:
>> >>
>> >> =EnLetras(A1;1)
>> >>
>> >> o bien
>> >>
>> >> =EnLetras(A1;2)
>> >>
>> >> o bien
>> >>
>> >> =EnLetras(A1;3)
>> >>
>> >> o bien
>> >>
>> >> =EnLetras(A1;4)
>> >>
>> >> Saludos,
>> >> KL
>> >>
>>

Respuesta Responder a este mensaje
#13 KL
28/03/2006 - 23:04 | Informe spam
Hola Gerson,

el error
que da es "error de compilacion" y me marca la primera linea con amarillo la
line es esta Function EnLetras(Valor, Optional ByVal Tipo As Byte = 1) As
String ', de ahi en adelante todo aprece en rojo



Ya me lo sospechaba. Es que al enviar los mensajes por Interenet a veces las lineas de codigo se interrumpen y se copian de manera incorrecta. En todo caso si bajas mi ejemplo que te colge en mi mensaje anterior podras copiar el codigo sin problemas.

gracias por tener paciencia



Perdona si he parecido impaciente, no iba contigo sino que estaba haciendo dos cosas a la vez y ambas se me resistian :-)

Saludos,
KL
Respuesta Responder a este mensaje
#14 Gerson Miranda
28/03/2006 - 23:18 | Informe spam
Gracias KL , no tengas pena en mucho me has ayudado, de el ejemplo que me
diste si me funciono bien, incluso le cambie el nimbre de la moneda y le
coloque la de Guatemala,

slds y hata pronto

"KL" escribió:

Hola Gerson,

> el error
> que da es "error de compilacion" y me marca la primera linea con amarillo la
> line es esta Function EnLetras(Valor, Optional ByVal Tipo As Byte = 1) As
> String ', de ahi en adelante todo aprece en rojo

Ya me lo sospechaba. Es que al enviar los mensajes por Interenet a veces las lineas de codigo se interrumpen y se copian de manera incorrecta. En todo caso si bajas mi ejemplo que te colge en mi mensaje anterior podras copiar el codigo sin problemas.

> gracias por tener paciencia

Perdona si he parecido impaciente, no iba contigo sino que estaba haciendo dos cosas a la vez y ambas se me resistian :-)

Saludos,
KL


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