cambio de idioma en resultado de funcion textbath de excell

22/01/2006 - 01:24 por antrax | Informe spam
cuando pido la realizacion de esta funcion aparece en idioma tailandes, creo
que se debe a una actualizacion de windows para idiomas asiaticos como se
hace para cambiqr idioma si ya esta configudo el español en configuracion
regional

Preguntas similare

Leer las respuestas

#26 Héctor Miguel
19/10/2008 - 04:16 | Informe spam
hola, Emilio !

gracias a ti (por el "feed-back")... considerando que una propuesta de enero-2006 sigue "vigente"... :))

saludos,
hector.

__ OP __
gracias por esta info que no habia solicitado.
Hoy me salvaste el trabajo.
Lo corri en Excel 12 sobre Vista y funciona de maravilla, justo lo que necesitaba.
Ojala algun dia lo integren en la version en Castellano de Excel
ya que el textbath no nos sirve a nadie en latinoamerica.

Salu2



__ el 'origen' __
> ... quisiera solicitar un poco de informacion con respecto ... del ALGORITMO, que agregas en el foro
> ... no tengo ni la menor idea como poder insertarlo, adjuntarlo, pegarlo; para aplicar esa funcion, macro o ?? ...

1) estando 'activo' el libro donde la vas a utilizar... muestra el editor de vba -> atajo de teclado: {Alt}+{F11}
2) en el editor de vba... inserta un modulo de codigo 'estandar': -> [menu] insertar / modulo
3) en la ventana 'grande' que se acaba de insertar [Modulo1 ?] -> copia/pega las lineas al final de este mensaje
4) cierras el editor de vba -> atajo de teclado: {Alt}+Q
5) 'de regreso' en excel [y tu libro]... suponiendo que tienes un valor/formula/resultado/... numerico en 'A1'
y que en la celda 'B1' quieres la 'traduccion' de 'A1' como letras...
usa en 'B1' la recien-agregada funcion: =EnLetras(A1,4)
cuyos argumentos podrias usar +/- como sigue: -> EnLetras(Valor, Tipo)
a) EnLetras => es la entrada/llamada/... para usar la funcion en tus hojas de calculo de 'ese' libro
b) Valor => es el valor [o la referencia a la celda que lo contiene] que se va a 'traducir'
c) Tipo => es una de cuatro 'opciones' para el tipo de 'salida' del texto resultante de la 'traduccion'
1 => el resultado sera con todas las letras en minusculas [resultado por omision del argumento 'Tipo']
2 => el resultado sera con todas las letras en mayusculas
3 => el resultado sera la primer letra de cada palabra en mayusculas [el resto en minusculas]
4 => el resultado sera SOLO la primer letra [de toda la frase] en mayusculas [el resto en minusculas]

si cualquier duda... comentas ?
saludos,
hector.

para copiar/pegar en el modulo de codigo estandar del punto 2 ==>> =>TEN CUIDADO con los 'saltos de linea' si copias/pegas el codigo desde la ventana del mensaje<>>
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 ' Funcion 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
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida