Saltar al contenido

UDF para leer cantidades en letras (solo parte entera) hasta cuatrillón


neverdelimon1

Recommended Posts

publicado

Hola

Veo, que estamos con nueva imagen, creo que le va bien al foro, aunque como todo tendremos que acostumbrarnos y sobre todo usar las nuevas herramientas que nuestro buen amigo proper nos ha facilitado.

Recientemente me vi en la necesidad de usar una UDF para pasar cantidades de numeros a letras, estuve buscando en la web y hay una gran variedad de soluciones, tanto para VBA, como para excel con funciones nativas, el caso es que en nungún lado vi que juntaran las posibilidades de tener a VBA y Excel (usando una que otra funcion de MS Excel) juntos (compartiendo sus objetos), quizas me falto buscar un poco más jejjejeje; la mayoria esta orientada más a VB en el caso de las UDF, entonces me anime hacer una versión, aqui les dejo el resultado (aun esta en fase de prueba, asi que mucho les agradeceria si me pudiecen comentar si detectan algun error para depurarlo, y asi funcione mejor)

La macro lee hasta 999 999 cuatrillones, 1 cuatrillón = 10^24 , tiene 3 parameros (el ultimo parametro esta pensado para poderse usar para unirla a otra macro para poder leer cantidades de moneda, aunque creo que me morire y nunca vere tal suma de dinero jejejejeje) la macro lee solo numeros cardinales

Lo malo es que ahora quede tentado ha seguirle hasta el decillón 10^60 o que tal al vigintillón 10^120 (pero quien usa eso jejejejej)

Saludos cordiales a todos, les deseo un excelente dia.

publicado

Pero que buen aporte Neverdelimon1 jejeje, le he hechado un ojo pero no me da tiempo a mirarlo en profundidad, en cuanto vuelva del trabajo lo destripo bien y te comento, esta bastante trabajado :)

Un consejo, aun que lo veas una tonteria por que crees que es un numero demasiado alto, hazlo, aun que sea como reto o para quitarte la astillita de curiosidad que tienes, yo he abandonado provisionalmente algunos proyectos y luego cuando fui a retomarlos ya no tenia ningunas ganas, como por ejemplo el libro que he adjuntado en este mensaje. Ademas asi podre ver tu obra completa y quien sabe, quizas algun cientifico loco que este estudiando el comportamiento de los atomos, tenga que hacer un informe y le dara cosa escribir tanta exageracion de numeros, por lo que tenga que recurrir a tu programa :P

Yo hace un par de años, en el 2007, no recuerdo ahora el motivo pero me puse a hacerme una funcion en excel para esto mismo, pero me empezo a dar problemas y cuando se empezo a complicar la cosa abandone el proyecto por que tampoco lo necesitaba realmente. Adjunto lo mio de por aquel entonces, entonces sabia mucho menos de excel, comparado con lo tuyo es como ver aquel barquito que se cruzo delante del titanic :P:D

Buen trabajo ;)

numeros a letra.zip

publicado

Hola verzulsan

Un consejo, aun que lo veas una tonteria por que crees que es un numero demasiado alto, hazlo, aun que sea como reto o para quitarte la astillita de curiosidad que tienes..."

Tienes toda la razón te agradezco mucho tu consejo, lo voy a seguir

"...comparado con lo tuyo es como ver aquel barquito que se cruzo delante del titanic..."

Bueno vi tu archivo y creo que la verdad es que no hay mucha diferencia, ya que seguimos la misma lógica para integrar los numeros, asi que creo que tu barquito en cualquier momento se hace titanic.

verzulsan te agradezco mucho tus comentarios, me motivan a seguir, gracias

publicado

Hola

Adjunto codigo complementado, se puede leer hasta 999 999 vigintillones, 1 vigintillon=10^120 ,se pude utilizar para leer cantidades numericas y moneda tambien, para ello hay que ponerle el parametro de ReferirseACosas en Verdadero "True" y si se desean leer tambien los decimales, se pude enviar como parametros "con otra funcion" los decimales (en numero entero "dos digitos") y unirlos y listo, no lo agregue en la macro porque unos utilizan "coma", otros, "y","con", (/100TipoMoneda), etc (la macro utiliza la función match de MS Excel "coincidir" y otras por lo que solo trabajará en MS Excel).

Saludos

publicado

uffff, tremendo tu trabajo neverdelimon1.

habrá que estudiar ese código con detenimiento.

no sé si ya has visto esta página, de Héctor Miguel Orozco, MVP excel. Tal vez te sirva de algo: officefull (Word, Excel, Calc, Writer,...) - Convertir números a su equivalente en letras

bueno, y gracias por compartir tu trabajo con nosotros., seguro será de gran valor para muchos de los que estamos aprendiendo por acá.

publicado

Hola Gerson, muchas gracias, tus palabras me motivan a seguir, te agradezco tus amables comentarios.

Por otra parte, les recomiendo a los compañeros si van a utilizar el codigo (para algun proyecto o cualquier cuestion) sean cautelosos porque aun esta en fase de prueba (creo que me precipite un poco jejejeje les ofrezco mis disculpas, debi haber subido el aporte despues de un periodo de prueba prudente) y evitar cosas como esta que voy hacer, les ofrezco mis disculpas.

Actualizo el Código (por ahi se me habia pasado pasarle a los miles una funcion de limpiar ') para que diga por ejemplo cincuenta y un mil doscientos cinco) si detectan algun error o algo raro, mucho les he de agradecer me lo comenten para actualizar el codigo.

saludos..

Edito:

Ya tuve la oportunidad de probar este ultimo código, y al parecer ya es estable hice muchas pruebas aleatorias, descubri que en numeros enormes (a partir de los cuales excel maneja notacion científica) excel redondea en la celda, pero en memoria muestra el numero real 'jejejejej cosas de excel', para poder probar la macro no me quedo de otra que hacer otra macro inversa (una que pasa de numeros en letra a numero cardinal, solo asi pude hacer muchas pruebas y comparar, tratando de evitar el error humano 'de vista' en la medida de lo posible), aun asi si llegasen encontrar algun problema mucho les he de agradecer me lo hagan saber.

saludos cordiales

NumeroALetras(hasta el viguintillón)-nvr3.zip

  • 3 months later...
publicado

Quiero agradecer este aporte a Neverdelimon1, felicidades, quiero un hijo tuyo, eres una sensacion

Ocupe su aporte con esta formula para generar La leyenda del monto de los cheques y esta perfecta

=CONCATENAR(" (",E17,MAYUSC(NumeroAletras(G4))," PESOS ",CONCATENAR(DERECHA(DECIMAL(G4,2),2),"/100 M.N.)"))

Solo le quite la restriccion del "un" para 1000.

Me doy cuenta de lo extraordinario que es el boton buscar

publicado

Hola jicotillo

Me alegra que te haya funcionado.

Como eres de México, te envio la versión de dicha función para leer cantidades tipo moneda, en este caso usa la función EnLetraMonedaMX

En el archivo adjunto va una ejemplificacion

Cualquier sugerencia o reporte de error, es bienvenida

saludos cordiales

Catidad a letras MX-nvr.zip

publicado

No pues igual esta super super chin... muy bueno jejeje.

Solo igual el comentario.

Cuando hacemos el cheque lo correcto para la leyenda de $1,000.00 pesos es: Un mil pesos

En los dos archivos esto esta restringido.

Pero bueno eso ya son la necesidades del usuario.

Mil felicidades eres mi idolo

publicado

Hola jicotillo

Solo igual el comentario.

Cuando hacemos el cheque lo correcto para la leyenda de $1,000.00 pesos es: Un mil pesos

En los dos archivos esto esta restringido.

Muchas gracias por el comentario, te he de ser sincero, cuando investigue supuestamente la regla que encontre es que se lee mil pesos, sin embargo he verificado documentos "oficiales de gobierno" y en unos casos usan un mil en otros solo mil (el billete de $1000.00 solo dice mil pesos), quizás sea cuestión de costumbre en nuestro México, o haya una regla, la cual me gustaria conocer Si alguien la tiene mucho he de agradecer me la faciliten, de ante mano, para no polemizar jejejeje, y dado que las dos opciones al parecer son válidas (mientras econtramos la regla ortográfica) subo la UDF con las dos opciones, solo marca el ultimo parametro como Verdadero y listo ya leera el uno para los mil, por ejemplo 1000= un mil ;1500= un mil quinientos subo el ejemplo.

La formula se debe ingresar como en la columna C, es decir el ultimo parametro como verdadero

Catidad a letras MX-nvr-2.zip

publicado

Si, igual investigare la regla, por ahora te menciono que en todos los documentos de gobierno como son Cheques, Cartas Fonacot, Creditos federales, me han pedido "a fuerzas" ponerle un mil, y bueno ya tambien me quede con la costumbre.

Ahora como dices lo importante no es polemizar, sino como le hago para ser el PLATON de este moderno " Socrates NeverdeLimon1".

  • 2 months later...
publicado

Vaya Neverdelimon, al final lo conseguiste. Ya ni me acordaba de tu aportacion hasta que me ha vuelto a hacer falta y he visto que lo has mejorado como querias hasta los ^120 :D . Sobre lo de las paranoyas del excel convirtiendo numeros grandes, podrias intentar modificar el numero en la celda original cuando fuera gigante y pasarlo a texto, pero como es UDF no se puede no? o si... no se de UDF.

Muy buen trabajo, si detecto algun error te lo comento por aqui ;)

Por cierto, como esta en el post8, puedes ponerle un acceso directo al post en el primer mensaje, no he visto que se haga mucho eso aqui en ayudaexcel con esto del bvulletin pero te dejo aqui la URL con el modo de hacerlo:

post #8

Un saludo, sigue asi maquina.

publicado

Hola amigo verzulsan

Me da mucho gusto saludarte, tengo una versión donde al ingresar cantidades grandes (en forma de texto, es decir formateando la celda a tipo texto, se logra subsanar el inconveniente comentado) no recuerdo si subi dicha versión pero si alguien le sirve con gusto la comparto, ahora tengo en el 'tintero' la meta de hacer la funcion que lea hasta la maxima cantidad que excel permite 9.9^307 sin embargo el inconveniente es que he andado algo falto de tiempo y no he podido encontrar cómo se leen conforme a la real academina española tales numeros, en ingles si ya logre documentarme, pero en español no he econtrado nada 'oficial' todas la enciclopedias llegan hasta 10^120, creo que mi labor sera buscar una enciclopedia especializada dónde seguramente estara la norma.

saludos cordiales

P.D. Intente responderte al privado que me enviaste pero el foro me manda a página no encontrada (creo que anda algo mal con mi cuenta de usuario), quizas ya lo solucionaste, mi propuesta es que realizaras un split con el texto de la página web.

publicado

Hola Neverdelimon

Desde luego estas loco, 307 JA!, pero me gusta! :D:rolleyes: , a ver si tienes suerte y encuentras la documentacion en español. El otro archivo no estaria mal tenerlo tambien para complementar la opcion inversa de letras a numero ;)

Sobre el privado no te preocupes, ya se me ocurrieron varias formas para la lectura, aun que el split no era una de ellas, tambien me mola :).

Un saludo amigo

  • 4 years later...
publicado

amigo cuando escribes los numeros del 11 al 15 da un error ya que dice (onceuno, docedos, trecetres, catorcecuatro, quincecinco)

  • 4 weeks later...
publicado

Marco Antonio, Esta buenisima, que es una nueva funcion o la creaste vos?

buenisima gracias

Al reves no hay una funcion? jajaja

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.