1. AyudaExcel utiliza cookies. Si continuas utilizando AyudaExcel, estás aceptando la utilización de nuestras cookies. Más información.
  2. ¡Bienvenid@ a AyudaExcel! El foro más visitado sobre Excel en habla hispana.

    Si esta es tu primera visita, asegúrate de revisar los temas de la sección Utilización y Funcionamiento para familiarizarte con las funciones del foro. Si deseas publicar mensajes, será necesario que te Registres para que puedas dejar respuestas y crear tus propios mensajes, recuerda que es gratuito.

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

Tema publicado en 'Ideas y aportes' iniciado por neverdelimon1, 18 Nov 2009.

  1. neverdelimon1

    neverdelimon1 Moderador Staff AyudaExcel

    Registrado:
    25 Ago 2008
    Mensajes:
    894
    Me Gusta recibidos:
    73
    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.

    Editado por moderación: 12 Ago 2011
    A Gerson Pineda y rolano les gusta esto.
  2. verzulsan

    verzulsan Incondicional de Ayuda Excel

    Registrado:
    25 Oct 2009
    Mensajes:
    812
    Me Gusta recibidos:
    112
    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 ;)

    Adjuntos:

    Última edición: 23 May 2010
  3. neverdelimon1

    neverdelimon1 Moderador Staff AyudaExcel

    Registrado:
    25 Ago 2008
    Mensajes:
    894
    Me Gusta recibidos:
    73
    Hola verzulsan
    Tienes toda la razón te agradezco mucho tu consejo, lo voy a seguir

    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
  4. neverdelimon1

    neverdelimon1 Moderador Staff AyudaExcel

    Registrado:
    25 Ago 2008
    Mensajes:
    894
    Me Gusta recibidos:
    73
    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
    Editado por moderación: 12 Ago 2011
  5. mjrofra

    mjrofra Moderador Staff AyudaExcel

    Registrado:
    28 May 2009
    Mensajes:
    2.686
    Me Gusta recibidos:
    93
    Género:
    Masculino
  6. neverdelimon1

    neverdelimon1 Moderador Staff AyudaExcel

    Registrado:
    25 Ago 2008
    Mensajes:
    894
    Me Gusta recibidos:
    73
    Muchas gracias Mauricio me va ser de mucha utilidad la página que me proporcionaste, muchas gracias.

    saludos
  7. Gerson Pineda

    Gerson Pineda Moderador Staff AyudaExcel

    Registrado:
    30 Mar 2009
    Mensajes:
    6.767
    Me Gusta recibidos:
    551
    Género:
    Masculino
    Gracias por compartir tu gran aporte con nosotros (esta excelente)


    Saludos desde Honduras
  8. neverdelimon1

    neverdelimon1 Moderador Staff AyudaExcel

    Registrado:
    25 Ago 2008
    Mensajes:
    894
    Me Gusta recibidos:
    73
    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

    Adjuntos:

    Editado por moderación: 12 Ago 2011
  9. jicotillo

    jicotillo Usuario

    Registrado:
    13 Ene 2010
    Mensajes:
    114
    Me Gusta recibidos:
    2
    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

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

    Me doy cuenta de lo extraordinario que es el boton buscar
  10. neverdelimon1

    neverdelimon1 Moderador Staff AyudaExcel

    Registrado:
    25 Ago 2008
    Mensajes:
    894
    Me Gusta recibidos:
    73
    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

    Adjuntos:

    Última edición: 1 Mar 2010
  11. jicotillo

    jicotillo Usuario

    Registrado:
    13 Ene 2010
    Mensajes:
    114
    Me Gusta recibidos:
    2
    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
  12. neverdelimon1

    neverdelimon1 Moderador Staff AyudaExcel

    Registrado:
    25 Ago 2008
    Mensajes:
    894
    Me Gusta recibidos:
    73
    Hola jicotillo

    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

    Adjuntos:

  13. jicotillo

    jicotillo Usuario

    Registrado:
    13 Ene 2010
    Mensajes:
    114
    Me Gusta recibidos:
    2
    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".
  14. verzulsan

    verzulsan Incondicional de Ayuda Excel

    Registrado:
    25 Oct 2009
    Mensajes:
    812
    Me Gusta recibidos:
    112
    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.
  15. neverdelimon1

    neverdelimon1 Moderador Staff AyudaExcel

    Registrado:
    25 Ago 2008
    Mensajes:
    894
    Me Gusta recibidos:
    73
    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.
  16. verzulsan

    verzulsan Incondicional de Ayuda Excel

    Registrado:
    25 Oct 2009
    Mensajes:
    812
    Me Gusta recibidos:
    112
    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

Compartir esta página