Formula cambiar numeros a letras

06/01/2005 - 22:41 por Dick Hurricane | Informe spam
Saludos!!!

Por favor si alguien me pudiera decir cual es la formula para cambiar
numeros a letras. Ejemplo:

En el campo D4 aparece 980 y quiero que en el campo C8 apareseca Novecientos
ochenta y si en el campo D4 aparece 1000, en el campo C8 aparesca Mil

De antemano Gracias!!!

Preguntas similare

Leer las respuestas

#6 Dick Hurricane
07/01/2005 - 10:53 | Informe spam
Saludos!!!
Encontre por ejemplo esta funcion, pero no se donde la copio o pego
POR FAVOR diganme que hacer
De antemano gracias!!!

PD disculpen todos los mensajes que envie


Function Convierte(Numero As Single)
Dim Flag, Contador As Integer
Dim N1, N2 As Integer
Dim Cantidad, Resultado As String
N1 = Int(Numero)
Resultado = ""
Flag = 1
Contador = 0
Do While Flag = 1
Contador = Contador + 1
N2 = 1000 * (N1 / 1000 - Int(N1 / 1000))
N1 = Int(N1 / 1000)
If N1 <= 0 Then Flag = 0

Cantidad = Analiza(N2)
Select Case Contador
Case 1
Resultado = Cantidad
Case 2, 4
If Cantidad <> "" Then Resultado = Cantidad + " mil " +
Resultado
Case 3
Resultado = Cantidad + " millones " + Resultado
End Select
Loop
If Resultado = " " Then Resultado = "cero"
Convierte = Resultado
End Function
Respuesta Responder a este mensaje
#7 Héctor Miguel
07/01/2005 - 10:55 | Informe spam
hola, Dick !

... encontre ... TEXTOBAHT ... y aparecio un texto en TAILANDES NO EN ESPAÑOL [...]



si lees mas adelante en la ayuda de excel acerca de la funcion... ->solo tailandes<- :(
si ya has revisado los mensajes de los enlaces 'sugeridos'...
-> elige la que mejor acomode a tus necesidades y [en un libro de excel]...
1.- abre el editor de vba con {Alt}+{F11}
2.- inserta un modulo de codigo 'normal'
3.- copia/pega las lineas de codigo [del ejemplo que hayas seleccionado]
4.- prueba la funcion en el libro

¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#8 Dick Hurricane
07/01/2005 - 19:43 | Informe spam
Saludos!!!
Ya hice lo que me dijiste, pero como pruebo la funcion en excel, no supe
como hacerlo funcionar

"Héctor Miguel" escribió en el mensaje
news:%
hola, Dick !

... encontre ... TEXTOBAHT ... y aparecio un texto en TAILANDES NO EN
ESPAÑOL [...]



si lees mas adelante en la ayuda de excel acerca de la funcion... ->solo
tailandes<- :(
si ya has revisado los mensajes de los enlaces 'sugeridos'...
-> elige la que mejor acomode a tus necesidades y [en un libro de
excel]...
1.- abre el editor de vba con {Alt}+{F11}
2.- inserta un modulo de codigo 'normal'
3.- copia/pega las lineas de codigo [del ejemplo que hayas seleccionado]
4.- prueba la funcion en el libro

¿comentas?
saludos,
hector.

Respuesta Responder a este mensaje
#9 Héctor Miguel
08/01/2005 - 03:27 | Informe spam
hola, Dick !

Ya hice lo que me dijiste, pero como pruebo la funcion en excel, no supe como hacerlo funcionar



solo tienes que 'llamar' a la funcion que hubieras creado como a cualquier otra funcion de hoja de calculo:
[celda_donde_quieres_el_resultado]=TuFuncion(el_valor_o_la_celda)

si estas usando la funcion 'Convierte' [que mencionas en mensaje 'posterior']...
es probable que la haga falta OTRA funcion 'complementaria' ->Analiza<-
[a menos que hubieras 'posteado' solo una fraccion del codigo que seleccionaste] -?-

lo que no tengo 'claro' [por ahora] y segun tu consulta 'original' es:
- si deseas 'convertir' SOLO cifras 'enteras' [o tambien 'habra' fracciones]
- si posteriormente les adicionaras alguna moneda [o 'unidad de medida']

al final te expongo el algoritmo de la funcion 'mas sencilla' [que yo conozco 'hasta ahora']
y 3 funciones 'de hoja de calculo' para enteros o... enteros_con_fracciones o... monedas [pesos]
TODAS usan [como motor principal] la funcion 'Letras' [que en el modulo es 'privada']
[lo mas 'importante' es que] 'dentro' del codigo de las 3 funciones [no privadas]...
-> puedes personalizar/adaptar/aumentar/etc. para [practicamente] 'cualquier necesidad'
[p.e. manejar algun 'formato de salida' como mayusculas, 'nombre_propio', etc.]
-> excepto si necesitas 'manejar' monedas/medidas del genero femenino [como 'pesetas', etc.]
[aqui se requiere 'quemar' un poco de mas neuronas, aunque existen ya un sinfin de 'versiones'] :))

copia/pega las lineas y... ¿comentas?
saludos,
hector.
== en un modulo de codigo 'normal' ==' Funciones 'de hoja de cálculo' '
Function EnteroEnLetras(Valor) As String
If Not IsNumeric(Valor) _
Then EnteroEnLetras = "¡ La referencia no es valor o... 'excede' la precisión !!!" _
Else EnteroEnLetras = Letras(Int(Abs(Valor)))
End Function
Function NumeroEnLetras(Valor) As String
If IsNumeric(Valor) Then
NumeroEnLetras = Letras(Int(Abs(Valor))) & " con " & _
Letras(Application.Round(Abs(Valor) - Int(Abs(Valor)), 2) * 100)
Else: NumeroEnLetras = "¡ La referencia no es valor o... 'excede' la precisión !!!"
End If
End Function
Function EnLetras(Valor) As String
If IsNumeric(Valor) Then
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
Else: EnLetras = "¡ La referencia no es valor o... 'excede' la precisión !!!"
End If
End Function
' Función Auxiliar [uso 'exclusivo' de las funciones 'de hoja de cálculo'] '
Private Function Letras(Valor) As String
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