última versión 20160127
Una de las funciones que más se echa en falta en Excel es una que permitiese convertir un número en letras, me explico, que permitiese expresar un número que se le facilitase como argumento como un texto.
Especialmente indicado para esos casos de ...
total: 12021.35
asciende el presente presupuesto a la cantidad de doce mil veintiun euros con treinta y cinco céntimos
Supongo que las particularidades de cada idioma hacen que esto no sea una prioridad para Microsoft, también hacen que no sea inmediato adaptar una solución al español de las que existen en diferentes idiomas.
Hace tiempo, con la llegada del Euro, tuve que adaptar una función inicialmente pensada para pesetas (femenino y sin decimales), le añadí algunos argumentos para poder adaptarlo a cualquier unidad entera y fraccionaria, en masculino y femenino, porque el español tienen género para todas las cosas.
La conclusión de todo ello es la función que adjunto, y que espero que resulte de utilidad a los visitantes de esta web.
Los argumentos de la función NumLetra son los siguientes:
- Número el número a convertir, OBLIGATORIO
- NumDecimales número de decimales a considerar para pasar a texto. Como a veces el número provendrá de una operación, es importante este redondeo (por defecto cero)
- Unidad nombre de la unidad principal, se pondrá detrás de la parte entera (euros, dólares, pesos, coronas, ...)
- UdFracc nombre de la unidad fraccionaria, se pondrá detrás de los decimales (céntimos, centavos, centésimas, milésimas, ...)
- Conexión texto que separará la parte entera de la decimal (por ejemplo, tres euros "CON" quince céntimos, cuatro "coma" tres)
- Cero tratamiento a dar cuando tenemos un cero ( cero euros con diez céntimos, o simplemente diez céntimos) 0: 0.00->""; 1: 0.00->"cero unidades con cero céntimos"; 2: 0.00 0->"cero unidades"; 3: 0.00->"cero céntimos" (por defecto: 0)
- UD_un_uno_a género para la unidad principal (cuarenta y un, cuarenta y uno, cuarenta y una) 1: 1->"un" 2: 1->"uno" 3: 1->"una" (por defecto: 1)
- Fracc_un_uno_a género para la unidad fraccionaria 1: 1->"un" 2: 1->"uno" 3: 1->"una" (por defecto: 1)
- UnMil permite indicar el tratamiento cuando tenemos una unidad de millar. Verdadero 1000->"un mil", Falso 1000->"mil"
- Millar_un_uno_a género para los millares (cuarenta y un mil, cuarenta y uno mil, cuarenta y una mil) 1: 1->"un" 2: 1->"uno" 3: 1->"una" (por defecto: 1)
Para comprender mejor el funcionamiento tal vez unos ejemplos resulten más claros que cualquier explicación:
Ejemplos de la función combinada con otros textos
Si no sabes qué hacer con el archivo que se descarga mira esta página donde se explica qué hacer con un archivo .bas
Si te resulta de gran utilidad y quieres agradecérmelo de alguna manera, siempre puedes invitarme a algo
y por supuesto si necesitas más, tal vez te interese Ya sé Excel, pero necesito más
Adjunto | Tamaño |
---|---|
numeroaletra20160127.rar | 3.25 KB |
Comentarios
Re: Convertir números a texto
nueva versión
Acabo de corregir éste problema. Versión 20071003 (año mes día)
He añadido la fecha al final del nombre del archivo para identificar la versión. He hecho bastantes pruebas, pero si detectas algún otro problema no dudes en comentarlo aquí para resolverlo.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: nueva versión
SALUDOS desde mi cubil felino!
Felicidades por este estupendo trabajo Paco, me ha hecho tanto bien que he decidido invitarte algo pronto!
Ahora con mi duda; radico en méxico donde para la moneda usamos el siguiente formato;
$3,530.40 (SON TRES MIL QUINIENTOS TREINTA PESOS 40/100 M.N.)
¿cómo podría hacer que me diera este resultado tu función?
----------------------------
Gracias de antemano!
EXCEL-ENTUSIASTIC!
CARPE DIEM!
Re: nueva versión
estaba contestándote pero ya vi que lo lograste
http://www.necesitomas.com/numeros_a_texto_excel#comment-6226
------
Ya sé Excel, pero necesito más.
Re: nueva versión
Casi casi me dormi leyendo casi todo el tema.
Resulta que tengo un Modulo con una funcion para pasa rnumero a letras con solo 70 lineas y llega hasta 999.999.999.999.999,00
Por ahí tengo otra de solo 57 lineas y llegas hasta 921.999.999.999.999,00
género y número
seguro que se puede optimizar
¿pero esas alternativas también pueden escribir el resultado con género y número?
41321000
cuarenta y UN millones trescientAS veintiUNA mil líneas
------
Ya sé Excel, pero necesito más.
Re: género y número
Talves si, tendria un expert oen la materia verificar en las lineas
Te lo dejo acá
'Función programada inicialmente por Héctor Miguel (un gran experto en la materia)
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 = " bolivar" Else Moneda = " bolivares"
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 = " centimo" Else Fracs = " centimos"
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 MAYUSCULAS '
If Tipo = 3 Then EnLetras = StrConv(EnLetras, vbProperCase) '1ª letra MAYUSCULA '
If Tipo = 4 Then EnLetras = UCase(Left(EnLetras, 1)) & Mid(EnLetras, 2) 'SOLO la 1ª letra de 1ª palabra en mayuscula'
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
Voy buscand oel de 50 y algo de lineas para dejarlo aca tambien
Re: género y número
Mis 2 mensages anteriores , dicen; Enviado por visitante, estando yo registrado y conectado como JoaoM (mi nick)
Lo otro que quiero pedirte paco; si por algo haces alguna modificacion a alguna de los 2 macros o a las 2 PARA MEJORARLAS sin que aumente muchas lineas, sube dichas macros para bajarlas con tu enmienda, siempre y cuando sea para que sirvan para los 2 generos ¿seguro?
Gracias
Re: nueva versión
Dejo con 60 lineas
Function numletr(value)
If Int(value) = 1 Then
numletr = "un bolivar con " & Int(Round(((value - Int(value)) * 100))) & "/Centimos"
Else
numletr = Num2Text(value) & " Bolivares con " & Int(Round(((value - Int(value)) * 100))) & "/Centimos"
End If
End Function
Public Function Num2Text(ByVal value As Double) As String
fraccion = value - Int(value)
value = Int(value)
Select Case value
Case 0: Num2Text = "Cero"
Case 1: Num2Text = "Uno"
Case 2: Num2Text = "Dos"
Case 3: Num2Text = "Tres"
Case 4: Num2Text = "Cuatro"
Case 5: Num2Text = "Cinco"
Case 6: Num2Text = "Seis"
Case 7: Num2Text = "Siete"
Case 8: Num2Text = "Ocho"
Case 9: Num2Text = "Nueve"
Case 10: Num2Text = "Diez"
Case 11: Num2Text = "Once"
Case 12: Num2Text = "Doce"
Case 13: Num2Text = "Trec"
Case 14: Num2Text = "Catorce"
Case 15: Num2Text = "Quince"
Case Is < 20: Num2Text = "Dieci" & Num2Text(value - 10)
Case 20: Num2Text = "Veite"
Case Is < 30: Num2Text = "Veinti" & Num2Text(value - 20)
Case 30: Num2Text = "Treinta"
Case 40: Num2Text = "Cuarenta"
Case 50: Num2Text = "Cincuenta"
Case 60: Num2Text = "Sesenta"
Case 70: Num2Text = "Setenta"
Case 80: Num2Text = "Ochenta"
Case 90: Num2Text = "Noventa"
Case Is < 100: Num2Text = Num2Text(Int(value \ 10) * 10) & " y " & Num2Text(value Mod 10)
Case 100: Num2Text = "Cien"
Case Is < 200: Num2Text = "Ciento " & Num2Text(value - 100)
Case 200, 300, 400, 600, 800: Num2Text = Num2Text(Int(value \ 100)) & "cientos"
Case 500: Num2Text = "Quinientos"
Case 700: Num2Text = "Setecientos"
Case 900: Num2Text = "Novecientos"
Case Is < 1000: Num2Text = Num2Text(Int(value \ 100) * 100) & " " & Num2Text(value Mod 100)
Case 1000: Num2Text = "Mil"
Case Is < 2000: Num2Text = "Mil " & Num2Text(value Mod 1000)
Case Is < 1000000: Num2Text = Num2Text(Int(value \ 1000)) & " Mil"
If value Mod 1000 Then Num2Text = Num2Text & " " & Num2Text(value Mod 1000)
Case 1000000: Num2Text = "Un _Millón"
Case Is < 2000000: Num2Text = "Un Millón " & Num2Text(value Mod 1000000)
Case Is < 1000000000000#: Num2Text = Num2Text(Int(value / 1000000)) & " Millones"
If (value - Int(value / 1000000) * 1000000) Then Num2Text = Num2Text & " " & Num2Text(value - Int(value / 1000000) * 1000000)
Case 1000000000000#: Num2Text = "Un Billón"
Case Is < 2000000000000#: Num2Text = "Un Billón " & Num2Text(value - Int(value / 1000000000000#) * 1000000000000#)
Case Else: Num2Text = Num2Text(Int(value / 1000000000000#)) & " Billones"
If (value - Int(value / 1000000000000#) * 1000000000000#) Then Num2Text = Num2Text & " " & Num2Text(value - Int(value / 1000000000000#) * 1000000000000#)
End Select
End Function
Nùmero con letra dollres
Encontre ese archivo y agradezco mucho el apoyo,
sin embargo, me pasa algo similar, como lo cambias a dolares, llevo el siguiente avance, pero ya me atore en la cuestion del seguimiento despues del nùmero 15, espero el apoyo que puedan brindarme, gracias.
End If: Dim Moneda As String, Fracs As String, Cents As Integer
If Int(Abs(Valor)) = 1 Then Moneda = " dollar" Else Moneda = " dollares"
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 = " cent" Else Fracs = " cents"
If Cents = 0 Then Fracs = "" Else Fracs = " with " & Letras(Cents) & Fracs
EnLetras = Letras(Int(Abs(Valor))) & Coin & 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) 'Primera 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 = "zero"
Case 1: Letras = "one"
Case 2: Letras = "two"
Case 3: Letras = "three"
Case 4: Letras = "four"
Case 5: Letras = "five"
Case 6: Letras = "six"
Case 7: Letras = "seven"
Case 8: Letras = "eight"
Case 9: Letras = "nine"
Case 10: Letras = "ten"
Case 11: Letras = "eleven"
Case 12: Letras = "twelve"
Case 13: Letras = "thirteen"
Case 14: Letras = "fourteen"
Case 15: Letras = "fifteen"
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"
no puedo insertar modulo bas
Hola Pacomegia, veo que realizaste un modulo para convertir numeros de moneda a texto, soy nuevo en esto, descargue tu modulo, tengo excel 2016 en una mac y no logro ver la opcion de insertar modulo, agradeceria tu ayuda. tambien me gustaria saber como convertir numeros de medidas a letras, ejemplo: 10,20 m ( diez metros con 20 centimetros). gracias y saludos
Esta función convierte
Esta función convierte números a texto (no sólo monedas). en los argumentos de la función le puedes indicar las unidades, pueden ser euros, dólares, pesos, soles, metros, horas, días, tomates o pimientos.
Son estos argumentos de la función:
Sobre cómo importar un módulo bas en VBA, una vez que abras el editor de Visual Basic es prácticamente igual en Mac que en Windows
http://www.necesitomas.com/archivo_bas_excel
Aunque parece que la versión 2016 para mac tiene algunas limitaciones en el editor de vba
Si no puedes importar el archivo directamente, puedes abrirlo con un editor de texto y copiar el contenido y pegarlo en módulo que crees a mano.
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
12.459.698 1048,896 15.970,452 101.596.789,45
789.985.620 75.986.100 200.000.000.000 147.125.8
0.458 1.489.369 47.896.300.000 25.000.500.000
como se escriben en letra estas cifras
Re: Convertir números a texto
¿qué número es éste: 147.125.8?
Para facilitar que Excel entienda los números, elimina los separadores de miles y deja sólo el separador decimal.
la función NumLetra convertirá en texto tus números sin problemas
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
en el caso de mexico como le hago para insertar una palabra antes de los decimales ej:
11,500.50
once mil quiniento pesos 50/100
saludos
Re: Convertir números a texto
mira el ejemplo en http://www.necesitomas.com/numeros_a_texto_excel#comment-394
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
Gracias por tu trabajo, me ha facilitado mucho las cosas.
Un saludo.
Re: Convertir números a texto
El Utilizar la preposicion UN en la oracion de "un mil docientos cincuenta" es lo correcto, otro ejemplo es "Un millon", no se dice "millon" solamente.
Re: Convertir números a texto
"un millón" es correcto. "Un mil", no.
NUMERO A LETRAS POR SEPARADO
Buenos dias Francisco, me puede ayudar con la inquietud que tengo de convertir nuemero a letras pero por separado . ejemplo: 011124 = CERO UNO UNO UNO DOS CUATRO . gracias de antemano por tu genealidad amigo . saludos desde El Salvador.
Re: Convertir números a texto
problema con valores por defecto
No te mando a paseo, porque con los fallos que detectas la función queda cada vez mejor. Gracias.
Parece que había un problema con el valor por defecto del argumento UD_un_uno_a
He creado una nueva versión 20071004 que soluciona este problema.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
me ahorró mucho tiempo
mi cabeza es un mar de dudas
Re: Convertir números a texto
Una macro con mucha utilidad.
He probado la versión 20071004 y funciona bien, salvo para números como :
1.000.000.000 = UN MIL EUROS
2.000.000.000 = DOS MIL EUROS
1.111.111.111 = UN MIL CIENTO ONCE MILLONES CIENTO ONCE MIL CIENTO ONCE EUROS. En este caso sobraría el UN del principio.
Espero que te ayude a mejorarla.
Saludos
nueva versión
He actualizado la versión de la función para corregir estos problemas que me comentas.
la versión actual es la de la fecha de hoy 20080316
Muchas gracias por tus comentarios
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
Coriano Soy un novato y no sé que hacer con el adjunto además me pregunto si los decimales pueden ir entre paréntesis Ejplo. 8.23 Ocho (23/100) los números que manejo van del 1 al 10 como máximo
Re: Convertir números a texto
si la función está en tu libro de macros personal, puede tener un aspecto parecido a este:
=CONCATENAR(PERSONAL.XLSB!NumLetra(A1);" (";TEXTO((A1-ENTERO(A1))*100;"00");"/100)")
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
Soy coriano nuevamente y he tenido el siguiente problema utilizo la fórmula concatenar que me indicaste pero con algunos números me sale la palabra "un" , por ejplo. 4.55 cuatro un 55/100; 8.9 ocho un 90/100. No necesito ninguna palabra entre el entero y los decimales. Los números que manejo van desde el 1 al 10 como máximo. Es para calificaciones de notas. Desde ya gracias.
Re: Convertir números a texto
Se trataba de un fallo con el redondeo, que cuando no se indicaban decimales no sumaba bien. En cualquier caso no te interesa redondear, sino utilizar la parte entera del número.
Para evitar este redondeo de la función, genera el texto sólo de la parte entera de la nota, mediante la función ENTERO
algo como esto.
=CONCATENAR(PERSONAL.XLSB!NumLetra(ENTERO(A1));" (";TEXTO((A1-ENTERO(A1))*100;"00");"/100)")
De todas formas, he puesto otra nueva versión corregida 20080401
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
Pacomegia eres un genio. Con tu ayuda resolví algo que no pensé que siendo un novato podía hacerlo. Muy agradecido quedó "IMPECABLE".
Re: Convertir números a texto
Cambio los parametros de decimales a 2 y no me los convierte a texto... solo convierte la parte entera.... que tengo que modificar mas?
Re: Convertir números a texto
Tampoco me aparece la unidad monetaria ni en concatenador de centimos...
Re: Convertir números a texto
¿me podrías decir unos ejemplos de algunos números para los que no funciona? para tratar de detectar el fallo.
¿no te funciona nunca o es sólo en algunos casos?
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
Hola!
Que tal?
Soy un poco nueva en ésto de introducir datos en el macro. He intentado acceder al archivo.bas pero no me deja. Metí en el VBàsic un código de esos de los que comentais en los foros pero me pasa los números a pesos (en letras, claro) y otro me lo pasaba pero en pesetas.
Así que me gustaría saber si alguien me podría pasar la fórmula buena para que me salga en euros, ya me entendeis, en masculino y que lea los decimales (los céntimos).
Os lo agradecería porque con tantos códigos y tantas fórmulas me estoy volviendo loca ;- |)
Muchísimas gracias.
Pleiades.
unos ejemplos
Hola
Pienso que en vez de explicarlo, tal vez sea más práctico que te adjunte un archivo con algunos ejemplos.
He puesto diferentes casos, con masculinos y femeninos. Si necesitas alguna aclaración no dudes en preguntar.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Buenisimo amigo muchas gracias
Buenisimo amigo muchas gracias
Gracias
Se que esto es un tema muy viejo, pero muchas gracias por el archivo lo necesitaba bastante, la mayoria de los que encontraba no servian para montos grandes
Re: Convertir números a texto
formula para cambiar cantidad de numero a letra
Re: Convertir números a texto
"Toc, toc" ... se puede?
Hola que tal!
Vale me estoy dando cuenta que soy bastante novatilla con el excel. He intentado buscar la manera de instalar las fórmulas que me pasaste en documentos que ya tenía hechos, lo he intentado en documentos nuevos, pero no hay manera, me sale un mensaje que dice " la función no tiene argumento".
Que hago para poder instalarlo en excel?
Muchas gracias por ayudarme.
Pleiades.
una pregunta
Depende del uso que vayan a tener los archivos en los que utilices esta función.
¿Son archivos que sólo utilizas tú en tu ordenador, o los vas a enviar a otras personas o los compartes en la red de una oficina?
En el primer caso, si sólo lo vas a utilizar tú, yo guardaría la función en el libro de macros personal, mira en este enlace más sobre cómo crear tu libro de macros personal
En el segundo caso, si varias personas van a utilizar el archivo en ordenadores diferentes, tal vez lo mejor sea que guardes la función en el propio archivo, para que esté disponible allá donde vaya el libro sin tener que obligar a terceras personas a cambiar sus configuración, ni a tener que añadir cosas a su libro de macros personal.
En cualquier caso, aquí te explico qué hacer con el archivo .bas que contiene la función
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a letras (Libro de macros personal)
Hola Paco Megia!
Mira, cuando tú lo explicas parece tan sumamente fácil que ya me había hecho ilusiones de que ya lo tenía, pero no sé lo que debo hacer mal porque no me sale la fórmula. He seguido los pasos para hacerlo en libro de macros personal:
Herramientas>Macros>grabar macro
en la lista desplegable: Libro de macros personal
Selecciono la opción Libro de macros personal.
Escribo una letra en la celda A1, he puesto la letra A Detengo la grabación de la macro pulsando el botón "detener gabación", que tiene una imagen de un cuadrado, como el stop de un reproductor de música.
Y ... ya está. Para ver la macro que he grabado, accedo al editor de Visual Basic, Alt F11 y en el explorador de proyectos aparece Personal.xls que es el libro de macros personal. Abro módulos. Ahí sale:
Sub Macro1()
'
' Macro1 Macro
' Macro grabada el 12/06/2008 por (mi nombre de usuario)
'
'
Range("A1").Select
ActiveCell.FormulaR1C1 = "A"
Range("A2").Select
End Sub
Pues con todo ésto, la formula no esta para poder pasar los números a letras.
Ya te dije que era un poco novata pero creo que no tiene que ser tan dificil, hay algo que me falta, seguro, verdad?
Me ayudarás por favor?
Muchas gracias por todo.
Pleiades.
Ahora importa el archivo bas
Ya tienes creado el libro de macros personal. Ahora sólo necesitas poner en él la función que convierte los números a letras.
para ello tendrás que importar al libro de macros personal el archivo .bas que contiene la función.
En el editor de visual Basic, sobre el libro personal.xls, selecciona importar archivo y selecciona el archivo numeroaletra.bas que has descargado de esta página
suerte.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
Vale!!!
Ya lo he hecho, y sabes qué?
FUNCIONA!!! Ahora solo falta que me lo pase a euros.
He marcado 123,56 y me pone ciento veinticuatro.
Yo quiero: ciento veintitres euros con cincuenta y seis céntimos.
Bueno, ya me estoy acercando, espero conseguirlo antes de que me salgan más canas! jejeje
A ver si ésto tiene solución Paco Megia!
Muchas gracias, eres un sol.
Pleiades.
argumentos
si no le pones argumentos a la función por defecto redondea sin decimales y no tiene unidades.
para que sea como dices, prueba lo siguiente:
NumLetra(celda_con_tu_número;2;"euros";"céntimos";"con")
el primer argumento es el número a convertir
el segundo argumento el número de decimales
y luego vienen las unidades para la prte entera y decimal y la palabra para unirlas
gracias por lo de sol, poca cosa al lado de las Péyades
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
Hola!
Que tal el fín de semana?
Bueno, todo lo que me has explicado ha salido bien, ahora solo falta que las letras me salgan en mayúsculas y todo será "perfecto". He intentado combinar la fórmula de pasar de "num. a letras" con la fórmula de "pasar a mayúsculas" pero nada, no me dejaba.
Que puedo hacer paco Megia?
Muchísimas gracias.
Pleiades.
MAYUSC
En teoría si pones todo el conjunto que pasa de número a letra como argumento de la función MAYUSC sí debería pasarlo todo a mayúsculas.
algo parecido a esto, bueno, con los argumentos que necesites
=MAYUSC(PERSONAL.XLSB!NumLetra(celda_con_tu_número;2;"euros";"centimos";"con"))
Prueba con esto y si no funciona coméntame qué error te aparece.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: MAYUSC
Hola disculapa la molestia esta funcion me seria de mucha ayuda pero no encuentro como aplicarla, es decir no se que cambiar en la macro para que tome los valores de donde lo necesito ni tampoco se como ejecutarla, el problema es que tampoco tengo mucho conocimiento acerca de las macros, si no es demasiada molestia me podrias enviar un archivo de que tendria que cambiar y como hacer para ejecutar la macro.
Desde ya muchisimas gracias
Re: MAYUSC
Aquí puedes descargar un archivo con unos ejemplos.
échale un vistazo y luego comentamos las dudas.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
FANTÁSTICO!!!
Va perfecto! Oye, muchísimas gracias por todo. Si tengo dudas sobre alguna otra cosa ya se donde acudir.
Muchas gracias por todo, eres un SOL !!!
Pleiades.
Re: Convertir números a texto
hola, estaba leyendo atentamente sus comentarios, pero les tengo una pregunta - desafío xd
miren el archivo adjunto,
como puede quedar correctamente escrito todo sin que diga las palabras como cabernicola xd ?
ojala puedan ayudarme, me he quebrado la cabeza en hacer lo que falta hacer
saludos
¿por qué no utilizas la función?
No inventes la pólvora.
¿por qué no utilizas la función NumLetra que puedes descargar en esta página?
a mí me ha ahorrado muchísimo tiempo y me ha evitado errores.
un saludo.
mi cabeza es un mar de dudas
Re: ¿por qué no utilizas la función?
gracias.
sé que es mas facil xq copio y pego, pero me encomendaron hacerla de esa forma, me entiendes ?
saludos
Puedes corregir esto porfa
Re: Puedes corregir esto porfa
para este caso puse en la función numletra un par de argumentos (los dos últimos argumentos de la función) que controlan en género tanto de la parte entera como de la parte decimal, estos argumentos son;
UD_un_uno_a (para la parte entera) y Fracc_un_uno_a (para la parte fraccionaria)
Si este argumento se omite, o es igual a 1, devuelve "un"
Si es igual a 2, devuelve "uno"
Si es igual a 3, devuelve "una"
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
Pacomegia.... un fenómeno!!! un consulta.
En los valores por defecto de la fórmula no se pueden colocar valores tales como: 2 decimales, "pesos"; "centavos; "con"; 1, 1 y 1 de manera que si solo seleccionamos la celda de origen el resto de las variables la tome directamente de los valores por defecto. Gracias por la respuesta.
Y yo pensé que sabía algo de Excel!!!
Re: Convertir números a texto
Sí, sólo tienes que modificar ligeramente el código, que para eso lo he dejado sin proteger.
Entra en el editor de Visual Basic ( [Alt] [F11] )
después de una serie de líneas comentadas están las instrucciones que establecen los valores por defecto.
'Valores por defecto:
If IsMissing(NumDecimales) Then NumDecimales = 0
If IsMissing(Unidad) Then Unidad = ""
If IsMissing(UdFracc) Then UdFracc = ""
If IsMissing(Conexión) Then Conexión = ""
If IsMissing(Cero) Then Cero = False
If UD_un_uno_a = 0 Then UD_un_uno_a = 1
If Frac_un_uno_a = 0 Then Frac_un_uno_a = 1
cambia estos valores por los que necesites, por ejemplo:
'Valores por defecto:
If IsMissing(NumDecimales) Then NumDecimales = 2
If IsMissing(Unidad) Then Unidad = "Pesos"
If IsMissing(UdFracc) Then UdFracc = "centavos"
If IsMissing(Conexión) Then Conexión = "con"
If IsMissing(Cero) Then Cero = 1
If UD_un_uno_a = 0 Then UD_un_uno_a = 1
If Frac_un_uno_a = 0 Then Frac_un_uno_a = 1
Te recomiendo que en una línea comentada indiques que has cambiado los valores por defecto, por si en el futuro vuelves a entrar en el código recuerdes los cambios hechos ahora.
un saludo.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
Hola, Pacomegia. He cambiado los valores que dices pero al introducir la fórmula no toma por defecto esos valores, es decir, si solo uso la celda de referencia; la función introducida queda =PERSONAL.XLS!NumLetra(B3) al dar enter, en lugar de =PERSONAL.XLS!NumLetra(B3;2;"pesos";"centavos";"con";1;1;1) que es con la opción de rellenar manualmente todos los campos de la función.
pues llevas razón
pues llevas toda la razón del mundo.
Vamos a probar otra cosa:
vamos a establecer los valores por defecto a la vez que se definene los argumentos de la función:
así quedaría de esta manera:
Public Function NumLetra(Número As Double, Optional NumDecimales As Integer = 2, _
Optional Unidad As String = "pesos", Optional UdFracc As String = "centavos", _
Optional Conexión As String = "con", Optional Cero As Boolean = False, _
Optional UD_un_uno_a As Integer = 1, Optional Frac_un_uno_a As Integer = 1)
Parece que para variables tipo integer Excel sí pasa un argumento, y éste es cero, con lo que la función IsMissing no detecta que falta el argumento. Con las cadenas de texto tampoco es que falte el argumento, sino que se trataría de una cadena en blanco "".
Gracias por detectar este problema con los valores por defecto. Lo corregiré en el módulo y lo probaré en diferentes versiones, luego subiré una nueva versión a la web.
De momento adjunto un archivo con la función que "funciona" bien para pesos y centavos.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
Hola alguien me puede ayudar con algo muy sencillo. Necesito una función para convertir número a textos, estoy haciendo varias planillas de calificaciones. La nota va desde el número 1 a 5 y al lado debe ir escrito en texto. Ej. 1 uno
Me podrían enviar paso a paso porque no entiendo bien programación.
Desde ya muchas gracias.
Re: Convertir números a texto
Aquí hay un archivo con unos ejemplos
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
hola. agradesco mucho que compartan su conocimiento. y espero no sea mucho pedir..... se podra pones 45/100 para 45 centavos?? hablo en el caso de pesos.
decimales como fracción
en este comentario puedes ver un ejemplo de cómo poner los decimales como 45/100
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: decimales como fracción
Gracias. Ya habia probado con esa respuesta solo que me marca error en la formula :-(, y la verdad en excel no me se vomer mucho. el error se queda despues de 'texto1' (marcado en negrita)...... que sera?? mil gracias
Re: decimales como fracción
comprueba los paréntesis.
prueba por un lado cada parte de la fórmula, primero pasar a letra la parte entera y en otra celda la parte decimal. Cuando funciones bien es el momento de unirlas con la función CONCATENAR
parte entera (suponiendo que el número está en la celda A1 y que la función está en el libro de macros personal):
=PERSONAL.XLSB!NumLetra(ENTERO(A1)
con la parte decimal del número:
=CONCATENAR(TEXTO((A1-ENTERO(A1))*100;"00"); " / 100")
con todo a la vez:
=CONCATENAR(PERSONAL.XLSB!NumLetra(ENTERO(A1));" (";TEXTO((A1-ENTERO(A1))*100;"00");"/100)")
Prueba con esto a ver si encontramos dónde está el problema.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: decimales como fracción
GRACIAS; ya logré hacerlo para formato de pesos méxicanos!
=MAYUSC("(SON " & PERSONAL.XLSB!NumLetra(A1,,"Pesos ") & TEXTO((A1-TRUNCAR(A1)*100),"00") & "/100 M.N. )")
EXCEL-ENTUSIASTIC!
CARPE DIEM!
Re: Convertir números a texto
HOOLA ME FUNCIONO DE MARAVILLA ESTA NUEVA, PERO MEOCURRIO ALGO EXTRAÑO, TE PLATICO .....FORMULE MIS FORMATO REQUERIDOS, Y TODO FUE UN EXITO CON EL MACROS, PERO AL PASAR A OTRA CPU EL ARCHIVO REALIZADO Y MODIFICAR LA CANTIDAD, NO LA MODIFICA, Y ME MARCA UN ERROR......GULP... GULP A QUE SE DEBE?.......HAY ALGO ADICIONAL QUE DEBA HACER? PARA QUE FUNCIONE EN OTRA COMPUTADORA?............GRACIAS
FECILIDADES POR LA PAGINA ES DE GRAN UTILIDAD...
Re: Convertir números a texto
¿dónde guardaste la función?
Si está en el libro de macros personal sólo funciona en el mismo equipo.
Si están en el libro que enviaste a la otra máquina, debería funcionar, pero las macros deben estar habilitadas para que funcione. Revisa el nivel de seguridad por si acaso.
Después de probar esto coméntanos si se resolvió el problema.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
HOLA A TODOS, POR FAVOR TENDRAN EL FILE DE EXCEL ME LO PODRAN PASAR O DE DOEN LO PUEDO BAJAR GRACIAS.
YO LO NECESITO DE LA SIGUINET MANERA:
1142.63 = UN MIL CIENTO CUARENTA Y DOS CON 63/100 DOLARES AMERICANOS
Ó
1142.63 = UN MIL CIENTO CUARENTA Y DOS CON 63/100 NUEVOS SOLES
SALUDOS
MIL GRACIAS
MICKY.
LIMA-PERU
Re: Convertir números a texto
el tema de los 63/100 ya estaba comentado en algún envío anterior;
se debe conseguir separando la parte entera, que es la que se convierte a texto, de la parte decimal a la que se le da el formato de fracción de 100
por ejemplo (suponiendo que el número está en la celda A5):
=CONCATENAR(PERSONAL.XLSB!NumLetra(ENTERO(A5);;;;;;;;VERDADERO);" con ";TEXTO((A5-ENTERO(A5))*100;"00");"/100 Nuevos Soles")
para conseguir que ponga "un mil", he incluído un nuevo parámetro en la función, lo que supone una nueva versión del archivo 20081202, para poder elegir si queremos que aparezca "un mil cuatrocientos" o "mil cuatrocientos".
Adjunto un archivo de ejemplo.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
centimos 61/100
Paco, no se si eta bien, pero M resulta cierto
colocando 61/centimos.
ahora sobre lo un mil, si seria mil y no un mil.
otra cosa es el un mil y otra es dos mil.
siendo la cifra de (un mil quinientos) se ve mejor en cualquier parte mil quinientos, pero quitándolo la palabra un como se haría para dos mil? (2500) dos mil quinientos).
Lo cierto es que si me coloca mil quinientos, pero no dos mil quinientos
Re: Convertir números a texto
Hola pacomegia mucho gusto, quiero comentarte que he seguido paso a paso este blog, y te comento que todo me ha funcionado a la perfección, el problema que he tenido es que grabo el archivo, me salgo y cuando lo quiero volver a usar me da error en la formula Y me indica que la formula tiene texto no reconocido y lo he puesto tal y como lo has indicado, será que me puedes ayudar a resolver este problemita?? Gracias y saludos.
Activar macros
Tiene toda la pinta de que las macros del libro están deshabilitadas.
Comprueba el nivel de seguridad.
En la versión 2007, la extensión del archivo debe ser .xlsm para indicar que el libro contiene macros.
Aunque se trate de una función personalizada, Excel no distingue entre esto y una macro, todo lo que sea programado en vba lo considera con el nombre genérico de "macros" y se le aplican las condiciones de seguridad.
prueba con esto y me comentas si ha funcionado, o si por el contrario el problema es otro y continúa sin funcionar.
un saludo.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
hola como estas, duda cuando guardaste la macros la guardaste en un excel en el cual isiste una prueba para hacerlo funcionar. ¿ al guardar e intentar utilizarlo lo isite en el mismo doc. excel o abriste uno nuevo?
te explico la funcion solo se puede utilizar en el archivo excel donde proyectaste la funcion si quieres hacerlo en un nuevo doc.. debes realizar el mismo procedimiento. en cada uno de ellos. bueno aqui les dejo una funcion en MN . para uqien la quiera compartir.
se expresa asi
5.000 = cinco mil pesos.
tal cual y lo lees. eliminando el molesto "son:" que aparese tipicamente a un principio
FUNCION:
Re: Convertir números a texto
yo copio la furmula en la macro pero como hago para que salga las letras porque me sale #¿nombre? les agradezco se urgente muchas gracias
asistente para fórmula
Depende de dónde hayas puesto el código de la función, en qué libro, la llamada a la función puede necesitar también el nombre del libro.
Para hacer una referencia correcta a la fórmula, utiliza el asistente para fórmulas (el botón fx que aparece junto a la barra de fórmulas) y crea una fórmula de prueba
Busca la función dentro de la categoría definidas por el usuario
Fíjate cómo se ha escrito la fórmula en la celda.
por ejemplo, si la función está en el libro de macros personal, en la versión 2007 tendrá este aspecto:
=PERSONAL.XLSB!NumLetra(... )
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
Tienes toda la razón, los niveles de seguridad indican que han desabilitado los macros, me fui a opciones, los active y ya funcionan, no sabes cuanto te agradezco la ayuda porque esto me ha servido muchísimo, tengo algunas otras dudas por allí, pero tal vez más adelante te estaré molestando. De nuevo Gracias. Saludos.
Re: Convertir números a texto
No es ninguna molestia
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
: Convertir números a texto POR FAVOR
Hola, les agradecería si pudieran eneivrme el archivo para copnvertir numeros a texto con la denominación de moneda mexicana. Por ejemplo $1,567.98 = (un mil quinientos sesenta y siete pesos 98/100)
SI no es mucho pedir ojala venga con las instrucciones.Salvaran una vida.
Gracias
SAludos
Alexx
Los Mochis, Sinaloa, México
Re: : Convertir números a texto POR FAVOR
En este envío tienes un ejemplo
En esta misma página tienes más ejemplos e instrucciones.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
Re: Convertir números a texto
Mil gracias por esta macro...de verdad me ha sido de gran ayuda, tenía un rato intentando hacerlo manual.
Re: Convertir números a texto
Acabo de utilizar la función NumeroaLetra de tu página web para un presupuesto de una oferta técnica y me ha venido estupendamente.
Gracias por hacernos las cosas más fáciles.
Javier
Convertir números a texto
que tal, buenas tardes, ya probe el codigo y si funciona muy bien, lo unico es.... si yo quiero que tambien la parte decimal se transcriba, porque lo voy a ocupar no para cantidades refiriendose a dinero, sino a cantidades de areas de terreno, como puedo modificar la formula, mas o menos le entendi y ya pone metros en lugar de pesos y centimetoros tambien, pero no puedo hacer que me cambien las decimales a texto... me podrias ayudar??? mil gracias y excelente trabajo.
para eso está el argumentoUdFracc
para eso está el argumento de la unidad fraccionaria que he llamado UdFracc
la función podría quedar algo así:
=NumLetra( CeldaConTuValor ; 2 ; "metros" ; "centímetros" ; "con")
por ejemplo, para un valor de 45.876245 mostraría lo siguiente:
cuarenta y cinco metros con ochenta y ocho centímetros
(redondea a dos decimales)
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: para eso está el argumentoUdFracc
Lo primero agradecerte el compartir el codigo, funciona perfectamente, quisiera saber si se puede escribir el numero entre parentesis despues del texto, es decir, CINCO MIL DOSCIENTOS EUROS CON DIEZ CENTIMOS (5.200,10 €), gracias nuevamente.
concatenar
esto es como cualquier otra función de Excel, puedes combinar las que necesites en una fórmula más complicada dentro de una celda.
para esto que propones, puedes emplear la función CONCATENAR, como primer argumento la función que convierte a letras, y luego añades los argumentos que necesites para espacios, paréntesis, símbolo de euro, etc.
También dispones de la función TEXTO que convierte un número en un texto con un formato especificado.
podría quedar todo parecido a esto (suponiendo que el número está en la celda A1, y que la función está en el libro de macros personal):
=CONCATENAR(PERSONAL.XLSB!NumLetra(A1;2;"euros";"céntimos";"con");" ";TEXTO(A1;"(# ###.##€)"))
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: concatenar
Muchas gracias, funciona perfectamente. Tengo otra cosilla, si la casilla que quiero transformar a texto tiene como numero 0,00 €, me deja la casilla de texto en blanco, no escribe nada. Esto ya es rizar el rizo, ante todo darte las gracias por este estupendo codigo.
Re: concatenar
la función NumLetra tiene un argumento llamado "cero" que permite elegir si se quiere mostrar el texto cero o no. pon este argumento igual a verdadero (o a uno).
respecto del número, prueba con un formato # ##0.00 para que ponga los ceros.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: concatenar
Muchas gracias pacomegia funciona todo bien
Re: concatenar
Que tal.. Necesito tener así, es con promedios:
8,04
OCHO CON CERO CUATRO
Espero su ayuda..
GRACIAS.!!!!
Re: concatenar
Duda: que ventaja supone usar la función CONCATENAR, en vez de el símbolo "&"?
A mi me es más fácil usar &, pero creo que la función pueda tener alguna ventaja!
Gracias
EXCEL-ENTUSIASTIC!
CARPE DIEM!
Re: concatenar
Sinceramente yo también suelo utilizar el símbolo &
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
mira el comentario sobre concatenar
mira el comentario anterior sobre la función CONCATENAR
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: mira el comentario sobre concatenar
gracias y mil veces gracias llevo meses tratando de conseguir convertir los numeros en letras. graciassssssssssssss
Re: Gema
Hola , ante todo muchisimas gracias, solo me falta saber como hacer para que las letras me salgan en mayusculas. Muchas Gracias.
Función MAYUSC
utiliza la función MAYUSC para convertirlo todo a mayúsculas.
aquí tienes un ejemplo
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
Sr. Megia: Gracias por su trabajo, por fin he conseguido pasar números a letras, despues de mucho buscar, pero he encontrado un problemilla, ¡cómo no! dirian algunos que me conocen.
¿Como hacer para cuando el texto es demasiado largo, lo ponga en dos lineas? ocurre cuando la cantidad es grande o hay que ponerla al final de la linea. Me estoy refiriendo en Excell.
Espero su ayuda y le agradezco la paciencia con tantos informáticos desinfomados.
Saludos. Vicente
Re: Convertir números a texto
para mostrar textos en varias líneas, yo emplearía la opción de "Ajustar Texto"
Se encuentra dentro de las opciones de formato de celda, en la pestaña Alineación
Esto ajusta el texto al ancho de la celda, aumentando el alto de la fila (así que necesitarás una celda ancha)
lo tienes en la pestaña inicio
y también en el formato de celdas (menú contextual de la celda)
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
Sr. Megia, Saludos:
He probado su sugerencia, resulta, pero en una sola celda, si ampliamos el Ancho de Columna en esa celda entonces de deshace el formato del documento, sería bueno poder aplicar el ajuste de texto a varias columnas a la vez, como si de una sola celda se tratara, ¿Es posible?
La anterior pregunta creia que no se había enviado, grata sorpresa para mi, al ver su contestación. Feliz día desde ARAGON.
combinar celdas
Es posible combinar varias celdas para que se aplique el formato como a una sola.
para ello, se seleccionan las celdas que se quieren combinar y luego en propiedades de celda>alineación se marca la opción Combinar.
También hay unos botones en la cinta de opciones para combinar y descombinar celdas
Respecto de los comentarios anónimos, tardan un poco en publicarse porque los apruebo manualmente para prevenir el spam.
Los usuarios registrados sí publican inmediatamente sus comentarios, y pueden crear temas nuevos en el foro.
además, pueden recibir un aviso por email cuando alguien contesta a sus preguntas.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: combinar celdas
Sr. Megia: Soy Vicente de nuevo.
Me temo que no puedo aprovechar su solución, porque mi Excell es 2003 y sus imagenes son de 2007 por lo que he podido ver en un portatil que tiene mi hija, me resisto a actualizar la versión, por que cambian bastantes cosas de una version a otra de Excell, en fin, sino queda otro remedio y hay que actualizarse, lo haremos.
Un abrazo. Vicente
en 2003 es igual
Vicente: en la versión 2003 es igual.
Sólo hay que seleccionar las celdas a combinar, y luego en el menú contextual (el del botón secundario del ratón) elegir la opción
Formato de Celdas. Ahí también está la opción de combinar celdas
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
Re: en 2003 es igual
Sr.Megia: Por fin lo consegui, solo me faltaba marcar la opción de combinar celdas.
Muchisimas gracias, cada vez que entre en Excell me acordare de Ud.
Un abrazo. Vicente.
Re: Convertir números a texto
¡Ay... cómo somos los seres humanos...!
No habiendo suficientes versiones de esta función, ahí va la mía, que he depurado un poquito hasta el extremo, con lo que he ido aprendiendo... muy bonito y muy salado. No cuelgo el enlace a mi página porque no me parece muy profesional, pero es cuestión de hacer una búsqueda en el GranHermanool y supongo que aparecerá en breve.
(OJO! Sólo admite hasta 3 decimales en la parte fraccionaria)
Y en segundicia (la primicia la dejé en MrExcel forum...), también la dejo en Inglés (torticero, pero en inglés, lo he traducido a cañón, sin esmerarme mucho... y sin revisar, lo dejo por si a alguno le interesa).
[Edición: No podía ser tan fácil... la versión Inglesa escribe en inglés con la denominación castellana: 1 Billón = 10^12... lo que ellos llaman Trillion. Corrigido y reposteado. Y ya de paso, añadido Millardo a la versión Española, por eso de adaptarse a los dictados de la RAE].
Option Explicit
'APIs para obtener información del PC
Public Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long,ByVal lpLCData As String, ByVal cchData As Long) As Long
Public Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long,ByVal lpLCData As String) As Long
'APIs para obtener datos de usuario y PC
'Uso de las llamadas a API para obtener la configuración regional del sistema
'Llamada a API GetLocalInfo
Public Const LOCALE_USER_DEFAULT = &H400 'separador decimal para números
Public Const LOCALE_SCURRENCY = &H14 'símbolo de moneda local
Public Const LOCALE_SINTLSYMBOL = &H15 'intl símbolo monetario
Public Const LOCALE_SMONDECIMALSEP = &H16 'separador decimal monetario
Public Const LOCALE_SMONTHOUSANDSEP = &H17 'separador millar monetario
Public Const LOCALE_SMONGROUPING = &H18 'Separador de listas monetario o ¿Número de grupos en grupo?
Public Const LOCALE_ICURRDIGITS = &H19 '# digitos moneda local o ¿Número de grupos en grupo?
Public Function GetValueCR(sCte As Integer) As String
Dim sBuffer As String, lBufferLen As Long
lBufferLen = 50
sBuffer = VBA.Space(lBufferLen)
If (GetLocaleInfo(LOCALE_USER_DEFAULT, sCte, sBuffer, lBufferLen)) Then
GetValueCR = VBA.Left(sBuffer, VBA.InStr(sBuffer, VBA.Chr(0)) - 1)
Else
GetValueCR = ""
End If
End Function
Public Function DeterminaConfiguracionEquipo(Parametro AsString) As StringSub Probando()
Dim strCadena As String
strCadena = fALetra(106.5, "") 'Cells(2, 1).Value)
VBA.MsgBox strCadena
End Sub
Public Function fALetra(ByRef dbValor As Double, _
Optional ByRef strMoneda As String = "EURO", _
Optional ByRef strFraccionMoneda AsString = "CÉNTIMO", _
Optional ByRef strConcatenador AsString = "CON", _
Optional ByRef intDecimales As Integer= 2) As String
Application.Volatile (False)
Dim strSeparadorMiles As String, strSeparadorDecimales AsString
Dim strAbsoluto As String, strDecimales As String
Dim lgAbsoluto As Long, dbDecimales As Double
Dim strCadena As String, strCadenaFinal As String
Dim Cientos As Long, Miles As Long, Millones As Long, Millardos As Long
Dim strCadenaBillones As String, strCadenaMillardos AsString, strCadenaMillones As String, _
strCadenaMiles As String, strCadenaCientos As String, strCadenaDecimales As String
Dim lgMultiplicador As Long
'Si se leen números (procedentes de fuentes externas) que no se corresponden con la configuración numérica del usuario
'strSeparadorMiles = GetValueCR(15)
'strSeparadorDecimales = GetValueCR(14)
'
If strMoneda = "" Then strMoneda = ""
If VBA.Len(VBA.CStr(dbValor)) = 1 Then 'Caso unidades
lgAbsoluto = VBA.Abs(VBA.Fix(dbValor))
Else
lgAbsoluto = VBA.Abs(VBA.Fix(dbValor))
End If
Cientos = (lgAbsoluto - 1000 * (lgAbsoluto \ 1000))
Miles = (lgAbsoluto - 1000000 * (lgAbsoluto \ 1000000)) \ 1000
Millones = (lgAbsoluto - 1000000000 * (lgAbsoluto \ 1000000000)) \ 1000000
Millardos = (lgAbsoluto - Millones * 1000000 - Miles * 1000 - Cientos) \ 1000000000
strCadenaCientos = ConvierteCifra(Cientos)
strCadenaCientos = VBA.IIf(VBA.Right(strCadenaCientos, 2) = "UN" And VBA.UCase(VBA.Right(strMoneda, 1)) = "A", _
strCadenaCientos & "A", strCadenaCientos)
strCadenaCientos = VBA.IIf(VBA.InStr(1, strCadenaCientos, "CIENTOS") > 0 And VBA.UCase(VBA.Right(strMoneda, 1)) = "A", _
VBA.Replace(strCadenaCientos, "CIENTOS", "CIENTAS"), strCadenaCientos)
strCadenaMiles = ConvierteCifra(Miles)
strCadenaMillones = ConvierteCifra(Millones)
strCadenaMillardos = ConvierteCifra(Millardos)
If VBA.Abs(dbValor) > 999999999999.99 Then
If VBA.Trim(strCadenaBillones) = "UN" Then
strCadena = strCadenaBillones & " BILLóN"
Else
strCadena = strCadenaBillones & " BILLONES"
End If
End If
If VBA.Abs(dbValor) > 999999999.99 Then
strCadena = VBA.IIf(VBA.Trim(strCadenaMillardos) = "UN", _
strCadena & " MILLARDO", strCadena & " " & strCadenaMillardos & " MILLARDOS")
End If
If VBA.Abs(dbValor) > 999999.99 Then
strCadena = VBA.IIf(VBA.Trim(strCadenaMillones) = "UN", _
strCadenaMillones & " MILLÓN", strCadena & " " & strCadenaMillones & " MILLONES")
End If
If VBA.Abs(dbValor) > 999.99 Then
If VBA.Trim(strCadenaMiles) = "UN" Then
strCadena = strCadena & " MIL"
ElseIf VBA.Trim(strCadenaMiles) = "" Then
strCadena = strCadena
Else
strCadena = strCadena & " " & strCadenaMiles & " MIL"
End If
End If
intDecimales = VBA.IIf(intDecimales > 3, 3, intDecimales)
lgMultiplicador = VBA.Val(1 & VBA.String(intDecimales, "0"))
dbDecimales = (VBA.Abs(dbValor) - VBA.Abs(Fix(dbValor))) * lgMultiplicador
If strMoneda <> "" Then
If VBA.Abs(Int(dbValor)) = "0" Then
strCadena = "CERO " & VBA.UCase(strMoneda) & "S"
ElseIf Abs(Int(dbValor)) = "1" Then
strCadena = VBA.IIf(VBA.UCase(VBA.Right(strMoneda, 1)) = "A", "UNA", "UN")
strCadena = strCadena & " " & VBA.UCase(strMoneda)
Else
strCadena = strCadena & " " & strCadenaCientos & " " & VBA.UCase(strMoneda) & "S"
End If
Select Case VBA.Round((dbDecimales), 0)
Case Is = 1 'Una fracción monetaria
strCadena = strCadena & " " & strConcatenador & " " & _
VBA.IIf(VBA.UCase(VBA.Right(strFraccionMoneda, 1)) = "A", "UNA", "UN") & " " & strFraccionMoneda
Case Is > 1 'Hay fracción monetaria
strCadenaDecimales = ConvierteCifra(VBA.Round((dbDecimales), 0))
strCadenaDecimales = VBA.IIf(VBA.Right(strCadenaDecimales, 2) = "UN" And VBA.UCase(VBA.Right(strFraccionMoneda, 1)) = "A", _
strCadenaDecimales & "A", strCadenaDecimales)
strCadenaDecimales = VBA.IIf(VBA.InStr(1, strCadenaDecimales, "CIENTOS") > 0 And VBA.UCase(VBA.Right(strMoneda, 1)) = "A", _
VBA.Replace(strCadenaDecimales, "CIENTOS", "CIENTAS"), strCadenaDecimales)
strCadena = strCadena & " " & strConcatenador & " " & strCadenaDecimales & " " & strFraccionMoneda & "S"
End Select
Else
If Abs(Int(dbValor)) = "0" Then
strCadena = ""
ElseIf Abs(Int(dbValor)) = "1" Then
strCadena = "UNO"
Else
strCadena = strCadena & " " & strCadenaCientos
End If
Select Case VBA.Round((dbDecimales), 0)
Case Is = 1
strCadena = strCadena & " " & strConcatenador & " " & " UNO"
Case Is > 1
strCadenaDecimales = ConvierteCifra(VBA.Round((dbDecimales), 0))
strCadena = strCadena & " " & strConcatenador & " " & strCadenaDecimales
End Select
End If
strCadenaFinal = VBA.Trim(strCadena)
If dbValor < 0 Then strCadenaFinal = "MENOS " & strCadenaFinal
fALetra = VBA.Replace(strCadenaFinal, " ", " ")
End Function
Public Function ConvierteCifra(ByVal lgValor As Long) AsString
Dim strCentena As String, strDecena As String, strUnidadAs String
Dim matrizUnidades As Variant
Dim matrizDecena As Variant
Dim matrizDecenas As Variant
Dim matrizDecenasY As Variant
Dim matrizCentena As Variant
matrizUnidades = Array("", "UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE")
matrizDecena = Array("", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE")
matrizDecenas = Array("", "DIEZ", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA", "SETENTA", "OCHENTA", "NOVENTA")
matrizDecenasY = Array("", "", "VEINTI", "TREINTA Y ", "CUARENTA Y ", "CINCUENTA Y ", _
"SESENTA Y ", "SETENTA Y ", "OCHENTA Y ", "NOVENTA Y ")
matrizCentena = Array("", "", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", "QUINIENTOS", _
"SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS")
Dim Unidad As Integer, Decena As Integer, Centena AsInteger
Centena = lgValor \ 100
Decena = (lgValor - Centena * 100) \ 10
Unidad = (lgValor - Centena * 100 - Decena * 10)
strUnidad = VBA.IIf(Decena <> 1, matrizUnidades(Unidad), matrizDecena(Unidad))
strDecena = VBA.IIf(Decena > 1, matrizDecena(Unidad), strDecena)
strDecena = VBA.IIf(Unidad > 0, matrizDecenasY(Decena), matrizDecenas(Decena))
strCentena = VBA.IIf(Centena = 1, "CIEN", matrizCentena(Centena))
strCentena = VBA.IIf(Centena = 1 And (Decena + Unidad > 0), "CIENTO", matrizCentena(Centena))
ConvierteCifra = strCentena & " " & strDecena & strUnidad
End Function
'....... EN LA LENGUA DE LA PÉRFIDA ALBIÓN ...................
'La función en versión inglesa:
Public Function fNumbersToText(ByRef dbValue As Double, _
Optional ByRef strCurrency As String = "EURO", _
Optional ByRef strFractionCurrency AsString = "CENTS", _
Optional ByRef strConcatenator AsString = "WITH", _
Optional ByRef intDecimals As Integer= 2) As String
Application.Volatile (False)
Dim strAbsolut As String, strDecimals As String
Dim lgAbsolut As Long, dbDecimals As Double
Dim strStringText As String, strFinalString As String
Dim Hundreds As Long, Thousands As Long, Millions As Long, Billions As Long
Dim strStringTextBillones As String, strStringTextBillionsAs String, strStringTextMillions As String, _
strStringTextThousands As String, strStringTextHundreds As String, strStringTextDecimals AsString
Dim lgMultiply As Long
If strCurrency = "" Then strCurrency = ""
If VBA.Len(VBA.CStr(dbValue)) = 1 Then 'Unities
lgAbsolut = VBA.Abs(VBA.Fix(dbValue))
Else
lgAbsolut = VBA.Abs(VBA.Fix(dbValue))
End If
Hundreds = (lgAbsolut - 1000 * (lgAbsolut \ 1000))
Thousands = (lgAbsolut - 1000000 * (lgAbsolut \ 1000000)) \ 1000
Millions = (lgAbsolut - 1000000000 * (lgAbsolut \ 1000000000)) \ 1000000
Billions = (lgAbsolut - Millions * 1000000 - Thousands * 1000 - Hundreds) \ 1000000000
strStringTextHundreds = fConvertQuantity(Hundreds)
strStringTextThousands = fConvertQuantity(Thousands)
strStringTextMillions = fConvertQuantity(Millions)
strStringTextBillions = fConvertQuantity(Billions)
If VBA.Abs(dbValue) > 999999999999.99 Then
If VBA.Trim(strStringTextBillones) = "UN" Then
strStringText = strStringTextBillones & " TRILLION"
Else
strStringText = strStringTextBillones & " TRILLIONS"
End If
End If
If VBA.Abs(dbValue) > 999999999.99 Then
strStringText = VBA.IIf(VBA.Trim(strStringTextBillions) = "ONE", _
strStringText & " BILLION", strStringText & " " & strStringTextBillions & " BILLIONS")
End If
If VBA.Abs(dbValue) > 999999.99 Then
strStringText = VBA.IIf(VBA.Trim(strStringTextMillions) = "ONE", _
strStringTextMillions & " MILLION", strStringText & " " & strStringTextMillions & " MILLIONS")
End If
If VBA.Abs(dbValue) > 999.99 Then
If VBA.Trim(strStringTextThousands) = "ONE" Then
strStringText = strStringText & " THOUSAND"
ElseIf VBA.Trim(strStringTextThousands) = "" Then
strStringText = strStringText
Else
strStringText = strStringText & " " & strStringTextThousands & " THOUSAND"
End If
End If
intDecimals = VBA.IIf(intDecimals > 3, 3, intDecimals)
lgMultiply = VBA.Val(1 & VBA.String(intDecimals, "0"))
dbDecimals = (VBA.Abs(dbValue) - VBA.Abs(Fix(dbValue))) * lgMultiply
If strCurrency <> "" Then
If VBA.Abs(Int(dbValue)) = "0" Then
strStringText = "ZERO" & " " & VBA.UCase(strCurrency) & "S"
ElseIf Abs(Int(dbValue)) = "1" Then
strStringText = "ONE" & " " & VBA.UCase(strCurrency)
Else
strStringText = strStringText & " " & strStringTextHundreds & " " & VBA.UCase(strCurrency) & "S"
End If
Select Case VBA.Round((dbDecimals), 0)
Case Is = 1 'One monetary fraction
strStringText = strStringText & " " & strConcatenator & " " & "ONE" & " " & strFractionCurrency
Case Is > 1 'More than one monetary fraction
strStringTextDecimals = fConvertQuantity(VBA.Round((dbDecimals), 0))
strStringText = strStringText & " " & strConcatenator & " " & strStringTextDecimals & " " & strFractionCurrency & "S"
End Select
Else
If Abs(Int(dbValue)) = "0" Then
strStringText = ""
ElseIf Abs(Int(dbValue)) = "1" Then
strStringText = "ONE"
Else
strStringText = strStringText & " " & strStringTextHundreds
End If
Select Case VBA.Round((dbDecimals), 0)
Case Is = 1
strStringText = strStringText & " " & strConcatenator & " " & " ONE"
Case Is > 1
strStringTextDecimals = fConvertQuantity(VBA.Round((dbDecimals), 0))
strStringText = strStringText & " " & strConcatenator & " " & strStringTextDecimals
End Select
End If
strFinalString = VBA.Trim(strStringText)
If dbValue < 0 Then strFinalString = "MINUS " & strFinalString
fNumbersToText = VBA.Replace(strFinalString, " ", " ")
End Function
Public Function fConvertQuantity(ByVal lgValue As Long) AsString
Dim strHundreds As String, strTens As String, strUnity AsString
Dim matrizUnityes As Variant
Dim matrizTens As Variant
Dim matrizTenss As Variant
Dim matrizTenssY As Variant
Dim matrizHundreds As Variant
matrizUnityes = Array("", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE")
matrizTens = Array("", "ELEVEN", "TWELVE", "THIRTEEN", "FOURTEEN", "FIFTEEN", "SIXTEEN", "SEVENTEEN", "EIGHTEEN", "NINETEEN")
matrizTenss = Array("", "TEN", "TWENTY", "THIRTY", "FOURTY", "FIFTY", "SIXTY", "SEVENTY", "EIGHTY", "NINETY")
matrizTenssY = Array("", "", "TWENTY ", "THIRTY ", "FOURTY ", "FIFTY ", "SIXTY ", "SEVENTY ", "EIGHTY ", "NINETY ")
matrizHundreds = Array("", "ONE HUNDRED", "TWO HUNDREDS", "THREE HUNDREDS", "FOUR HUNDREDS", "FIVE HUNDREDS", _
"SIX HUNDREDS", "SEVEN HUNDREDS", "EIGHT HUNDREDS", "NINE HUNDREDS")
Dim Unity As Integer, Tens As Integer, Hundreds As Integer
Hundreds = lgValue \ 100
Tens = (lgValue - Hundreds * 100) \ 10
Unity = (lgValue - Hundreds * 100 - Tens * 10)
strUnity = VBA.IIf(Tens <> 1, matrizUnityes(Unity), matrizTens(Unity))
strTens = VBA.IIf(Tens > 1, matrizTens(Unity), strTens)
strTens = VBA.IIf(Unity > 0, matrizTenssY(Tens), matrizTenss(Tens))
strHundreds = matrizHundreds(Hundreds)
fConvertQuantity = strHundreds & " " & strTens & strUnity
End Function
-----------------------------------------------------------------
www.TrazEX.com (soluciones sobre Excel)
Re: Convertir números a texto
Ya no fozo más... que debes tener el correo saturadito XDD
-----------------------------------------------------------------
www.TrazEX.com (soluciones sobre Excel)
Re: Convertir números a texto
Límite de la función ±9.999.999.999,999 (casi 10 millardos -negativos o positivos-, con tres decimales en la precisión decimal)
Adjunto un módulo que se puede importar con la última corrección (1 Millardo, 1 Millón, que se expresan con el "UN" delante)...
Un día entero depurando código.
[Por implementar:
> que en la parte decimal se puedan definir más cifras
> que se pueda superar el límite de los millardos en la cifra a convertir]
Propicios días
-----------------------------------------------------------------
www.TrazEX.com (soluciones sobre Excel)
Re: Convertir números a texto
gracias Xoan niguen por tu versión de los hechos.
un saludo.
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
¡Hala!, ya estoy contento. XDD
En los billones de cifras (15)... la parte de CP1, y CP2 lista y preparada para moneda "créditos galácticos".
-----------------------------------------------------------------
www.TrazEX.com (soluciones sobre Excel)
Re: Convertir números a texto
muchisimas gracias...me encantó tu mensaje de la macro, eso me dió ánimos, para adecuarla a mis necesidades (sin saber maccros).
Abachos, Fátima desde México
Re: Convertir números a texto
gracias por la función
me ha funcionado correctamente, saludos desde santa Fe Leo
Re: Convertir números a texto
hola me funcion npereo yo necesito convertir cntidades de numeros naturales y bajas ejemplo 8.25 quiero que salga en letras ocho con veite y cinco o tambien puede ser ocho con 25 puedes enviarme el codigo que ya la cache como usar y todo lo emas lo no se es como hacer el copdigo gracias
mira los ejemplos
Ejemplos generales
Ejemplos de la función combinada con otros textos
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
Buenas tardes me encanto su funcion pero hay un problema a lo que guardo me sale una ventana d error y dspues de habilitar las macros y las funciones de VBA en excel, guardo m vuelve a salir lo mismo, y por ultimo cierro y abro el documento y me sale en la celda que inserte la funcion NumLetrar el error de #NOMBRE? entonces que podría hacer para poder hacer funcionar el NumLetra le agradecería su pronta respuesta porque en verdad lo necesito :'( Muchas gracias por su atención ;)
Re: Convertir números a texto
¿dónde se guarda la función?
Para que esté disponible para todos los libros, es mejor ponerla en el libro de macros personal (sólo estaría disponible en ese PC)
Si sólo se va a utilizar en un libro concreto, entonces se debería guardar en ese libro (hay que guardarlo con extensión xlsm para que tenga macros), así estaría disponible para ese libro, aunque se abra desde otra máquina.
Mira también esta entrada: qué hacer con un archivo .bas
------
Ya sé Excel, pero necesito más.
Re: Convertir números a texto
Hola. Un saludo
En primer lugar darte las gracias por compartir esta rutina, para la gente que como yo tenemos muy poca idea de programación
Te queria hacer una pregunta por si es fácil de solucionar.
Hay un caso en el que el "un" - "uno" no funciona bien. Es cuando la cantidad no tiene descripción.
Por ejemplo: 101.401. Manejando los argumentos, me saldria "ciento un mil cuatrocientos un" o "ciento uno mil cuatrocientos uno".
Entiendo que lo correcto seria "ciento un mil cuatrocientos uno". Hay alguna posibilidad sencilla de corregir esto.
Muchas gracias por tu atención
Al abrir de nuevo excel ya no está
Hola, siguiendo todos tus pasos conseguí lo que me proponía, pero hoy al abrir de nuevo la hoja y actualizar los datos me da error. He intentado poner la fórmula en otra celda pero ya no está. ¿Qué ha podido pasar? ¿Qué tengo que hacer para que no se elimine cuando cierre excel?
Comprueba la configuración
Comprueba la configuración del centro de confianza en las opciones de Excel, por defecto las macros están deshabilitadas.
Comprueba las configuración de ubicaciones de confianza (también está en la configuración del centro de confianza)
Comprueba que has guardado el archivo en un formato que permita macros, por ejemplo xlsm, para que no borre el contenido del código VBA al guardar y cerrar el archivo.
------
Ya sé Excel, pero necesito más.
Un, Uno
Hola, hay alguna manera de que diga por ejemplo
41001 (Cuarenta y un mil uno)
porque al poner ese monto me pone (Cuarenta y un mil un), tampoco quiero que diga (Cuarenta y uno mil uno)
"Yo no uso monedas ni nada, solo necesito el convertidor a letras"
Hola, PacoTras haber tenido
Hola, Paco
Tras haber tenido que hacer una certificación a cero, me he dado cuenta de que a la función le falta (o no lo encuentro) la opción de que si todo es cero, escriba "CERO EUROS". Por defecto, deja todo en blanco. Si pasas el parámetro de los ceros, pone "CERO EUROS CON CERO CÉNTIMOS".
Un saludo
Un, uno
Alguien podria ayudarme?? T.T
nueva versión
Hola Cron y Piurexroa
He añadido una nueva versión 20160127 que incluye unso cambios para atender a estas peticiones.
El argumento Cero, ahora puede tomar valores 0, 1, 2, 3
0: (no pone nada)
1: (lo pone todo) cero unidades con cero décimas
2: (sólo unidades) cero unidades
3: (sólo decimales) cero décimas
y añadimos un nuevo argumento Millar_un_uno_a (similar al argumento UD_un_uno_a) para dotar de genero independiente a los millares y así poder poner de varias formas ese caso del 41001: cuarenta y un mil uno, cuarenta y uno mil una, cuarenta y uno mil un, cuarenta y un mil una
Espero que os guste
------
Ya sé Excel, pero necesito más.
Un, Uno
Pacomegia sos un GENIO muchísimas gracias!!! Te estoy muy agradecido
No me funcionan los céntimos
He hecho todo lo recogido en el blog (estupendo para los que trabajamos con excel) pero no he conseguido que me recoja en letra los decimales recogidos en las cifras. No se que estoy haciendo mal.
Muchas gracias por la ayuda.
comprueba el argumento
comprueba el argumento NumDecimales
escribe la función que estás utilizando para poder saber lo que estás haciendo
------
Ya sé Excel, pero necesito más.
No hay manera
Lo hago con el cuadro de la función abierta con los distintos parámetros. No hay manera.
Lo tengo concatenado para resolverlo, pero no me funciona la función como debiera.
Te adjunto fichero de prueba para que lo puedas chequear.
Gracias por anticipado,
Es que en la función estás
Es que en la función estás tomando como argumento el número que está en D1, que no tiene decimales (porque es el que has utilizado para la parte entera)
prueba con la Celda C1
=NumLetra(C1;C3;"euros";"céntimos";"con";0)
Si lo que quieres es que añada decimales aunque sean cero entonces utiliza el argumento Cero
con un valor de 1 se mostraría también texto para cero, por ejemplo
1358 -> mil trescientos cincuenta y ocho con cero céntimos
------
Ya sé Excel, pero necesito más.
No hay manera 2
Lo he puesto tal y como me dices, y el resultado es desconcertante, tal y como aparece en el fichero adjunto.
Creo que te estoy dando la tabarra demasiado.
Gracias de nuevo,
Cómo puedo colocar la primera
Cómo puedo colocar la primera letra en mayúscuca
Convertir Número de Miles de Millones a Letras
Buenas tardes estimados, para empezar aclaro: no soy especialista en excel ni programación; utilizo convertirnum para pasar a letras los montos arrojados por excel; la cosa se complica porque en Venezuela la inflación ha hecho crecer exponencialmente los costos y una factura puede arrojar tres mil o cuatro mil millones y para esos montos la función arroja un error. Como puedo convertir a letras la cantidad de 3500628010,25?
AYUDA PARA CONVERTIR NUMEROS A LETRAS PERO CON DECIMALES
Hola amigo buenas tades, sería ta amable de ayudarme con una fórmula en Excel para transformar los numeros enteros incluido la coma y decimales a letras: Por ejemplo:
yo tengo
7,00
7,01
7,02
Y así Sucesivamente quiero que en la celda siguiente salga de la siguiente manera:
7,00 SIETE COMA CERO
7,01 SIETE COMA CERO UNO
7,02 SIETE COMA CERO DOS
7,10 SIETE COMA DIEZ
7,99 SIETE COMA NOVENTA Y NUEVE
Quedaré de usted muy agradecido por su ayuda.
Saludos cordiales,
Angel´S
convertir centavos a numeros
Hola, sabes como puedo modificar el codigo para que me de los centavos tambien en letras?
Muchas gracias por la ayuda que me puedan brindar
La función incluye argumentos
La función incluye argumentos para la unidad entera y para los decimales.
También puedes concatenar varias veces la función para componer el texto que necesites.
------
Ya sé Excel, pero necesito más.