Una de las funciones de Microsoft Excel más buscadas en la red y en los foros, es como convertir un numero a texto o numero a letras, esta función no viene integrada en las formulas propias de Microsoft Excel, esto lo podemos hacer insertando un código llamado “Macro”, que no son mas que instrucciones que nos ayudan a automatizar tareas en Excel (también se usa en Word, Access etc.).
En la red se puede encontrar muchos de estos “codigos”, algunos permiten manejar varias monedas, dólares, Euros etc. Uno de los más usados y mas que excelente es el de Mauricio Baeza, ¡100% hecho en México!, seguramente ya lo haz usado, desde entonces han surgido muchas variantes y modificaciones; pero muy pocos sitios o casi nunguno muestran como usarlos.
Desde que uso Microsoft Excel he probado varios de esos códigos, he visto como mucha gente se atribuye la autoría de dichos códigos, que vergüenza pero en fin. Dentro de las diferencias que he encontrado en la conversión a texto es algo así como esto:
23 = Veintitrés
23 = Veinte y tres
Yo me inclinaría mas por el primero, No es que la segunda conversión este mal, cualquiera de las dos formas son correctas, pongamos un ejemplo, cuando voy a la tienda de la esquina y pregunto ¿Cuándo cuesta este palitroche*? El anciano muy amablemente me dice “son veintitrés pesos joven.
Vamos a empezar, primero necesitamos el código, vamos a usar este que al parecer el autor es Saúl López con una pequeña modificación de ByPaco² para que aparezca Pesos y M.N., yo le hice una pequeña modificación al código para que aparezca “SON:” como se usa aquí en México.
Function PesosMN(tyCantidad As Currency) As String
Dim lyCantidad As Currency, lyCentavos As Currency, lnDigito As Byte, lnPrimerDigito As Byte, lnSegundoDigito As Byte, lnTercerDigito As Byte, lcBloque As String, lnNumeroBloques As Byte, lnBloqueCero
Dim laUnidades As Variant, laDecenas As Variant, laCentenas As Variant, I As Variant 'Si esta como Option Explicit
tyCantidad = Round(tyCantidad, 2)
lyCantidad = Int(tyCantidad)
lyCentavos = (tyCantidad - lyCantidad) * 100
laUnidades = Array("UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE", "DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE", "VEINTE", "VEINTIUN", "VEINTIDOS", "VEINTITRES", "VEINTICUATRO", "VEINTICINCO", "VEINTISEIS", "VEINTISIETE", "VEINTIOCHO", "VEINTINUEVE")
laDecenas = Array("DIEZ", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA", "SETENTA", "OCHENTA", "NOVENTA")
laCentenas = Array("CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", "QUINIENTOS", "SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS")
lnNumeroBloques = 1
Do
lnPrimerDigito = 0
lnSegundoDigito = 0
lnTercerDigito = 0
lcBloque = ""
lnBloqueCero = 0
For I = 1 To 3
lnDigito = lyCantidad Mod 10
If lnDigito <> 0 Then
Select Case I
Case 1
lcBloque = " " & laUnidades(lnDigito - 1)
lnPrimerDigito = lnDigito
Case 2
If lnDigito <= 2 Then
lcBloque = " " & laUnidades((lnDigito * 10) + lnPrimerDigito - 1)
Else
lcBloque = " " & laDecenas(lnDigito - 1) & IIf(lnPrimerDigito <> 0, " Y", Null) & lcBloque
End If
lnSegundoDigito = lnDigito
Case 3
lcBloque = " " & IIf(lnDigito = 1 And lnPrimerDigito = 0 And lnSegundoDigito = 0, "CIEN", laCentenas(lnDigito - 1)) & lcBloque
lnTercerDigito = lnDigito
End Select
Else
lnBloqueCero = lnBloqueCero + 1
End If
lyCantidad = Int(lyCantidad / 10)
If lyCantidad = 0 Then
Exit For
End If
Next I
Select Case lnNumeroBloques
Case 1
PesosMN = lcBloque
Case 2
PesosMN = lcBloque & IIf(lnBloqueCero = 3, Null, " MIL") & PesosMN
Case 3
PesosMN = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, " MILLON", " MILLONES") & PesosMN
End Select
lnNumeroBloques = lnNumeroBloques + 1
Loop Until lyCantidad = 0
PesosMN = "SON: (" & PesosMN & IIf(tyCantidad > 1, " PESOS ", " PESO ") & Format(Str(lyCentavos), "00") & "/100 M.N.)"
End Function
Bien, ahora que ya tenemos el código vamos a insertarlo en nuestra hoja de trabajo de Microsoft Excel. Recomendable trabajar en un libro nuevo.
Hacemos clic en Herramientas->Macros->Editor de Visual Basic, o simplemente presionando Alt+F11
Es importante que cierres todos los libros que tengas abierto y dejes abierto solo el libro en el que estas trabajando ya que podría dificultarte encontrar tu libro en el explorador de proyectos (lado izquierdo de tu pantalla, si no lo ves presiona Ctrl+R)
Una vez abierto el editor de Visual Basic nos vamos a Insertar->Modulo
En la ventana que se abre pegamos el codigo de la macro

Listo, ya tenemos nuestro macro listo para trabajar, cerramos el editor de Visual Basic, lo puedes hacer con Alt+Q y regresamos a Microsoft Excel
Vamos a probarlo, en la celda A1 ponemos un importe, yo pondré 1500.21, abajo, en la celda A2 ponemos =PesosMN(A1)
Bien, si pudiste hacer el ejercio hasta aquí, ya puedes ponerlo en todos tus libros de trabajo, buena suerte.
*Se acuerdan de aquellos años de primaria cuando una niña inventó esta nueva palabra, creo que la niña se llamaba Pita.
Oye Gracias busque y busque y solo el tuyo se explica muy bien
saludos
Marlon Espana
Hola, quisiera poner esta aplicacion para agilisar el trabajo pero me aparece #¿nombre?, que significa. Alguien ke pudiera ayudarme.. Gracias.
Hola Vero.
Te hace falta guardar la macro como un complemento de Excel (Extensión .XLA para versión 2003 y anteriores o .XLAM para versión de office 2007), para después habilitarla desde Opciones de Excel Complementos.
Una vez guardada y habilitado el complemento, bastara con accesar a insertar funciones desde cualquier hoja de Excel e ingresar a “Definidas por el usuario”, en donde encontraras dicha función (PesosMN); selecciona esa función y vincularla a una celda donde exista una cantidad y liisto, la podrás utilizar en cualquier archivo.
Espero te sea resuelva el problema, saludos.
Mucho gusto Marlon, a tus órdenes
Gracias
esta exelente
¡Excelente!, le hice algunas modificaciones de presentación. Trabaja muy bien ¡Gracias!
Asi es Eduardo, el codigo es uno de los mas facilitos de adaptar, y es corto, hay otros con demasiado codigo. saludos
Muchas gracias Gonzalo_conta, tenia rato buscando, y solo encontraba expliacciones muy extensas, la tuya es la mejor, saludos.
EN ATN: CP GONZALO
DICHOSO USTED POR ESTUDIAR Y SABER TRANSMITIR SUS CONOCIMIENTOS ACABO DE ACCESAR A SU PAGINA Y ES INCREIBLE TODO LO QUE TIENE LO FELICITO MUCHO
ATTE
GUSTAVO HERNANDEZ MALDONADO
TE AMO!!!
TARDE SIGLOS Y POR FIN ENCONTRE COMO HACERLO
ERES UN GENIO Y GRACIAS POR COMPARTIR TUS CONOCIMIENTOS
SALUDSO
Contador:
Felicitaciones por su pagina, es la mejor esplicacion y la más facil de usar, y perdone usted mi ignorancia, pero, como le hago para que no me salga la palabra “SON”?,
Le agradeceré eternmente Contador, gracias de nuevo.
COMO LE HAGO PARA QUE NO APARESCA MN AL FINAL Y CAMBIAR PESOS POR QUETZALES, ACTUALEMENTE TRABAJO EN GUATEMALA.
FELICITACION POR COMPARTIR TUS CONOCIMIENTOS CON LAS DEMAS PERSONAS.
Hola Valentina, en la penultima linea del codigo antes de End Function, solo borra la palabra SON:, tambien puedes quitar los parentesis, debe quedar asi:
Antes: PesosMN = “SON: (” & PesosMN……..
Despues: PesosMN = “(” & PesosMN……..
mUCHISIMAS GRACIAS ES EL UNICO QUE ME A FUNCIONADO Y SE EXPLICA CORRECTAMENTE ME SALBASTE MI TRABAJO QUE BUEN APORTE
Muchas gracias realmente eres una buena persona por compartir tus conocimientos yo no se nada de esto y me fue muy facil poder hacerlo
Primero gracias, he probado el modulo y funciona
muy bien, solo una pregunta, al cerrar y abrir
nuevamente no me permite ejecutar la macro, que
debo hacer para poder utilizarla en sesion diferente?
Te sale esto? #¿NOMBRE?
Si es así es simple, el nivel de seguridad de Excel esta configurado como alto.
En Herramientas->Opciones->Pestaña Seguridad->Seguridad de Macros->Selecciona Medio.
Debería de funcionar.
Ya le hice las modificasciones al nivel de seguridad de macros y me sigue diciendo lo mismo #¿NOMBRE?, tengo que reescribir el codigo para que funcione, le agradeceria su ayuda
EXCELENTE TE FELICITO SOLO TU TIENES DON PARA EXPLICAR
Excelente!!!!!! Mil Gracias por compartir tus conocimientos con la comunidad
Perfecto man
Gracias por el dato…
Aqui estare revisando tu pagina, esta muy buena
Hay cientos de páginas relacionadas con este tema pero ninguna vale la pena…. la tuya por supuesto si¡¡¡ gracias
MUCHISIMAS GRACIAS ¡HE INVERTIO MUCHO TIEMPO PARA ENCONTRAR ESTA APLICACION Y HASTA HOY LO LOGRE !
ES MUY BUENO EXPLICANDO
ME GUSTARIA PODER CONOCER SU CORREO Y PODER SABER SI ME PUEDE AYUDAR EN OTRAS CUESTIONES DE EXCEL
GRACIAS!
UN SALUDO DESDE OAXACA, MEXICO!
que onda we, chido tu blog, “sugerencia” pon links de foros se que tienes varios interesantes… saludos desde CACUN…
que onda we, chido tu blog, “sugerencia” pon links de foros se que tienes varios interesantes… saludos desde CANCUN…
Que paso mi estimago amigo, que digo amigo hermano!! como haz estado? que pequeño es el internet, te mando un abrazo, un dia de estos años voy a visitarte.
Solo quiero agradecer su tiempo y felicitarlos por la manera de explicar las cosas, a mi me fue de mucha utilidad.
MUCHAS GRACIAS
Gracias estoy recien ingresando al uso de Excel, me vienen de buena gracias
una pregunta no lo he podido hace rdfucnionaren 2007, alguna cosa que falte para esta funcion en 2007??, muchas gracias
Saludos kamysado, no uso Office 2007 por cuestion de gustos, por lo que me veo imposibilitado para contestar tu pregunta.
Esperemos que alguno de los internautas pueda ayudar.
Hola, yo lo stoy probando en office 2007 y esta trabajando correctamente
Gracias por compartir tus conocimientos, eres un genio solo por compartir.
Excelente es tu macro, funciona muy.
Sólo te quería preguntar que paréntesis tengo que sacarle para que no aparezcan y además le quisiera agregar CON /100
para los centavos.
Buenas muy buen aporte solo que tengo una duda vi sus archivos y hay uno que me interesa ya lo descarge pero a la ora de descomprimirlo me pide una contraseña me la podria proporcionar craagle.zip
Buscador de cracks y seriales, como usar craagle visita http://gchable.wordpress.com/
By gonzalo_conta 53 days ago Size: 455.7kb
Espero su amable respuesta SALUDOS !!!
Ines,
cambia la penultima linea del codigo por este otro:
puedes probar cambiando el codigo e ir viendo el resultado
——————————————————-
alpine1mx,
ahi mismo donde lo bajaste hay una anotacion que dice como usar craagle visita http://gchable.wordpress.com/, que es este sitio, si lees el tema que habla de craagle veras que ahi esta la contraseña que es @felizañonuevo.
Muchas gracias Gonzalo por compartir todo lo que sabés con nosotros, no muchos lo hacen.
Hola, le agradezco mucho la información que me ha proporcionado, ya que es realmente sencilla,facil y util.
hola fijate k tengo una pekeña duda o curiosidad,kiero saber si es posible que por medio de una macro se pueda poner la fecha del sistema en una celda,sin necesidad de que tu la escribas y le des formato
HOla Oswaldo, pues no se especificas que es lo que quieres hacer, pero la instrucion para la fecha es:
ActiveCell.Value = Date
para la hora Time
Pita descubre una palabra nueva
Una mañana, Tomás y Anita entraron en la cocina de Pita y le dieron los buenos días, pero Pita no contestó. Sonreía apenas, con expresión soñadora.
—Perdonen que no conteste a su saludo; estoy pensando en lo que acabo de descubrir —dijo Pita.
—¿Qué has descubierto?
—¡Una palabra nueva!, ¡una estupenda palabra!
—¿Qué clase de palabra? —indagó Tomás con cierta desconfianza.
—Una maravillosa palabra, una de las mejores que he oído en mi vida.
—Anda, dínosla, Pita —dijeron los niños.
—¡PALITROCHE! —dijo Pita triunfante.
—¿PALITROCHE? ¿Y qué quiere decir?
—¡Ojalá lo supiera!
—Si no sabes lo que significa, no sirve para nada —dijo Anita.
—Eso es lo que me preocupa —contestó Pita mordisqueándose el pulgar de la mano derecha.
—¿Quién dice lo que significan las palabras? —preguntó Tomás.
—Yo creó que se reunieron algunos viejitos —dijo Pita—. Inventaron algunas palabras y luego dijeron: “esta palabra quiere decir esto…” Pero a nadie se le ocurrió una palabra tan bonita como palitroche. ¡Qué suerte que haya dado yo con ella! ¡Y les apuesto lo que quieran a que descubriré lo que significa! Quizá se le pueda llamar así al ruido que hacemos cuando andamos en el lodo. A ver, cómo suena “cuando Anita anda en el lodo puede oírse un maravilloso palitroche…” No, no suena bien. Eso no es. Quizá es algo que puede comprarse en las tiendas. ¡Vamos a averiguarlo!
—¡A ver si podemos! —añadió Tomás.
Pita fue a buscar su monedero y lo lleno de monedas.
—Palitroche suena como una cosa bastante cara. Seguramete me alcanzará con esto.
Ya puestos de acuerdo, los tres salieron muy preocupados de la casa. Llegaron a una pastelería.
—Quisiera comprar algunos palitroches —dijo muy seria Pita.
—¿Palitroches? —preguntó la señorita que despachaba—, creo que no tenemos.
Entraron a una ferretería.
—Quiero comprar un palitroche —dijo Pita.
—¿Palitroche?, vamos a ver si encuentro alguno —dijo el dependiente y sacó de un cajón un cepillo que entregó a Pita.
—¡Esto es un cepillo! —exclamó Pita muy enojada—. Yo quiero un palitroche. ¡No intente engañar a una inocente niña!
—Pues no tenemos lo que necesitas, niña, lo siento mucho.
—Lo siento… lo siento… —salió murmurando Pita, verdaderamente contrariada.
—¡Ya sé! Lo más probable es que se trate de una enfermedad. Vamos con el médico.
—Quiero ver al doctor. Es un caso grave —dijo Pita.
Como se trataba de un caso grave, la enfermera los hizo pasar inmediatamente.
—¿Qué te pasa? —le preguntó el médico.
—Estoy muy asustada, doctor. Creo que estoy enferma de un grave palitroche. ¿Es contagioso?
—Tú tienes más salud que todos nosotros juntos —le dijo el médico—. No te preocupes.
—Pero existe una enfermedad con ese nombre, ¿verdad? —preguntó ansiosamente Pita.
—No, pero aunque existiera, tú no lo atraparías jamás.
Pita, Tomás y Anita salieron de ahí bastante desconsolados. Iban con la cabeza baja, pensando que nunca encontrarían un palitroche. De pronto Pita gritó:
—¡Ten cuidado, Tomás, no pises ese animalito!
Los tres miraron hacia el suelo. El animalito era pequeño, con un par de alas verdes que billaban como si fueran de metal.
—No es chapulín, ni grillo —dijo Tomás.
La cara de Pita se iluminó:
—¡Ya sé! ¡Es un palitroche! —gritó triunfante.
—¿Estás segura? —preguntó Tomás.
—¿Crees que no voy a conocer a un palitroche cuando lo veo? Como tú no has visto ninguno en tu vida, no sabes reconocerlos. ¡Mi querido palitroche! Ya sabía yo que al fin iba a encontrarte. Hemos recorrido toda la ciudad buscándote, y estabas casi debajo del zapato de Tomás. Ven, te llevaré a casa y viviremos felices.
FIN
No estaba tan errado
Gracias por el código esta excelente!! solo una consulta, como sería para que la parte de centavos tambien salga en letras, como ejemplo: “SON VEINTE PESOS CON CERO CENTAVOS”, es decir, absolutamente todo en letras. Muchas Gracias
Muy buena, y desde luego muchas gracias
Gonzalo
muy buena tu informacion y me a sido de gran ayuda
mi consulta es como puedo borar esto de la formula
00/100 M.N. gracias
se despide Eduardo de Chile
WOW… Fue bien papa….
Te lo agradezco por los siglos de los siglos……
excelente Blog…
fergzzag
ME PARECE MUY INTERESANTE, ME HA SERVIDO MUCHISIMO, AGRADEZCO Y FELICITO A LAS PERSONAS QUE COMPARTEN SUS CONOCIMIENTOS EN FORMA DESINTERESADA.
UNA CONSULTA, ACA NO UTILIZAMOS LOS CENTAVOS, CÓMO PUEDO REDONDEAR EL NÚMERO ??
CORDIALES SALUDOS,
Hola buenos dias una pregunta porque al querer ejecutar la macro me manda el siguiente mensaje se a detectado un nombre ambiguo: PesosMN y no me deja ejecutarla mi pregunta es que estoy haciendo mal para correr la macro por su atencion gracias
BUENA UTILIDAD SOBR TODO, PARA FINES ESPERADOS. (^ ^,) THANSK YOU.
gracias por tu aportacion lo estoy usando en office 07 y funciona muy bien, saludos y nuevamente gracias
gracias muchas gracias tanto ke buske y no encontraba nada tan detallado y muy bien explicado y muchas gracias saludos y felicidades por tu aportacion
ese codigo esta mal, aprenda a programar bien, hay maneras más faciles, para que se complica. o es que es un aficionado. estudie bien y publique cosas que valgan la pena.
Mil gracias por compartir tus conocimientos, muy explicativo, aunque tuve dificultad porque despues de cerrar el modulo y regresar a la hoja de calculo me funcionaba bien, pero al cerrar el archivo y abrir uno nuevo ya no funcionaba la formula de =pesosmn(), asi que guarde el modulo como un complemento de excell y listo.
posteriormente abri una nueva hoja de calculo y me fui al administrador de complementos y le di añadir nuevo complemento, busque el archivo y listo.
problema resuelto..
gracias por comparttir
luis enrique, aprenda por usted mismo, no copie y pege de internet. piense por usted mismo.
Mi estimado Carlos, te voy a dirigir muy pocas palabras por que no vale la pena siquiera contestarte, por educación lo haré para aclararte lo siguiente:
Me pides que aprenda programar y me llamas aficionado, ¿por que mejor tu no aprendes a leer bien antes de abrir la bocota? en ningún momento dije que programé el código o si? lee bien, por otra parte, si todo esto no te es útil no regreses, no contamines con tus comentarios negativos, gente como tu que no aporta nada útil, que no publican cosas que valgan la pena.
Por otro lado te pido respeto hacia los otros ínter nautas, desde luego, si tu educación te lo permite.
Saludos.
SR. GONZALO GRACIAS POR SU AYUDA, EN EFECTO COINCIDO CON LOS DEMAS CYBERNAUTAS, LO UNICO QUE NO PUEDO HACER ES QUE APAREZCA EN LOS OTROS LIBROS QUE ABRO, LUIS ENRIQUE DIJO QUE SE GUARADARA COMO COMPLEMENTO PERO NO SE COMO GUARDARLO….
SI ME PUDIERA AYUDAR SE LO AGRADECERIA MUCHO
PD.
LO FELICITO POR CAMPARTIR SUS CONOCIMINETOS
GRACIAS
Gonzalo gracias por publicar esto. Queria preguntarte como hago para que salga “con diez centavos” por ejemplo, es decir todo en letras. Muchas Gracias
muchisisimas gracias tengo un buen tiempo investigando esto y eres el unico que me respondio con pasiencia por que fue el unico bien buen trabajo exelente
at`n conta gonzalo
tengo ratos tratando de hacer todo esto por mi trabajo que tengo que acer persupuestos y estos me facilita mas mi trabajos, tengo casi todo vinculado solo esto me faltava para solo tener que merte datos en unas hojas y me arroje las hojas terminadas
EXELENTE!!!!
PERSONAS COMO UD ES LAS QUE NECESITA EL MUNDO QUE COMPARTEN SUS CONOCIMIENTOS QUE BIEN LO FELICITO.
MUCHAS GRACIAS YA QUE ESTA FORMULA LA ESTABA BUSCANDO DESDE HACE YA TIEMPO Y NO SABIA QUE DEBIA HACER NUEVAMENTE MIL Y MIL GRACIAS. SUERTE EN TODODS LOS PROYECTOS QUE EMPRENDA Y SI SACA ALGO NUEVO ME GUSTARIA ME LO HICIERA SABER A TRAVEZ DE MI CORREO.
mil gracias una buena funcion y que agradable que compartas con los demas la informacion habla bien de ti gracias
Hola!
podrias ayudarme con un codigo.. para pasar de numeros a letras pero en ingles.
es decir ya tengo un codigo configurado para español pero ahora requiero uno en ingles
45.50 Forty Five dollars and fifthy cents 00/100 USD
Felicidades,, quien aporta busca un mundo mejor…
HOLA gchable, EL CODIGO ES MUY BUENO Y FUNCA, SOLO QUE AQUIE NO HAZ CONSIDERADO LOS DECIMALES, SERIA BUENO TERMINAR ESO.
DE TODOS MODOS ESTA EXCELENTE
Muy bien, excelente.
Saludos
hola muchas gracias le pregunte a tecnicos, licenciados en sistemas, ingenieros en sistemas y nadie supo contestarme, asta que te encontre, muchas gracias. millllll gracias
Excelente, realmente tienes el don para enseñar y explicar, te agradezco un mundo.
Exitos, te lo mereces!!!
Mestro de maestros no hay nada de q hacer eres lo maximo, un favor como podriamos hacer para que en vez de pesos aparezca Dolares Americanos y no salga el MN.
Muchas gracias
Buenos dias, la formula me sirve pero a medias, en España para hacer cheques y efectos, se emiten en Euros que como sabes llevan decimales y esta formula no trascribe a texto los decimales de un numero. Te agadeceria me facilitases una formula para poder rellenar los efectos correctamente.
Muchas gracias y felicidades por tu trabajo.
estoy muy agradecido habia pasado mucho buscando y esta es la mejor que encontre y lo mejor que es facil de modificar gracias saludos
MUY BIEN EXPLICADO ¡¡¡¡FELICIDADES!!!!!!
Excelente, mas que bien, para office 2007 los pasos son un poco diferentes, pero funciona a la perfección.
Gracias!!
Saludos!!
Si mas que execelente es verdad, de los que encuentren en la red, este es el mas util, (aplica para mexico) por que los demas al ser numeros enteros o por la forma de escribirse al español dan algunos errores.
pregunta?, se puede ejecutar en access este codigo?
como reporte es un poco complicado ya que no se ponen las celdas (exel) sino por la tabla, alguien sabra como formularlo?
LA NETA NO TIENE MAUSS ESTE CODIGO TA CON MADRESS CARNAL BIENTOS
LA NETA NO TIENE MAUSS ESTE CODIGO TA CON MADRESS CARNAL BIENTOS
Se me ocurrio comprar el Office 2008 para Mac y el Excel 2008 lo que he entendido en varios foros es que esta nueva version no trae el Visual Basic para las macros, me podrias informar si hay otra forma de hacer esto? o si se puede hacer con la nueva herramienta que trae esta version?
Gerardo,
intenta esto:
1.- abrir un libro vacio de excel
2.- dar click al icono de Office que se encuentra en la parte superior del lado izquierdo, el circulo de colores.
3.- En la opción más frecuentes, bajo Opciones principales para trabajar con Excel, se debe de activar la casilla de verificación MOSTRAR LA FICHA PROGRAMADOR EN LA VENTANA DE OPCIONES y dar click en Aceptar y ya veran la pestaña de PROGRAMADOR.
4.- dar click en PROGRAMADOR, buscar las opciones de SEGURIDAD O MACROS (o lo mas que se le parezca) y un click en CONFIGURACIÓN DE MACROS (o lo que mas se le parezca) Y activar la casilla de HABILITAR TODAS LAS MACROS (o lo que mas se le parezca).
Respuesta de mikecoz81 en anafinet.org foro de Excel
woowww muchas gracias mejor explicado imposible
OYE QUE PILERA GRACIAS. ES EL UNICO QUE ME HA FUNCIONADO.
SE LE PUEDE QUITAR EL PARENTESIS ?
QUE MACHERA TE CONSULTARE CON OTRAS
GRACIS
oye intente hacerlo en otra hoja y no me dejo que paso ?
OK VOLVI A PROBAR Y RESULTO PERO ME TOCO ELIMINAR EL MODULO Y HACRLO DE NUEVO.
COMO SE APROXIMA ?
GRACIAS
Muchas gracias por lo de la macro para excel, respecto a la cantidad en letra, es padre saber todo esto. saludos.
oye una duda aplique el macro y si me resulto
ya que la utilizo para la elaboracion de facturas
pero cuando lo quise hacer por segunda vez no funciono
aparece lo siguiente….#¿NOMBRE?…
QUE HAGO?
HOLA MUCHAS GRACIAS ERES DE LO MAS GENIAL
NO SABES LA GRAN AYUDA QUE ME HAS DADO
ENCONTRE DESDE HACE TIEMPO LA FORMULA PERO
NUNCA SUPE COMO LLEVARLA ACABO SOLO HASTA QUE
ABRI ESTA PAGUINA WEB….
MUCHAS GRACIAS AMIGO
PRONTO TENDRE UNA NUEVA DUDA
Y CREO QUE TE BUSCARE NUEVAMENTE
HACI QUE TE BUSCARE A TI POR KE
DAS LA EXPLICACION BIEN ENTENDIBLE
TU SI SABES
GRACIAS.
Gracias Gonzalo, me sirvio mucho el modulo.
Saludos desde Chile.
Gracias por este gran aporte, sobre todo para los que no somos expertos en esto, me has salvado la vida..seguire conociendo mas el excel..
¡¡ Muchísimas gracias !! He revisado innumerables códigos y éste está muy sencillo de insertarlo. Ya tenía uno pero no me funcionaba como yo necesito porque la interpretación en letra me la daba en minúsculas y tenía que “puentearla” con otra función para cambiarla a mayúsculas, aparte no funcionaba con cantidades mayores a 99,999.99 me daba los decimales equivacados. Felicidades la voy a recomendar mucho.
gracias carnal es al unico sitio donde encontre la explicacion completa y esta funciona muy bien
En verdad muchísimas gracias, eres mi héroe … jajaja
lo use en un programita para facturar y esta funcionando super bien
La verdad me funciono perfecto en 2007 gracias tengo que hacer facturas y donde mas me equivoco es en poner numero con letra nuevamente mil gracias
Excelente aporte lo acabo de probar y funciona perfectamente muchas gracias
gracias, por compratir esto con todos. El trabajo se me hace mas rápidoo.
GONZALO:
Muchisimas gracias por esta informacion y por toda la que proporcionas en tu blog… me fue de muchisima utilidad porque esta super completo y explicado de una forma maravillosa!!!
Gracias nuevamente.
Gabitos
MARAVILLOSO, MAGISTRAL E IMPREISONANTE LÑA MANERA DE EXPLICARLO, Y TRANSMITIRLO
FELICIDADES Y MUCHAS GRACIAS POR COMPARTIRLO CON NOSOTROS
Definitivamente nos haz hecho 1 grandisimo fabor al publicar este macro, en lo personal es casi casi 1 vendicion jajajaja porque todos los dias tengo ke escribir cantidades en numeros y fechas luego de imprimirlos y a veces con tantas vueltas en la oficina me enredo jajajajaj
Eres profesor o algo?¿?¿?¿?¿ muy muy muuuuy bien explicado y no bataye nada. Gracias y felicidades
GRACIAS POR SU INFORMACION!!!!!!
MUY SENCILLO Y FACIL DE UTILIZAR!!!!!!
FUNCIONA MUY BIEN!!!
ESTA GENIAL FELICIDADES.. NECESITO SABER COMO HACERLO PERO EN DOLARES
Hola soy de Monterrey, Mexico y uso el Microsoft Office Excel 2007, como lo puedo usar esa macro ya que las ventanas son diferentes en esta version a la que magistralmente nos ensenas….pudieras explicarnos a los que tenemos la ultima version de excel ??
Muchas Gracias
El Regio
Una disculpa a todos los de este ciber…..por leer todo de prisa no observe que ya esta contestada mi pregunta sobre excel 07….y les puedo decir que funciona de maravilla…saludos y gracias por el talento mexicano….!!
Les comparto la siguiente modificacion que realize a la formula de Mr. gchable, ya que no me servian los dos puntos y comas, en el momento de usarlo para facturas y descubri lo siguiente que me fue muy util al quitar algunos parentesis en la micro :
Loop Until lyCantidad = 0PesosMN = "SON" & PesosMN & IIf(tyCantidad > 1, " PESOS ", " PESO ") & Format(Str(lyCentavos), "00") & "/100 M.N."
End Function
me di cuenta que me queda de esta forma:
87547.56
SON OCHENTA Y SIETE MIL QUINIENTOS CUARENTA Y SIETE PESOS 56/100 M.N.
Espero les sea de su utilidad….espero quitarme lo ignorante…saludos desde Regiolandia ( Monterrey, Mexico )
Gracias Regio por tu aportación, seguramente servirá a mas de uno.
TENGO UNA PREGUNTA.
LA CELDA CON IMPORTE ME MARCA $1,156.33 Y AL MOMENTO DE LA CONVERCION SALE SON:( UN MIL CINETO CINCUENTA Y SEIS PESOS 32/100 M.N.) NO ES EN TODOS LOS CASOS. SOLO ALGUNOS.PERO SIEMPRE MARCA UNA DECIMAL MENOS.
QUE SE PUEDE HACER.
GRACIAS.
Hola Gerardo, pues tu problema esta en el importe que quieres convertir, no en el codigo, el codigo lo probe haciendo cientos de conbinaciones por segundo junto con otro codigo y solo falló en los importes menores a la unidad.
Usa la funcion redondear, o truncar segun sea el caso para obtener un importe sin centesimos diez milesimos etc.
Dale formato general a la celda para ver si no tiene mas decimales ocultos que no se ven con el formato de millares.
GCHABLE.
LO MODIFIQUE DE DIFERENTES MANERAS, LE PUSE, LE QUITE, PERO SIGUE IGUAL, A QUE CORREO TE MANDO UN ARCHIVO PARA QUE LO VEAS.
GRACIAS.
NO PUES SOLO PARA FELICITARTE ME SIRVIO DE MUCHO YA ME LOSABIA PERO COMO TENGO OFFICCE 2007 EN INGLES SOLO KERIA ACORDARM..
OYE SOLO PARA QUE ALGUINE ME AYUDE
AHORA KIERO LO MISMO PERO EN DOLARES
CANTIDAD EN LETRA EN DOLARES..
URGEEEEEEEE
YA GRACIAS YA LO CREEE YO MISMAAAAA EEE
ES FACILL INTENTENLOOO
SI KIEREN EL TIP DIGANME
ES FACIL ME GUSTA ENCONTRAR LO DIFICIL
Muchas gracia a sido de gran utilidad, estoy en colombia y aca no utilizamos 00/100, me colaboraria informandome como puedo para que los centavos me aparezcan en letras gracias
Excelente macro, me ayudo mucho en un desarrollo que estoy haciendo
Hola gchable, no podia quedarme atrás para agradecerte lo que me haz ayudado, la macro es super sencilla de utilizar a mi me ha funcionado excelente. Gracias y felicidades.
Desde Guadalajara.
Gonzalo:
Dejame darte la gracias, esto me servio para realiza un recibos de asimiliados, soy uno de los que mas le intelige a la pc, mi trabajo no quedaria sin esta macro.
Lo que te puedo decir es que sigo trabajando por ti.
Lo que unico que me queda es ayudar alguien mas, y que siga generandose esta cadena de ayuda y que en algun momento cuando lo necesites se te regrese.
Execelente formula muchas gracias!!! tarde mucho en encontrarla
EXELENTE, TANTO TIEMPO BUSCANDO Y AL FIN LO ENCONTRE…UNA PREGUNTA FUNCIONARA EN ACCES?
SALUDOS Y FELCITACIONES
Excelente.. gracias
Excelente gonzalo_conta, muchas gracias por el aporte, y un granito de arena, para guardar un complemento, simplemente es guardar tu archivo de excel pero como complemento de excel, Archivo / Guardar como / complemento de Microsoft Office Excel, de esa forma lo puedes utilizar en otro archivo excel, ingresando en Herramientas / Complemento / Examinar.
Saludos
Gracias….excelente Gonzalo, es un tremendo gran aporte…visite varios sitios…pero solo el tuyo da en el punto..EXCELENTE!!!
Muy agradecido por tu gran aporte!!!
Me servira mucho.
muy bien aplicado pero esta limitado a millones me podrias decir como se realiza este ejemplo para calcular miles de millones y billones,,,,,,,,
gracias!!!! y muy bien gracias por el apporte
Me rindo, agradezco tu amabilidad, dejame decirte que sigo tus instrcucciones, pego el codigo me salgo con alt+Q coloco la funcion =PesosMN() me funciona de maravilla estoy contento, pero de alli que hago? no se como guardarlo! lo he hecho de mil maneras me salgo pero cuando quiero entrar nuevamente al archivo me sale un mensaje de Microsoft debe cerrarse y enviar informe… es decir yo quiero llevar la formula a un archivo lo hago pero me sale ¿NOMBRE? YA hice todo lo de habilitar todas las macros en seguridad de la macro, lo de alerta de seguridad tengo office 2007.Debe haber algo facilito en que debo estar fallando ayudame! El codigo trabaja cuando lo pego en la macro pero como lo uso en otro archivo, como vuelvo a entrar a ese archivo y corregir por ejemplo lo de “SON” Microsoft con su mensaje no me deja entrar al archivo….
Mira la hora en la que me estoy desvelando… antes que nada tambien ya guarde el archivo como complemento de Excel y aun asi no puedo utilizar tu maravillosa conversion de numeros a letras, me conformo con pegar el codigo ver que funciona de maravilla y solo es alegria de pobre porque cuando me salgo de excell solo queda el recuerdo de que funciona pero lo que quiero es aplicarla a unos recibos que necesito hacer en EXCEL
Muy bueno el codigo fuente te felicito la verdad lo necesitaba muchisimo.
Gracias por el aporte que haces con nosotros principiantes.
hola amigo, soy de Guatemala, y he visto como has ayudado a toda esta gente,quisiera saber si me ayudas con un codigo o una funcion q convierta valor numerico a texto en quetzales verdad,estare muy agradecido ya que en mi trabajo me pidieron eso,pero por no saber mucho solicitu tu ayuda para salvar mi trabajo, te lo agradeceria mucho.
Gracias, no suelo necesitar de cambiar de números a letras pero de ves en cuando me traen facturas a llenar y este macro me facilitó las cosas,
Garacias mil de nuevo
Muchas gracias, lo digo de broma pero en verdad dedique mucho tiempo para poder utilizar esta opcion y nadie podia ayudarme, hasta que por suerte cai en este sitio.
lo felicito por sus conocimientos pero sobre todo porque tiene usted el don de COMPARTIRLOS
Hola Gonzalo, esta opción me está ahorrando mucho tiempo en el trabajo, así que gracias por compartila.
Una pregunta, podría cambiar el orden de PESOS 00/100 MN a 00/100 PESOS, simplemente?
Nuevamente gracias
Saludos
gracias por compartir tus conocimientos, eso habla muy bien de ti..
mil gracias.
hola, soy de colombiana, y he visto como has ayudado mucha gente,quisiera saber si me ayudas con un codigo o una funcion que convierta un valor numerico en letras pero en pesos colombianos ,estare muy agradecido ya que en mi trabajo lo necesito para egresos y fecturar ayudame porfis es urgente.
UN ABRZOTE Y BENDICIONES
Excelente aportación muchimas gracias por compartir tus conocimientos
Un abrazo
respuesta para carlos del 11 de septiembre yo lo guarde como complemento y si pude usarlo despues en otros archivos que tenia almacenados en usb espero que te sirva como lo hice las instrucciones estas son cuando estas en donde pegaste la programacion.
ahora bien, para que lo tengas siempre disponible debes guardar este libro asi como esta con las siguientes opciones:
Archivo, guardar como, colocale un nombre y cambien en guardar como tipo Compremento de Microsoft Excel *.xla, una vez que lo haz guardado, con el excel abierto vas a herramientas, complementos examinar, buscas la ruta, lo agregas y lo dejas tildado en la lista de complementos, cada vez que abras el excel se abrira ese lobro dejandote la funcion disponible en cada sesion de esa maquina, si requieres utilizarlo en otra maquina repite el paso de agregar el complemento
tu programa me sirvio muchisimo, te agradezco tu ayuda
mil gracias
Muchas gracias, estuve tratando varias veces de aplicar esta función y no había podido, en cambio de la forma como lo explican aqui es muy facil y funciona a la perfección…gracias nuevamente.
Una pregunta si abro el archivo en otro equipo puedo ver la información igual o solo me sirve para el equipo donde la grabe?
Hasta pronto
Muchas gracias me sacaste de un gran apuro para facturar, saludos…
Excelente aportación, dado que el nuevo excel trae algunas deficiencias que el anterior no traia, felicidades.
Excelente!!!!!!!!!!!!!!
es el mejor que he encontrado y eso que he usado varios.
gracias
no soy muy bueno en este tipo de comentarios, pero al cesar lo que es del cesar y de todo corazon lo felicito Gonzalo; que bueno es contar con personas super pilas q comparten su conocimiento para un buen fin
Dios le bendiga , augurandole muchos exitos mil felicidades Robin
GRACIAS POR TODO, EXELENTE DE TU PARTE POR COMPARTIR TU CONOCIMIENTO, UN ABRAZO DESDE CHIMBOTE – PERU.
FUNCIONA EXCENTE EN EXCEL 2007
Te felicito por el bien que nos haces a todos compartiendo lo que sabes… Me encanta!
oye esta genial pero como le hago para convertir numeros de 15 cifras por que esa es mi tarea y eso que estoy en primero de secundaria AYUDAME POR FAVOR SI!!!!!!!!!!!!!!!!!!!!!!!!!!!
Hola, antes que nada muchas gracias por el código y las instrucciones. Pocas son las personas que conocen excel tan a fondo. Escribo porque se me hizo interesante la posibilidad de que no escriba nada si la cantidad es 0 o si la celda no tiene nada escrito, ya que pone “PESO 00/100MN” ¿Me puedes dar alguna idea de como hacerlo?
Muchas gracias y felicidades
Yenssen usa la siguiente formula =SI(A1<1,”",PesosMN(A1))
como le hago para que se convierta en dolares
desde hace tiempo andaba en busca de esta informacion y por fin lo encontre contigo, ya quedo mi libro, muchas gracias por compartirnos tus conocimientos.. que dios te bendiga!!!
Ola, muchas gracias por el codigo y la ayuda, solo quisiera saber como le hago para que en vez de pesos salga otro moneda o simplemente no salga la palabra pesos porque la moneda de mi pais es otra. si se pudiera son QUETZALEZ. gracias n serio…
Oye muchisimas gracias llevaba años buscando esta fución en Excel, ahora me has ahorrado hacer esto cada vez, de verdad 1000000000 de Gracias
EP
Mr. gchable:
Gracias por compartir lo que sabe, quisiera me sacar de mi ignorancia, manejo cantidades como 9.5 son premedios trabajo en una Escuela, que modificaciones puedo hacer.
Anticipo mi agradecimiento desde Tepeaca, Puebla,
Hola Me podrías ayudar con algo muy sencillo necesito una función para convertir un número a texto. Estoy haciendo planillas de calificaciones y las notas se escriben en números y letras.
Ej: 4 cuatro
Yo sólo quisiera escribir la nota en números y que excel me escriba en texto la nota automática.
Desde ya muchas gracias.
Por favor me podrías ayudar.
Carolina
Gonzalo:
Tengo una archivo de excel programado con un combobox para que en la celda selecciona se muestre el valor que yo escoja que lo tomo de otra hoja del mismo archivo donde está mi lista de clientes.
El problema que se me presenta es que cuando modifico o inserto un nuevo registro en la lista me sale un mensaje de error de la clase “range”. Simplemente doy click en finalizar el depurador y ya me deja trabajar, pero es muy molesto que se presente cada vez que edito algún dato en esa hoja. A continuación menciono el código de progración para ver si me puedes ayudar con ese detalle.
Private Sub ComboBoxNombre_Change()
Range(“B1″).Select
ActiveCell.FormulaR1C1 = ComboBoxNombre.Value
End Sub
Muchas gracias
Gonzalo:
Ayer te pedí ayuda para el código de programación de un combobox, pero no mencioné mi correo:
lupita_ramirez@infinitum.com.mx
Muchas gracias.
hola, esta super bueno el codigo, solo que como le puedo hacer para que aparaesca un millon de pesos, ya que solo aparece un millon pesos
muy bueno, gracias y muy cencillo de entender, ahora necesito uno igual pero para la hora…
GRACIAS ERES GENIAL, PERO TENGO UNA DUDA, CASI NO SE DE MACROS, Y SEGUI LOS PASOS QUE ESTAN AQUI, Y RESULTO BIEN,SIN EMBARGO EN LOS LIBROS QUE YA TENGO, QUISE COPIARLO PERO NO SUPE COMO, ES DECIR, EN ESTE CASO COMO LE HAGO PARA COPIARLO EN OTROS LIBROS, PORQUE ABRO EL LIBRO QUE QUIERO SE LLAMA FACTURAS, ENTONCES LE DOY HERRAMIENTAS LE DOY EDITOR VISUAL BASICS, LE DOY INSERTAR MODULO, Y COPIO TODO IGUAL PERO YA NO ME RESPETA LA FORMULA, ME PODRIAS INDICAR QUE HECHO MAL O COMO PODRIA HACERLE PARA QUE ME RESPETE LA FORMULA EN EL LIBRO, DE CUALQUIER FORMA MUCHAS GRACIAS POR TU ATENCION
Genial, de todo corazón lo felicito y le agradezco en el alma el que comparta sus conocimientos de esta manera tan altruista. CHAPEAU
ME FUNCIONA DE MARAVILLA AHORA PEDIRIA DE TU APOYO PARA QUE EN LUGAR DE PESOS SEAN DOLARES
GRACIAS
Wow! Gracias, ojalá y hubieran mas maestros como vos. Felicidades.
Gracias por el aporte llevaba un año buscando, que bueno que existen personas como usted dandole a conocer a los que no sabemos.
alguien puede ayudarme tengo un problema con las tablas excel 2007. De accidente le quité la opción para que cuando ingrese un registro se añada automaticamente a la tabla….. la he buscado para colocarla y no puedo…. no se como tengo que estar arrastrando con el mouse….. sirvanse ayudarme por favor
Excel
1. On the Developer tab, click Visual Basic.
HideI don’t see the Developer tab
1. Click the Microsoft Office ButtonButton image, and then click Excel Options.
2. Click Popular, and then select the Show Developer tab in the Ribbon check box.
Note The Ribbon is part of the Microsoft Office Fluent user interface
2. On the Help menu, click Microsoft Visual Basic Help.
3. In the Type words to search for box, type the method, property, function, statement, or object for which you want help, or type a query.
para el ke no encontraba visual basic de excel 2007
Hola,
Buenas noches. Quisiera agradecerte Gonzalo, por la información que de muy buena manera pusiste para el conocimiento de todos nosotros quienes visitamos tu blog, sin duda es de valiosa ayuda.
Por otro lado quisiera también agradecer a Pelayo sus comentarios adicionales en donde nos muestra como guardar y hacer válido esa Macro para todas las hojas de cáculo que queramos usar, él lo hizo para Excel 2003, dejo aqui como guardarlo y hacerlo váldio en Excel 2007.
*****
1. Haga clic en el botón de Microsoft Office Imagen del botón y, a continuación, haga clic en Opciones de Excel.
2. Haga clic en Complementos y, en el cuadro Administrar (parte inferior de la ventana), seleccione Complementos de Excel.
3. Haga clic en Ir.
4. En el cuadro Complementos disponibles, active la casilla del complemento que guardaste (aparecerá en ese listado el nombre que guardaste antes) y, a continuación, haga clic en Aceptar.
******
Espero que ésto también le pueda servir a alguna otra persona.
Saludos
Carzuri
gracias te estare eternemente agradecido
hola quiero hacer un pregunta como yo eso lo puedo colocar en todos los programas como power point word
habra una forma de masificarlo en mi computador ante toso gracias
Hola
tengo un problema con el codigo y es el siguiente:
cuando pongo 1000000 me sale un millon pesos 00/100 M.N.
como le hago para poner la palabra de antes de pesos.
tambien pasa lo mismo con 2000000, 3000000, etc
WILLDV, prueba modificando el codigo, busca:
” MILLON”, ” MILLONES “) reemplaza por ” MILLON DE”, ” MILLONES “) espero que te sirva.
si me funciono como me dijiste pero ocurrio un error como consecuencia:
1,250,350.00 son: un millon DE doscientos cincuenta mil trescientos cincuenta pesos 00/100 m.n.
a lo que me refiero es que sale la palabra DE cuendo no es necesario, ¿ se le puede añadir lineas de codigo para que la palabra DE salga cuando sea necesario?
Excelente trabaja muy bien, gracias…
Hola, ya lo hice pero no me aparece el nombre con letra….solo #¿nombre?….
que puede estar pasando? gracias
Oye!!! mil gracias… estaba buscando eso para excel 2007… ke amable!!!
Te agradezco mucho por compartirnos la solución de este problema.. Saludos desde Bolivia
GRACIAS TE PASATE….
GRACIAS TE PASASTE….ERES UN GENIO
te pasaste muyyyy bueno
pero una consulta para que al final no salga por ejemplo
$51.952
SON: ( CUARENTA Y TRES MIL SEISCIENTOS CINCUENTA Y SIETE PESOS 00/100 M.N.)
eso q sale al final
a y tambien el número el ultimo me lo cambia
por favor yo creo q eres el único que me puede ayudar
graciasssssssss
hola… muchisimas gracias….
me funciono perfectamente
no sabes cuanto me has ayudado
que bueno que no eres egoísta con tu conocimiento.
besos!!!!
Funciona a la perfeccion harmano… muchas gracias, mira a cuantos has ayudado.. saludos
Muchas gracias, de todas las respuestas que encontre, lejos la tuya es la mejor…
solo tengo una duda, si quiero que los decimales tambien sean transformados a letras, cómo puedo hacerlo?
Gracias
Sara
hola amigo, oye fijate que abri la hoja de excel 2007 e hice todo lo que decia, si me funciono todo bien pero una vez que cerre la hoja de excell me aparecio lo siguiente:
“Las siguientes caracteristicas nose pueden grabar en libros son macros….Proyecto VB…..Para guardar un archivo con estas caracteristicas, haga click en NO, y a continuacion elija un tipo de archivo habilitado para macros en la lista tipo de archivo…….Para seguir guardadndo este archivo como libro sin macros, haga clic en SI”
le di clic en si porque no tengo un libro en macros entonces cuando volvi a abrirlo la funcion me salia asi:#¿nombre?…. que hago mi estimado mandame a mi correo plis!! te agradesco!!
Hola muchas gracias por el dato.
Quisiera saber como podria hacerle si quiero que
tambien me salga con formato de U.S.
Gracias me ayudo mucho
HOLA HOLA!, ESPERO QUE ESTES SUPER BIEN, BUENO PUES MUCHO QUE AGRADECERTE, EN VERDAD ERES UN EXPERTO EN ESTO EEH!, VAYA QUE ME HA SERVIDO MUCHISISISIMO TU IMFORMACION, YA EN 2 OCASIONES ME HA SERVIDO PORQUE HAN SIDO PARA EXAMENES FINALES, GRACIAS Y MUCHA SUERTE!
Excelente aportacion! Muy bien explicado! 100% Mexicano!
FELICIDADES!
hola, oye tengo un problema todos los pasos que pones son muy faciles
pero cuando quiero guardar el libro me sale un mensaje que dice: que no pueden guardar libros sin macros.
.proyecto VB.
y dice que para guardar un archivo con estas caracteristicas, elija un tipo de archivo habilitado.
y gracias de antemano
Hola, muchas gracias por toda tu información, pero tengo un problemita, ¿cómo puedo hacer para que las cantidades me salgan en inglés?… gracias por tu apoyo
Hola, tengo una duda, al salir de mi Hoja de calculo, el macro creado se borra, espero puedas ayudarme.
Utilizo Office 2007.
El macro me funciono perfectamente, el unico inconveniente es al momento de salir.
gracias esta de poca madie me habia podido ayudar con referencia a si se puede convertir en ingles le Hice unas modificaciones claro tu ya la sabes te la mando para que la cheques
Jorge A López T
Dic-19-08
Tu programa es excelente, pero no cubre calores superiores a 999.999.999 sería posible que lo hiciera ?
gracias y saludos.
Bucaramanga, Colombia
Hola, Gonzalo y feliz navidad.
Es que no se si se puede pero seguro que si se puede tu lo sabras, jeje.
Tengo que hacer un cuadrante del mes. donde solo ponga una letra en cada celda y esta sea un valor el cual al final se sume todas las celdas.
Es decir en las filas iria el nombre y en las filas los dias del mes.
M= mañana = 8 horas
T= tarde = 6 horas
D= Dia = 13 horas
tendria q poner en cada celda M, T, D y al final me daria las suma de las horas.
Espero que me haya explicado bien y que tenga solucion.
GRACIAS
MUCHAS GRACIAS, ME SIRVIO MUCHO Y A LA PRIMERA ME SALIO
por fin algo que realmente sirve ..!!
Excelente, grn aporte y grcias por compartir tus conocimientos.
Gracias te felicito corrio a la primera aunque lo modifique para la moneda de mi pais Venezuela
Hola.
esta increíble el dato,
solo puedo decir …. gracias mil!
saludos!
EXTRAORDINARIO!!!
Si funciona, y funciona muy bien. (como dicen por ahi)
Lo que esta perfecto es la explicación. Desconozco tu profecion, pero doy gracias que personas como tu compartan sus conocimientos.
Nuevamente, MIL GRACIAS.
Gracias amigo me sirvio mucho, una pregunta y para cambiar a la moneda de dòlares que debo hacer.
Saludos Cordiales
Francisco
Sr. Mil gracias por tu apoyo.. como varios de los comentarios… te confirmo es la mejor explicacion y guia de como hacer esta funcion…
Gracias por tu ayuda….
Saludos desde la tierra del Sarapé….
tanto que batalle, si hubiese visto este blog antes, no hubiese batallado tanto.
Tengo un problema, en una computadora copie el libro con otros nombres y me aparecio un error, me aparece: ” #¿NOMBRE? “, solo pude trabajar con con un solo libro y no pude hacerlo con ningun otro, me aparecia: ” #¿NOMBRE? “.
¿que puedo hacer? ¿talvez hice algo mal?
Atte., Raul
GRACIAS ESTO ESTA EXCELENTE Y LE HICE ALGUNAS MODIFICACIONES EN PASARLO A DOLARES AMERICANOS
gracias amigo, por compartir cuestiones que muchos suelen quedarse con ellas y lo peor q no son de su autoria, muy loable lo que haces por todos los neófitos que buscamos y buscamos por todos lados. Jaja gracias
Me podria decir como le quito los parentesis
delarivaricardo@turbonett.com
gracias
CHULADA
DEBES ESTAR CANSADO DE TANTA FELICITACION. PERO EL TUYO FUE EL UNICO QUE ME DIO RESULTADO DE VARIAS CONSULTAS.
Muchas Gracias!!!
ES una EXCElente Aportacion!!!!!
FELICIDADES, SABES EXPLICAR MUY BIEN ME SALIO A LA PRIMERA Y BUSQUE VARIOS, NINGUNO LO PUDE USAR.
ESTE ES EL MEJOR
GRACIAS
Simplemente !Excelente! si me sirvio muchas gracias….
Esta super tu programa……….me saco de un apuro mil gracias y que sigas teniendo exito
MUCHAS GRACIAS POR ESTE METODO ,SOLAMENTE TENGO DIFICULTAD PORQUE AL GUARDARLO SO SE SOSTIENEN LOS CAMBIOS Y CUANDO SE VUELVE A ABRIME RECIBE LA FORMULA.
EN ESPERA DE SU RESPUESTA GRACIAS.
tienes alguna solución para convertir numeros de horas y minutos en texto?, por ejm. para 5:13 obtener “cinco horas trece minutos”?. muchas gracias, anticipadamente.
siguiendo mi pregunta anterior, pudiera ser también: 5:13 a “cinco horas 13/60″?. Gracias.
muchas gracias por esta explicación ya tenia mucho buscando y no entendia
HOLA AMIGO MUCHISIMAS GRACIAS POR TU APORTE …CONSULTE A MUCHOS ….NO MEDIERO ESTO ES EL UNICO DE UD FUNCIONO GRACIAS A UD…SOLO UNA PREGUNTITA SI YO QUIESIERA EN SOLES Y ADEMAS QUE DE CON TENTIMOS MAS…GRACIAS.
HOLA AMIGO MUCHISIMAS GRACIAS POR TU APORTE …CONSULTE A MUCHOS ….NO MEDIERO ESTO ES EL UNICO DE UD FUNCIONO GRACIAS A UD…SOLO UNA PREGUNTITA SI YO QUIESIERA EN SOLES Y ADEMAS QUE DE CON CENTIMOS MAS…GRACIAS.
amigo René, yo lo adapte a soles, moneda peruana, además me sale con el texto 00/100 nuevos soles, si gustas te puedo pasar la codificación de la macro, mi correo es wilberzr@hotmail.com
esta muy buena
si tengo un problema tengo que cuadrar los centavos ya que aca no trabajamos con estos y si es menor que 0.49 debe vajar y si es mayor a 0.5 debe subir
ejemplo 135,49 debe quedar en 135 y si es 135,51 debe quedar en 136
si se puede Haser algo
gracias
homabre eres el primero que explica con toda facilidad este show, la verdad me quede con los ojos cuadrados, funciona perfectamente.. lo puede en excel 2007 es un poco diferente la entrada pero es lo mismo, gracias.. y que tengas toda la suerte del mundo por ser tan amable de compartir lo que sabes.
Muchisimas gracias por el dato no sabes de cuanta utilidad, gracias por explicarlo de una manera tan sencilla y aprovechando tengo un problema al teclear una cifra en cualquier libro de excel en mi mauina en vez de apracer la cifra $1,000.00 que seria la manera correcta aparece $1.000,00 (me cambia los puntos por las comas) ya cambie el tipo de letra verifique que sea tipo modena lo cambie a contabilidad y nada quisiera saber si podrias ayudarme PORFAVOR!!!!! de verdad es algo muy importante para mi ya que yo elaboro facturas y las cifras deben ir correctamente MUCHAS GARACIAS!!!!
GRACIAS,GRACIAS,GRACIAS. De verdad que ayudo esto. GRACIAS
Si en algo puedo servir contactame.
Gracias, muy buen codigo y de mucha ayuda.
gonzalo te felicito por compartir con todos nosotros informacion que es muy util, muchas gracia
Excelente !!! Muy ingenioso, gracias por compartir tus conocimientos. yo lo habia logrado generando una base de datos de cierta cantidad de numeros y textos, y utilizando varias funsiones, pero se hacia muy pesado el archivo con tanto texto.
Nuevamente agradesco.
Muchas gracias me ayudo muchisimo su macro, al igual que el articulo encontraba otras pero no se ajustaban a mis necesidades.
Felicidades por su articulo.
excelente
Felicitaciones al creador de esta macro, es de mucha ayuda.
yo habia hecho un pequeño ejercicio utilizando la funcion buscarv,y formulas condicionales. pero solo hasta miles. es bastante complicado programar las formulas mas alla de 9.999,99
esta macro la modifique para adaptarla a los Bolivares, si alguien la quiere solo pidamela a mi correo magelp#hotmail (sustituyan # por @ y agreguen .com) es para evitar copiadores automaticos de correos.
Mi muy estimado Sr. gonzalo_conta
Estoy preparando un documental para intentar explicar la actual crisis económica (escribo esto el 26/feb/2009) y como las cifras que se manejan son totalmente inasibles para la mente, trataré de graficar las mismas fraccionandolas.
Su valioso aporte es de enorme ayuda para este trabajo que lo estoy haciendo también, sin ánimo de lucro, ya que mi trabajo es la fotografía. -Si me contacta por correo electrónico le enviaré el archivo de fotografias de la actividad cultural de mi ciudad-
Ahora bien, logre hacer algunas modificaciones para que quede asi como le muestro, pero el sistema deja de funcionar a partir de mil millones. ¿Cual puede ser la solución?
1 UN
10 DIEZ
100 CIEN
1.000 UN MIL
10.000 DIEZ MIL
100.000 CIEN MIL
1.000.000 UN MILLON
10.000.000 DIEZ MILLONES
100.000.000 CIEN MILLONES
1.000.000.000 MILLONES
10.000.000.000 #¡VALOR!
100.000.000.000 #¡VALOR!
1.000.000.000.000 #¡VALOR!
10.000.000.000.000 #¡VALOR!
100.000.000.000.000 #¡VALOR!
1.000.000.000.000.000 #¡NUM!
10.000.000.000.000.000 #¡NUM!
100.000.000.000.000.000 #¡NUM!
EXELENTE APORTACION Y LA VERDAD FUE EL MAS SENCILLO Y MEJOR EXPLICADO DE LOS QUE HABIA EN LA RED. MUCHAS GRACIAS Y QUE GRAN TALENTO TIENES SALU2 !!! ATTE. KIKE1984
Muchisimas gracias, me ha servido mucho.
Muy clara la explicaciòn.
Tambien gracias a “Pelayo” , pues lo guardè como El explica y me funciona cada vez que abro Excel.
mil gracias esta excelente tenia una semana de andarlo buscando y nada me funcionaba. solo es de leer detenidamente y un poco de concentracion y ya todo esta dado, este man es de miedo, gracias
Muchas gracias, funciona muy bien.
Sin embargo, despues de guardar y salir de Excel (2007), la siguiente vez que entro no funciona.
¿Alguien sabe porque?
mucha gracias muy bueno
debes de habilitar la macro, una pregunta donde quito la palabra un mil, que solo diga mil
elcodigo esta muy bien, tengo una duda, como lo puedo integrar a un formulario a la hora de ponerlo como boton de comando me pide un end sub al aplicarselo al final me sigue marcando error gracias por la informacion y en si el codigo es de muchisima ayuda gracias por compartir
Mil gracias por la explicacion tenia mucho tiempo queriendo hacer eso pero nunca lo habia logrado
Gracias
Muchas pero muchas gracias de verdad, hacía bastante tiempo que estaba buscando esta fórmula pero no la había podido encontrar por ninguna parte así de simplificada y ejemplificada a la vez, nuevamente muchas gracias….Atentamente, Eliana
CONTA GRACIAS POR EL CODIGO ESTA EXCELENTE Y SOBRETODO GRACIAS POR COMPARTIRLO, UNA PREGUNTA, QUEIERO QUE TAMBIEN LOS CENTAVOS LOS DESCRIBA EN LETRAS COMO LE HAGO POR FAVOR
ATENTAMENTE
HUGO
Hola Gonzalo, necesito convertir números en letras del 1 hasta un millón pero no con código “Macro”.
Estoy trabajando con matrices y la fórmula para resolverlo tiene que estar en funciones sencillas como(Si, concatenando,buscar, etc.)
La respuesta tiene que darme en una sóla casilla.
Por favor deme ideas de cómo puedo resolverlo. Gracias
MIl gracias un macro muy util y buenisimo
Gacias mil……
ESTIMADO SEÑOR:
QUISIERA AGRADECER POR ESTA INFORMACION QUE HA COMPARTIDO HE BUSCADO DURANTE BASTANTE TIEMPO ESTA INFORMACION Y LA QUE UD HA PUBLICADO HA SIDO MUY METODICA Y CLARA, SIN EMBARGO SE ME PRESENTO EL SIGUIENTE PROBLEMA Y QUISIERA SI UD. ME PUDIESE EXPLICAR COMO PODER SOLUCINARLO.
EL CODIGO ME HACE LA CONVERSION HASTA 999 MILLONES Y NUESTRA BASE DE DATOS IMPLICA VALORES SOBRE LOS MIL MILLONES, HE TRATADO DE MODIFICAR EL CODIGO SIN RESULTADOS. AGRADECERIA QUE UD. ME PUDIESE AYUDAR EN COMO MODIFICAR EL CODIGO PARA QUE CONVIERTA VALORES SOBRE LOS MIL MILLONES.
POR EJEMPLO 1.245.576.879 PESOS
AGRADECIENDO SU COLABORACION.
ALEJANDRO
ALEJANDRO CHILE, Con este pequeño codigo por el momento no es posible, mira aqui por favor http://www.teladearana.es/todo-informatica/84-convertir-nos-a-su-equivalente-en-letras.html
oyes muchas gracias que dios te bendiga estoy segura que puedes entrar a la asociación MENSA
SALUDOS
Gracias si me sirvio despues de 4 hr en busqueda y entenderle por fin enconre la opcion como funciona mil gracias hehehee
No manches, esta con ganas tu solucion, te avientas bato…….excelente, muchisimas gracias……
Me sigue saliendo #¿NOMBRE? y ya hice lo que mencionaste de bajar la seguridad de macros a media q hago ?????
Muchas gracias por el aporte me parece genial y muy bien explicado por cierto.
Hola espectacular tu formula muchas gracias, solo una consulta señor como puedo hacer para que escriba solamente hasta pesos
por ejemplo:
450 = son : cuatrocientos cincuenta pesos
ESTA BIEN POR QUE AL PRINSIPIO SI DIO EL NUMERO LUEGO AL CAMBIAR LA CONTIDAD DE LA CELDA YA NO SIRVE
no ce
La verdad muchisisisisisisimas GRACIAS!!!!!
gracias me sirvio de mucho muchas gracias….me salvaste
Hola
Aunque sea redundante, esta muy profesional tu explicacion.
Pero no puedo grabar lo realizado en visual, me arroja un error y me dice que “no se puede realizar la operacion solicitada”
Porfavor ayudame, estaria muy agradecido.
Saludos
Matias Medina
Muchisisisisisisimas gracias
eres un angel
QUE EXCELENTE INFORMACION QUE NOS HAS DADO. TE LO AGRADEZCO
PODRIAS DECIRME COMO CAMBIAR ALGUNAS INSTRUCCIONES PARA QUE SE LEA ALGO ASI COMO ESTO:
23.52 …… VEINTITRES Y 52/100 NUEVOS SOLES 0
71.33……. SETENTIUNO Y 33/100 NUEVOS SOLES
ES PARA PERU , MUCHAS GRACIAS DENUEVO.
SR. mis respetos
excelente codigo, anteriormente contaba con uno pero no añadía MN 00/100, lo cual era un problema, con este codigo tuve algunos problemas pero leí todas tus sugerencias a las preguntas que te hicieron después y finalmente quedo en excel 2007.
bien hecho.
Hola, funciono muy bien!!, ¿como puedo hacer para utilizar esta funcion en cualquier libro, sin que este abierto en el cual lo grave?
agdezco comentario
QUIERO AGRADECERTE ESTA UTIL INFORMACION QUE COMPARTES. De todas las que he probado, es la mas sencilla y eficiente, y… de nuevo GRACIAS
Es increible que los usuarios lleguemos a este nivel de entendimiento y se logre que el conocimiento se difunda libre y democraticamente.
Muchas felicidades a todas las personas que contribuyeron a esta ayuda que es de utilidad para muchos.
Muy Buen Aporte Gracias
GONZALO Buenos días. Como le puedo hacer para que esta funcion de convertir numeroa a letras en Excel. Me funcione para cualquier libro. Sin necesidad de hacer el procedimiento cada ves que lo quiera aplicar para otros libros, ya que no me esta funcionando para más libros. Te agradesería michisimo tu ayuda…………… Gracias
Carlos, lo que tienes que hacer es insertar el “modulo” en cada uno de tus libros de trabajo.
Cuando creas un libro nuevo y si vas a usar la funcion, tienes que insertar el codigo, ya que si agarras la funcion de otro libro se perderá al cerrar.
saludos.
HOLA, FELICIDADES Y MUCHISIMAS GRACIAS, PERSONAS COMO TU HAY POCAS, Y QUE DIOS TE SIGA BENDICIENDO CON MAS INTELIGENCIA DE LA QUE TIENES, Y ESPERO LA SIGAS COMPARTIENDO POR QUE NO TODOS LA COMPARTEN SON EGOISTAS.
OTRAVEZ MIL GRACIAS.
Oye mil gracias, esta super way
me has salvadola vida, saludos desde cancun
Me ayudo muchisimo. Gracias por compartilo¡¡¡¡¡
Orale erisel, vayamos a la yaxchilan a tomar unas chelas!
OMG……….. MEN, ACABAS DE SOLUCIONAR… UN PROBLEMA QUE TENIA DESDE YA HACE TIEMPO…. Y PROBE CON 2 O TRES MAS DE OTRAS PERSONAS… PERO NO FUNCIONABAN…. LA TUYA… FUNCIONA A LA PERFECCION… GRRRAAAAACIAAAS!!!!
Quiero agradecerte la facilidad y el apoyo para utilizar parte de tu trabajo, ya que me ha sido de gran apoyo y utilidad.
Muchas gracias
muchisisimas gracias es exelente
estaba como loquita buscando la forma y apenas lo encontre con usted,
LO LOGREEEEEEEEEEEEEEEEEEEE
TENIA SEMANAS INTENTANDO
Y AL FIN LO LOGREEEEE
GRACIAS CONTA_CONZALO MILLLLLLLLLLLL GRACIAS 00/100
Muchas gracias, por tu colaboraciòn, Dios te bendice siempre a ti y a tu Familia.
Saludos desde Oaxaca, que cuando quieras pasar unas vacaciones con gusto te atendere.
MASTER . . . MUCHAS GRACIAS
ME ES MUY ÚTIL TU MACRO.
SALUDOS DESDE VERACRUZ
Hola:
Gracias por compartir tu trabajo con las demas personas. Esta macro es muy importante para realizar gran cantidad de trabajo.
Sin embrago yo segui los procedimientos para copiar la macro, la primera funcionó pero al volver a copiarla al siguiente dia no funcionó, sale el siguiente mensaje:
#¿NOMBRE?
Todas las macros estan habilitadas, esto lo he repetido como 10 veces y no he logrado.
¿Hay otra forma de guardarlo?
Gracias por tus aportes.
Fidel Cruz
Hola Fidel
A mi también me paso lo mismo. lo que tienes que hacer es guardar la macro en personal.xls y de esta manera va estar disponible para cualquier libro. lo que tiene que hacer es anteponer a la función PesosMN( ) personal.xls! osea quedaría de la siguiente manera: =personal.xls!PesosMN(A1).
Es importante que solamente la graves una sola ves, en personal.xls, ya que de lo contrario no va a funcionar.
Espero sea de utilidad………….Saludos
Hola Mr. Gonzalo
Como puedo borrar las macros que tengo guardadas, o sea dejar en cero todo.
Tengo una urgencia con esa macro. me ahorraría gran cantidad de trabajo.
Gracias por su ayuda
Wooo!!! Genial …. mi respeto … super tu respuesta..funciona excelente…
Saludos Esme
Super!!! ya lo utilice y funcionó a la perfección… MIL GRACIAS
Saludos desde Queretaro, México
LIZ.
Excelente!!! realmente genial… estoy facinado con tu grandeza amigo por compartirlo y con los que lo crearon… esta super facil con tu excelsa explicación…. nuevamente gracias.
Saludos y gracias por aportar ese conocimiento acabo de realizarlo en mi maquina. lei que bajando el nivel de seguridad de la macro al abrir uno nuevo, podria utilizarlo pero no funciona te garadecere si me ayudas en ello, y gracias nuevamente
MAS QUE EXCELENTE LA EXPLICACION PARA CREAR LA FORMULA Y EN HORA BUENA AL CREADOR… ES TODO UN GENIO ¡¡¡
EXELENTE GRACIAS ESTUVE BUSCANDO ALGO ASI ASE MUCHO TIEMPO Y ESTE ESEL MEJOR ESTA MUY BIEN EXPLICADO LE HICE ALGUNAS MODIFICACIONES PARA LO QUE NECESITO Y ME FUNCIONO CMO YO LO QUERIA y FUNCIONA PERFECTO EN EXEL 2007 GRACAS QUE BUEN APORTE
Exelente aporte, muchas gracias.
Muchas gracias en verdad despues de buscar mucho fue la unica realmente util. Me gustar[ia quitar los numeros que salen al final 98/100 o al menos saber su significado.
Gracias
buenas este apartado con esta explicacion esta exelente es el unico sitio donde pude lograr esto. muhas gracias porla ayuda
Su pagian es genial podemos seguir aprendiendo cada dia mas gracias a personas que dejan abietos sus conocimientos hacia los demas de verdad felicitaciones
Estimado Gonzalo,
Gracias por tu aporte, lo he adoptado a mi moneda y es de gran ayuda; pero tengo un problema, cuando necesito escribir en letras el numero 1,001 o cualquier numero que por unidad sea 1, la formula me da como resultado “UN” y deberia ser “UNO”, por ejm.
Numero: 1,001.00
Fórmula: UN MIL UN CON 00/100 NUEVOS SOLES
dederia ser: UN MIL UNO CON 00/100 NUEVOS SOLES
Numero: 201.00
Fórmula: DOSCIENTOS UN CON 00/100 NUEVOS SOLES
dederia ser: DOSCIENTOS UNO CON 00/100 NUEVOS SOLES
Tu crees que esto tiene solución?, de todas maneras Gracias por tu ayuda!
GRACIAS, GRACIAS, MUCHAS GRACIAS. ES JUSTO LO QUE NECESITO. FUNCIONÓ PERFECTAMENTE.
En excell 97 existia en la barra de herramientas Visual Basic; pero en excell 2007 en la barra no aparece este menu (HERRAMIENTAS), entonces que lo reemplazo? Como hago para trabajar con Visual Basic? desd excell 2007
Hoye esta muy bueno los pasos que nos das me agrado mucho la verdad le hice una mejoria para quitarle el (Son) y hacer que me escribiera (Veinte y un mil ) etc pero tube un problema la verdad en mi factura que realize esta fue la cantidad 961mts por $ 3.50 son sub total $ 3,363.50 mas el 15% que es 504.53 hal hacer la suma completa nos da $ 3,868.03 estamos claro pero al hacer =pesosmn(xcelda) meda en letras (Tres mil ochocientos sesenta y ocho pesos 02/100 mn a lo que me refiero por que me da en centavos 2 si debe de ir el numero 03/100mn espero me puedas hechar la mano muchas gracias
Daniel Lama, tienes que redondear tus numeros a dos decimales o truncar, ya que si aumentas el numero de decimales visibles te dras que tienes 3,868.025.
SALUDOS, TARDE MAS DE 2 AÑOS Y SOLO TU EXPLICACION FUE LA MAS SENCILLA, GRACIAS
QUE TAL GONZALO, HICE LO QUE DICES Y RESULTA QUE NO ME QUIERE FUNCIONAR, TAL VEZ SEA PORQUE ESTOY TRABAJANDO CON EXCEL 2007, CUANDO PRUEBO LA MACRO ME SALE ESTA LEYENDA: “ERROR DE COMPILACION, LOS COMENTARIO SOLAMENTE PUEDEN APARECER DESPUES DE End Sub, End Function, o End Property” Y ME SEÑALA ESTE RENGLON DE LA FORMULA QUE APARECE AL FINAL, ActiveCell.FormulaR1C1 = “1500.21″ SELECCIONADA LA CANTIDAD QUE APARECE ENTRE COMILLADA, ME PODRIAS DECIR QUE DEBO HACER PARA QUE FUNCIONE?, DE ANTEMANO TE AGRADEZCO, SALUDOS!!
DE POCA MAESTRO, ERES LA LEY, TE VAS A IR AL CIELO DIRECTITO, INSISTO DE POCA, MIS ALABANZAS Y MEJORES DESEOS
ATTE
EL TANQUE RODRIGUEZ
Simplemente te pasaste muchas muchas gracias por compartir amigo; estoy tratando de ponerlo a soles que es lo que se usa en mi pais
espero me salga
Genial, gracias por compartir amigo,genial eres lo maximo.
MIL GRACIAS ERA LO QUE ESTAB BUSCANDO
Hola
Muchas gracias por compartir tus conocimientos, hace unos días copie la programación del BV, y adapte a mis necesidades y funciona muy bien. Muy buen trabajo has realizado. He tratado de hacer una modoficación y no he podido realizarla, agradezco tu ayuda, la modicicación que quiero hacer consiste en los valores terminados en 1 (uno)mayores a 30 (treinta) por ejemplo 31 (treinta y uno); la macro lo escribe “treinta y un”, y si modifico en el sétimo renglon para que diga “uno”; luego cuando valores mayores a 999, por ejemplo; 1000, la macro me escribe “uno mil”. Gracias una vez más. Saludos. Mauro
Excelentisimo !!! Gracias…
Mui Buena informacion
mui bien explikada
Graxias x este aporte
esta mui bueno
me salio todo bien
no tube ningun problema para
entenderle.. mui bueno
GraXias Hasta LUego
Se te gardece wue te tomes el tiempo de explicar estos temas.
Gracias, buenos aportes
HOMBRE SI ALGUNA VES NESCITAS ALGO Y YO PUEDO AYUDARTE CUENTA CON ELLO EN CUALQUIER TIEMPO MI Email renegadohn@hotmail.com
no es broma
y GRACIAS
renegado_hn@hotmail.com ERROR DE DEDO EL ANTERIOR ES MI MAIL DISCULPA
Hola estimado,
Me sumo a todas las felicitaciones que haz tenido por el aporte que entregas.
Solo queria pedirte un grandisimo favor. Lamentablemente no se mucho de excel, pero pude aplicar la funcion en una planilla, pero lamentablemente aca en CHILE, nuestra moneda trabaja con valores enteros y sin decimales, ni centavos, por lo que te agradeceria si nos puedes realizar la modificacion para que al colocar un numero, solo escriba hasta la palabra “Pesos”.
Trate de redondear los valores, pero aun asi, aparece las siglas “00/100 M.N”
la idea es que fuera de la siguiente manera, ejemplo:
8.772.141 = “OCHO MILLONES SETECIENTOS SETENTA Y DOS MIL CIENTO CUARENTA Y UN PESOS”
Si algunos de los cibernautas sabe como poder solucionar este inconveniente, por favor envienme mail a:
contab1@veterquimica.cl
Muchisimas gracias por tu aporte GCHABLE desde Chile “el ultimo rincon del mundo”
Saludos
OYE ES MUY SENCILLA TU EXPLICACION GRACIAS…
Muchas gracias por el codigo me ahorro mucho tiempo para terminar el mio.
REspecto a la pregunta de marco de chile, solo debes modificar penultima linea del código:
original:
PesosMN = “SON: (” & PesosMN & IIf(tyCantidad > 1, ” PESOS “, ” PESO “) & Format(Str(lyCentavos), “00″) & “/100 M.N.)”
para que salga como tu quieres:
PesosMN = “” & PesosMN & IIf(tyCantidad > 1, ” PESOS “, ” PESO “) & Format(Str(lyCentavos), “00″) & “/100 .”
espero te sirva.
gracias a quien programo el codigo.
Tu macro funciona de maravilla pero, cuando lo grabo con la opción libro excel habilitado para macros ya que tengo Office 2007, y lo vulevo a abrir me sale un error.
Que puedo hacer?
si se necesita porner otra monea como es caso mio usamos “soles” solo cambias en el codigo donde dice “PESOSMN” POR “SOLESMN” Y EN VES DE SOLES DE FORMA PLURAL POER SOL EN FORMA SINGULAR GRACIAS POR TODO ESTE PUEDE SER MUY BUENO PARA REALIZAR FACTURAS O ALGO ASI
SALUDOS
Muchisimas gracias estupendo quisiera saber si con otras hojas se hace el mismo procedimiento o se graba para todas
Bogotà
Excelente!!!!! en verdad, tarde mucho tiempo buscando algo así y sobre todo con el 00/100 m.n., más que bien, por otro lado tuve algunos problemas para grabar el archivo ya que cuando lo volvia abrir ya no estaba la formula
, pero revisando todo el blog, me encontre la solución de guardarlo como un complemento, así que pensaron en todo. Felicidades y sobre todo por compartirlo en la red.
Hola solo quiero decirte que eres increible, me sirbio de mucho tu ayuda, te agresco por compartir esto con todos nosotros, seguire visitando tu pagina, gracias.
DESPUES DE BUSCAR Y BUSCAR, ENCONTRE LO MAS PRACTICO Y FACIL PERO SOBRE TODO UTIL, GRACIAS.
no le entendi a nada
Hola,
Me encontre esta macro de la verdad ya no se donde y solo hice algunos pequeños cambios para mexico, si a alguien le puede servir, para el tipo de moneda solo hay que cambiar en la funcion la palabra peso por la moneda deseada y lo que consideren pertinente, este es el codigo:
‘Una vez que has ingresado tu macro a excel, cierra el Visual Basic y enseguida escribes la
‘formula donde quieras que aparesca el texto del número a convertir ejeplo: suponiendo que
‘la cantidad a convertir está en la celda A1 y quiero me texto en la celda B7, entonces
’selecciona la celda B7 y escribo la formula siguiente:
‘
‘ =Numeros_Letras(suma(A1),”peso”,falso,”centavo”,”son: ( “,”/100 M.N. )”)
‘
‘ Así, cualquier cantidad que escribas en A1, está formula te la dará en texto.
‘
Public Function Numeros_Letras(ByVal Numero As Double, _
ByVal Moneda As String, _
Optional Fraccion_Letras As Boolean = False, _
Optional Fraccion As String = “”, _
Optional Texto_Inicial As String = “”, _
Optional Texto_Final As String = “”, _
Optional Estilo As Integer = 1) As String
Dim strLetras As String
Dim NumTmp As String
Dim intFraccion As Integer
strLetras = Texto_Inicial
‘Convertimos a positivo si es negativo
Numero = Abs(Numero)
NumTmp = Format(Numero, “000000000000000.00″)
If Numero < 1 Then
strLetras = strLetras & "cero " & Plural(Moneda) & " "
Else
strLetras = strLetras & NumLet(Val(Left(NumTmp, 15)))
If Val(NumTmp) = 1 Or Val(NumTmp) < 2 Then
strLetras = strLetras & Moneda & " "
ElseIf Val(Mid(NumTmp, 4, 12)) = 0 Or Val(Mid(NumTmp, 10, 6)) = 0 Then
strLetras = strLetras & "de " & Plural(Moneda) & " "
Else
strLetras = strLetras & Plural(Moneda) & " "
End If
End If
If Fraccion_Letras Then
intFraccion = Val(Right(NumTmp, 2))
Select Case intFraccion
Case 0
strLetras = strLetras & "con cero " & Plural(Fraccion)
Case 1
strLetras = strLetras & "con un " & Fraccion
Case Else
strLetras = strLetras & "con " & NumLet(Val(Right(NumTmp, 2))) & Plural(Fraccion)
End Select
Else
strLetras = strLetras & Right(NumTmp, 2)
End If
strLetras = strLetras & Texto_Final
Select Case Estilo
Case 1
strLetras = StrConv(strLetras, vbUpperCase)
Case 2
strLetras = StrConv(strLetras, vbLowerCase)
Case 3
strLetras = StrConv(strLetras, vbProperCase)
End Select
Numeros_Letras = strLetras
End Function
Public Function NumLet(ByVal Numero As Double) As String
Dim NumTmp As String
Dim co1 As Integer
Dim co2 As Integer
Dim pos As Integer
Dim dig As Integer
Dim cen As Integer
Dim dec As Integer
Dim uni As Integer
Dim letra1 As String
Dim letra2 As String
Dim letra3 As String
Dim Leyenda As String
Dim TFNumero As String
NumTmp = Format(Numero, "000000000000000") 'Le da un formato fijo
co1 = 1
pos = 1
TFNumero = ""
'Para extraer tres digitos cada vez
Do While co1 <= 5
co2 = 1
Do While co2 1 Then
Leyenda = “billones ”
End If
Case 2
If cen + dec + uni >= 1 And Val(Mid(NumTmp, 7, 3)) = 0 Then
Leyenda = “mil millones ”
ElseIf cen + dec + uni >= 1 Then
Leyenda = “mil ”
End If
Case 3
If cen + dec = 0 And uni = 1 Then
Leyenda = “millon ”
ElseIf cen > 0 Or dec > 0 Or uni > 1 Then
Leyenda = “millones ”
End If
Case 4
If cen + dec + uni >= 1 Then
Leyenda = “mil ”
End If
Case 5
If cen + dec + uni >= 1 Then
Leyenda = “”
End If
End Select
co1 = co1 + 1
TFNumero = TFNumero + letra3 + letra2 + letra1 + Leyenda
Leyenda = “”
letra1 = “”
letra2 = “”
letra3 = “”
Loop
NumLet = TFNumero
End Function
Private Function Centena(ByVal uni As Integer, ByVal dec As Integer, _
ByVal cen As Integer) As String
Dim cTexto As String
Select Case cen
Case 1
If dec + uni = 0 Then
cTexto = “cien ”
Else
cTexto = “ciento ”
End If
Case 2: cTexto = “doscientos ”
Case 3: cTexto = “trescientos ”
Case 4: cTexto = “cuatrocientos ”
Case 5: cTexto = “quinientos ”
Case 6: cTexto = “seiscientos ”
Case 7: cTexto = “setecientos ”
Case 8: cTexto = “ochocientos ”
Case 9: cTexto = “novecientos ”
Case Else: cTexto = “”
End Select
Centena = cTexto
End Function
Private Function Decena(ByVal uni As Integer, ByVal dec As Integer) As String
Dim cTexto As String
Select Case dec
Case 1:
Select Case uni
Case 0: cTexto = “diez ”
Case 1: cTexto = “once ”
Case 2: cTexto = “doce ”
Case 3: cTexto = “trece ”
Case 4: cTexto = “catorce ”
Case 5: cTexto = “quince ”
Case 6 To 9: cTexto = “dieci”
End Select
Case 2:
If uni = 0 Then
cTexto = “veinte ”
ElseIf uni > 0 Then
cTexto = “veinti”
End If
Case 3: cTexto = “treinta ”
Case 4: cTexto = “cuarenta ”
Case 5: cTexto = “cincuenta ”
Case 6: cTexto = “sesenta ”
Case 7: cTexto = “setenta ”
Case 8: cTexto = “ochenta ”
Case 9: cTexto = “noventa ”
Case Else: cTexto = “”
End Select
If uni > 0 And dec > 2 Then cTexto = cTexto + “y ”
Decena = cTexto
End Function
Private Function Unidad(ByVal uni As Integer, ByVal dec As Integer) As String
Dim cTexto As String
If dec 1 Then
Select Case uni
Case 1: cTexto = “un ”
Case 2: cTexto = “dos ”
Case 3: cTexto = “tres ”
Case 4: cTexto = “cuatro ”
Case 5: cTexto = “cinco ”
End Select
End If
Select Case uni
Case 6: cTexto = “seis ”
Case 7: cTexto = “siete ”
Case 8: cTexto = “ocho ”
Case 9: cTexto = “nueve ”
End Select
Unidad = cTexto
End Function
‘Funcion que convierte al plural el argumento pasado
Private Function Plural(ByVal Palabra As String) As String
Dim pos As Integer
Dim strPal As String
If Len(Trim(Palabra)) > 0 Then
pos = InStr(1, “aeiou”, Right(Palabra, 1), vbTextCompare)
If pos > 0 Then
strPal = Palabra & “s”
Else
strPal = Palabra & “es”
End If
End If
Plural = strPal
End Function
Hola, amigo, esta bien claro la explicacion que das pero quisiera adaptarla para mi pais Peru, aqui por ejemplo en la facturacion se utiliza como sigue:
imaginemos que el total de la factura es: S/. 1220.20
eso en letras sería como sigue:
SON: MIL DOSCIENTOS VEINTE CON 20/100 NUEVOS SOLES
(asi es como quisiera que tu codigo arroje las letras)
Trate de modificar tu codigo pero como no soy experto en esto no me sale, podrían ayudarme. Gracias.
Excelente explicacion, super clara, muchas gracias por tu aportacion.
hola un aporte más, en una macro en codigo menos larga que la anterior pero que te funciona igal con los decimales y los millones y billones, para quienes quieren la conversión de números a texto en el Perú la modifiqué en la línea siguiente:
TFNumero = “( *** son ” & TFNumero & Leyenda1 & ” con ” & Mid(NumTmp, 17) & “/100 M.N. ) *** ”
por lo tanto la misma línea quedará como sigue:
TFNumero = “( son: ” & TFNumero & Leyenda1 & ” con ” & Mid(NumTmp, 17) & “/100 NUEVOS SOLES ”
Claro está que no soy un experto ni mucho menos pero pobremente espero poder aportar algo de lo mucho que me han aportado los maestros.
esta es la macro completa, sólo copiala y la pegas en el VB despues de pegar la macro cierras el BV y listo, la formula que has de itroducir donde deseas que aparesca el texto es: ejemplo =NumLetras(A1,1) “,1 para mayúsculas y ,2 para Minúsculas” y listo a trabajar con tus facturas,espero que les sirva de mucho. muchos Saludos, mi correo es resgros@hotmailcom
Option Explicit
Dim cTexto As String ‘Variable para las funciones
Public Function NumLetras(ByVal Numero As Double, ByVal Mayusculas As Integer) As String
Dim NumTmp As String
Dim c01 As Integer
Dim c02 As Integer
Dim pos As Integer
Dim dig As Integer
Dim cen As Integer
Dim dec As Integer
Dim uni As Integer
Dim letra1 As String
Dim letra2 As String
Dim letra3 As String
Dim Leyenda As String
Dim Leyenda1 As String
Dim TFNumero As String
If Numero < 0 Then Numero = Abs(Numero)
NumTmp = Format(Numero, "000000000000000.00") 'Le da un formato fijo
c01 = 1
pos = 1
TFNumero = ""
'Para extraer tres digitos cada vez
Do While c01 <= 5
c02 = 1
Do While c02 1 Then
Leyenda = “Billones ”
End If
Case 2
If cen + dec + uni >= 1 And Val(Mid(NumTmp, 7, 3)) = 0 Then
Leyenda = “Mil Millones ”
ElseIf cen + dec + uni >= 1 Then
Leyenda = “Mil ”
End If
Case 3
If cen + dec = 0 And uni = 1 Then
Leyenda = “Millón ”
ElseIf cen > 0 Or dec > 0 Or uni > 1 Then
Leyenda = “Millones ”
End If
Case 4
If cen + dec + uni >= 1 Then
Leyenda = “Mil ”
End If
Case 5
If cen + dec + uni >= 1 Then
Leyenda = “”
End If
End Select
c01 = c01 + 1
TFNumero = TFNumero + letra3 + letra2 + letra1 + Leyenda
Leyenda = “”
letra1 = “”
letra2 = “”
letra3 = “”
Loop
If Val(NumTmp) = 0 Or Val(NumTmp) < 1 Then
Leyenda1 = "Cero Pesos "
ElseIf Val(NumTmp) = 1 Or Val(NumTmp) 0 Then
cTexto = “veinti”
End If
Case 3: cTexto = “treinta ”
Case 4: cTexto = “cuarenta ”
Case 5: cTexto = “cincuenta ”
Case 6: cTexto = “sesenta ”
Case 7: cTexto = “setenta ”
Case 8: cTexto = “ochenta ”
Case 9: cTexto = “noventa ”
Case Else: cTexto = “”
End Select
If uni > 0 And dec > 2 Then cTexto = cTexto + “y ”
Decena = cTexto
cTexto = “”
End Function
Private Function Unidad(ByVal uni As Integer, ByVal dec As Integer) As String
If dec 1 Then
Select Case uni
Case 1: cTexto = “un ”
Case 2: cTexto = “dos ”
Case 3: cTexto = “tres ”
Case 4: cTexto = “cuatro ”
Case 5: cTexto = “cinco ”
End Select
End If
Select Case uni
Case 6: cTexto = “seis ”
Case 7: cTexto = “siete ”
Case 8: cTexto = “ocho ”
Case 9: cTexto = “nueve ”
End Select
Unidad = cTexto
cTexto = “”
End Function
Sub nl()
‘
‘ nl Macro
‘
End Sub
Hola Apreciable JEAN
Mil disculpas en el codigo anterior, no hice las correcciones pertinentes ya que no puse cuidado en lo que solitas, pero esta macro está lista pura lo que necesitas.
Copiala desde la línea que esta enseguida y hasta el final.
‘ las indicasiones para la formula están al final de la macro…
Option Explicit
Dim cTexto As String ‘Variable para las funciones
Public Function NumLetras(ByVal Numero As Double, ByVal Mayusculas As Integer) As String
Dim NumTmp As String
Dim c01 As Integer
Dim c02 As Integer
Dim pos As Integer
Dim dig As Integer
Dim cen As Integer
Dim dec As Integer
Dim uni As Integer
Dim letra1 As String
Dim letra2 As String
Dim letra3 As String
Dim Leyenda As String
Dim Leyenda1 As String
Dim TFNumero As String
If Numero < 0 Then Numero = Abs(Numero)
NumTmp = Format(Numero, "000000000000000.00") 'Le da un formato fijo
c01 = 1
pos = 1
TFNumero = ""
'Para extraer tres digitos cada vez
Do While c01 <= 5
c02 = 1
Do While c02 1 Then
Leyenda = “Billones ”
End If
Case 2
If cen + dec + uni >= 1 And Val(Mid(NumTmp, 7, 3)) = 0 Then
Leyenda = “Mil Millones ”
ElseIf cen + dec + uni >= 1 Then
Leyenda = “Mil ”
End If
Case 3
If cen + dec = 0 And uni = 1 Then
Leyenda = “Millón ”
ElseIf cen > 0 Or dec > 0 Or uni > 1 Then
Leyenda = “Millones ”
End If
Case 4
If cen + dec + uni >= 1 Then
Leyenda = “Mil ”
End If
Case 5
If cen + dec + uni >= 1 Then
Leyenda = “”
End If
End Select
c01 = c01 + 1
TFNumero = TFNumero + letra3 + letra2 + letra1 + Leyenda
Leyenda = “”
letra1 = “”
letra2 = “”
letra3 = “”
Loop
If Val(NumTmp) = 0 Or Val(NumTmp) < 1 Then
Leyenda1 = "Cero Pesos "
ElseIf Val(NumTmp) = 1 Or Val(NumTmp) 0 Then
cTexto = “veinti”
End If
Case 3: cTexto = “treinta ”
Case 4: cTexto = “cuarenta ”
Case 5: cTexto = “cincuenta ”
Case 6: cTexto = “sesenta ”
Case 7: cTexto = “setenta ”
Case 8: cTexto = “ochenta ”
Case 9: cTexto = “noventa ”
Case Else: cTexto = “”
End Select
If uni > 0 And dec > 2 Then cTexto = cTexto + “y ”
Decena = cTexto
cTexto = “”
End Function
Private Function Unidad(ByVal uni As Integer, ByVal dec As Integer) As String
If dec 1 Then
Select Case uni
Case 1: cTexto = “un ”
Case 2: cTexto = “dos ”
Case 3: cTexto = “tres ”
Case 4: cTexto = “cuatro ”
Case 5: cTexto = “cinco ”
End Select
End If
Select Case uni
Case 6: cTexto = “seis ”
Case 7: cTexto = “siete ”
Case 8: cTexto = “ocho ”
Case 9: cTexto = “nueve ”
End Select
Unidad = cTexto
cTexto = “”
End Function
Sub nl()
‘
‘ Después de haber copiado todo el código completo en el VB, cierra el VB y te vas a la hoja de Excel.
‘ Suponiendo que tienes el total de tu factura de $ 158,325.68 en la cela (F15)entonces la formula
‘ que habrás de escribir en la celda F15 será la siguiente:
‘ =NumLetras(F15,1) el resultado es el que se muestra en la siguiente línea.
‘ SON CIENTO CINCUENTA Y OCHO MIL TRESCIENTOS VEINTICINCO CON 68/100 NUEVOS SOLES
‘
‘ Habrá que recordar que ,1 es para mayúsculas y ,2 es para minúsculas.
‘
‘
End Sub
Muchisimas gracias en serio que muy buen trabajo de tu parte!!
gracias por la macro, me funciono perfectamente, pero tengo una poregunta… como hago para que la macro la pueda habilitar en excel sin necesidad de tener que copiar el codigo fuente en cada libro .. gracias…
Hola CAMALEON_W,
Espero que esto te sirva y ya no vatalles con tu excel,
no se como subir el texto con imagenes pero el documento completo lo tengo en Word ahí esta mi correo resgros@ hotmail.com para que me mandes el tuyo y por ese medio enviartelo como documento adjunto, saludos.
En excel, disponemos de un libro oculto llamado personal.xls (en Excel 2007, tiene extensión xlsb, por lo que se llamará personal.xlsb), como seguramente ya conocerás. También sabrás seguramente, que este libro es de una gran utilidad si utilizas habitualmente los mismos macros en diferentes libros. En el libro personal.xls (o personal.xlsb, si usas Excel 2007) podemos tener almacenadas nuestras macros más habituales, para poder utilizarlas en cualquier otro libro de excel, sin necesidad de tener que implementar el código VBA en estos nuevos libros que vamos abriendo o creando.
Para grabar una macro en el libro oculto personal.xls (o personal.xlsb, si usas Excel 2007), tan solo deberemos indicar en el momento de su creación, que queremos que se almacene en el mencionado libro. Para ello, utilizaremos la grabadora de macros, tal y como se muestra en las siguientes imágenes:
Una vez elegido el sitio donde vamos a grabar el macro, esto es, en el libro de macros personal, bien podemos detener la grabación, o bien podemos realizar las tareas que queremos que grabe el macro. En cualquiera de los casos, una vez finalizada la grabación del macro, si accedemos al modo VBA pulsando Alt+F11, nos encontraremos con que aparece un nuevo proyecto llamado PERSONAL.XLS (o PERSONAL.XLSB, si usas Excel 2007) , tal y como se muestra en la imagen:
Dentro de la categoría de Módulos, podremos editar el código del macro, borrarlo, o crear nuevos macros, y todos ellos los tendremos disponibles siempre, aunque estemos trabajando con uno, cinco, o veinte ficheros de excel diferentes.
Cuando vayamos a ejecutar un macro, llamándolo desde Herramientas, Macro, Macros…, nos aparecerán las macros propias del libro con el cual estemos trabajando, junto con las macros grabadas en el fichero personal.xls (o personal.xlsb, si usas Excel 2007), tal y como se muestra en la siguiente imagen:
Dos últimas cuestiones que mencionar respecto al libro PERSONAL.XLS (o PERSONAL.XLSB, si usas Excel 2007):
1.- Podemos ver que realmente se trata de un fichero oculto, desde Ventana, y seleccionando Mostrar…. Allí nos aparecerá esto que muestra la imagen (mejor dejar el fichero como oculto):
2.- Para grabar las macros en PERSONAL.XLS (o PERSONAL.XLSB, si usas Excel 2007), cuando cerremos excel, nos saldrá un mensaje como este de la imagen, y al que tendremos que contestar con un rotundo sí, si lo que deseamos es grabar esas macros en el libro oculto, para que estén disponibles siempre que las necesitemos:
Si lo que deseamos es llamar a una función personalizada que tengamos en el libro personal, lo haremos de esta forma (suponiendo que la función que hayas creado se llame mifuncion):
=PERSONAL.XLS!mifuncion()
Excelente amigo!!!
¿Sabes? había buscado esta opción en varias ocasiones, sin éxito alguno. Eres un tipo a todo dar por compartir tus conocimientos con todos nosotros. ¿Podrías ayudarme por favor indicándome cómo le hago para quitar la palabra: “SON”? Gracias anticipadas y que DIOS TE BENDIGA HERMANO!!!
Salu2
Gonzalo:
Sobre la pregunta anterior, ya la solucioné. Ahora dime, cómo quitar la palabra “UN” hablando de las cantidades de $1,000.00 a $1,999.99. Osea, que la cantidad en texto me quede en: (MIL PESOS) Y NO EN (UN MIL PESOS)Gracias de nuevo.
MikeMR Busca la palabra SON en el codigo y eliminalo
MikeMR Busca la palabra UN en el codigo linea 7, y borralo, deja solo las comillas, no deverias quitarlo, de lo contrario en los millones dira MILLON en lugar de UN MILLON
muy buen trabajo, mil gracias… queria saber si existe algún modo para que quede guardado en mi excel, pues cada vez que abro un libro nuevo tengo que volver a entrar a macros… no se queda guardada.. existe alguna solución? saludos desde merida.. muy buen trabajo y gracias por compartirlo
Gracias otra vez hermano! Buen día!
estoy ke bailo de gusto tenia tres horas buscando
sali a las 9 de la noche de la oficina tratando de hacer esto
llego ami casa y zaz
ke encuentro esta pag lo hice es 10 seg
gracias,,, gracias,,, gracias
te iras al cielo con zapatos
Estimado Geronides,
Cunado abres el VB para crear una macro, la ventana donde le das nombre a la macro, tambien hay una lista desplegable donde dice “guardar macro en” para que escojas en que libro o libros deseas guardar tu macro y aparece tambien una opción que dice (libro personal) selecciona esta opción para que al pegar la macro de conversión te quede lista para que en cualquier libro que pongas la formula te responda ejemplos para office 2003 y anteriores:
=personal.xls!numletras(ceda donde esta la cantidad ,1)
para office 2007:
=personal.xlsb!numletras(celda donde esta la cantidad ,1)
espero te sirva
saludos
hola esta super el aporte.. pero tengo un problema y ya me perdi con tantos datos estoy haciendo unas facturas en donde la cantidad q tengo en numero la necesito en letra hice los pasos q colocas por cierto super bien explicado y logre hacer todos los pasos pero al colocarlo en las facturas son otras celdas y me sale #¿NOMBRE?… YA ENTRE AL DE MACRO SEGURIDAD LE PUSE EN MEDIO y me sigue saliendo lo mismo la verdad me urge tengo q hacer 1500 facturas y con la formula me ayudaria muchisimo …
espero esto tenga solucion jejeje.. mientras continuare haciendolo manual … =( … GRACIAS buen dia¡¡¡
Hola Alexa,
Creo que problema esta en seguridad de las macros, deves indicar habiltar todas las macros de lo contrari si lo dejas en ” medi ” te esguira generando problemas. checa eso y si sigues con problemas me encataría que me indicaras en que celda esta la catidad en número y en que celda quires que apareca el texto para ver si se te puede ayudar de una mejor manera.
saludos,
mil mil gracias encontre mi herror =)(no guardar el archivo en excel) … y esta super bien .. me di por vencida pense q no lo lograia jejeje, pero ya qdo me liberaste mucho la carga jejeje… gracias… q bien q exista gnt super, como TU… te debo el cafe jejeje
saludos =) …
un super mega abrazo =) “estoy feliz” jejeje …
hola gracias por tu ayuda me sirvio mucho pero tengo un problema que ya te habian comentado al cerar el libro de exel y luego al vover a abrirlo sale #¿NOMBRE? se que ya diste la explicacion pero no se no he podido llevarla a cabo si tu me haces el favor de enseñañrme paso a paso como hacerlo con imagenes de ejemplo te lo agradeceria mucho tengo oficce 2007
Hola EL 5° Be@tle
Espero que este link te sirva, y no olvides guardar tu libro para que no se pierda la macro.
http://hojas-de-calculo-en-excel.blogspot.com/2008/07/el-libro-personalxls.html
saludos
Felicidades, lo explicas bastante claro (sobre todo para algunos que no sabemos mucho de esto) y sobre todo gracias por compartir tus conocimientos.
De nuevo muchas gracias!!
gracias esto facilita mucho mi trabajo es muy bueno lo que sabes hacer pero es mucho mejor que lo compartas gracias gracias
BUEN DIA UN AGRACEDCIMIENTO MAS CREO QUE NO ESTA POR DEMAS, MIL FELICIDADES, GRACIAS QUE TENEMOS PERSONAS COMO TU, TENIA 7 AÑOS TECLEANDO LA CANTIDAD CON LETRA DE MIS FACTURAS, YO FACTURO EN EXCEL, SI PODRIAS DARME UNA AYUDA MAS, COMO PUEDO HACER UN CATALOGO DE CLIENTES Y QUE AUTOMATTICAMENTE ME APAREZCA LOS DATOS COMPLETOS… SALUDOS.
OTRA PREGUNTA COMO PUEDO HACER QUE LOS DECIMALES ME LOS REDONDEE BIEN AL MOMENTO DE HACER DESCUENTOS O APLICAR IVA CUANDO FACTURO, POR EJEMPLO IMPORTE TENGO $2,679.70 Y APLICANDOLE UN 15% DE DESCUENTO $401.96, NOS DA UN SUBTOTAL DE $2,277.75 CUANDO DEBERIA DE SER $2,277.74 NO ???? PARA QUE ME DE LOS CENTAVOS EXACTAMENTE QUE HAGO ??? IVA NOS DA $341.66 Y TOTAL $2,619.40 OJALA ALGUIEN ME PUEDA AYUDAR SALUDOS
JONATHAN GIL, el resultado de la operacion en Excel me da 2,277.745, Obviamente en letras te dice 74/100.
Para resolver esto debes utilizar la funcion redondear: =REDONDEAR(2,679.70*15%,2) O =TRUNCAR(2,679.70*15%,2).
oye de verdad eres un GENIOOOO!! me la he pasado buscando en la red una explicacion tan buena y facil como esta, de verdad me sirvio de mucho… gracias!!!
mil gracias me sacaste de un apuro en verdad funciona muy bien el codigo y por logica la formula….
Excelente amigo muchas gracias, muy buena aportacion
Muy bueno soy de peru y lo unico que modifique para aplicarlo aca en Peru es cambiar la palabrita Pesos a Soles y Sol
, GRACIAS
quisiera saber como puedo hacer esto pero la verdad es que de macros no se nada yo ya tengo el formato hecho y lo unico que quiero es colocar notas y que automaticamente me salgan en letras. ayudenme porfavor gracias
hola buen dia. el codigo de convertir numeros a letras esta super bien esta trabajando con ese codigo en excel 2003, pero ahora estoy trabajando con excel 2007 y me sale un error #¿nombre? y ya estuve buscando bajarle el nivel de seguridad a los macros pero sigo con ese error te aradeceria mucho si me pudieras auxiliar gracias.. y espero una favorable ayuda
Hoy es un día que me hace sentir feliz, en el sentido de encontrar personas que comparten sus conocimientos sin ningún tipo de intéres. De verdad muchas gracias por eso, si todos fueramos así este mundo sería otra. cosa.
Ese código de convertir números a texto está fabuloso. Enhorabuena.
Muy bueno. Gracias!!! Lo modifique para usar en Argentina sacandole MN
hola, necesito que al cambiar numeros a letras en excel me aparesca así: 84 Ochenta y cuatro, pero la tengo asi:
84 Ochenta Y Cuatro……..qué hago
Hola Gonzalo estas por allí, puedes ayudarme verdad…….
Hey, andando por la red me tope con este foro en el cual describen el código y funcionamiento de esta macro, me parece muy bueno.
Soy programador en Visual Basic para Aplicaciones y desarrolle un complemento de nombre ConLetra.xla que hace lo mismo que el que se comenta aquí agregando varias opciones muy prácticas, entre ellas las siguientes:
1. Crea un menú y submenú en la barra de menús de Excel desde el cual se puede: a) Invocar al asistente de funciones inicializado en esta. b) Modificar los parámetros de moneda, Centavos y delimitadores de texto (parentesis, comillas, etc.)
2. Tiene la opción de manejar mayúsculas, minúsculas o bien una combinación.
3. Guarda en el registro de windows los parámetros definidos por el usuario para ser recuperados cada que se utilice.
Se creo en Excel 2003 y funciona también en 2007
Es completamente gratuito y libre de distribución, -no es de código abierto, por que como se comenta aquí hay muchos que se atribuyen el trabajo de otros-
No contiene virus o macros perjudiciales
Si a alguien le interesa puede enviarme un mail y con gusto se le haré llegar para que lo pruebe.
Adriano Torres
Saludos desde San Luis Potosí, México
15 de octubre de 2009
Olvide poner mi correo: tosj820128@yahoo.com.mx
Nada me gustaría más que compartir mi trabajo y conocimientos en este tema y aprender de aquellos que sepan más que yo.
Muchas gracias… la verdad esta muy facil y muy sencilloo
excelente
muchas graciass
Monterrey, NL.
Funciona muy bien ¡gracias!
Buen día
Excelente me sirvio de mucho! gracias
Gracias HErmano
Esta de peluche
Saludos desde Monclova, Coahuila
Excelente Explicacion y el codigo muy bueno…Gracias
HOLA BUENAS TARDES FIJATE PICANDO POR AQUI Y POR AYA Y ME ENCUENTRO CON ESTO TAN ESPECTACULAR Q ME AYUDA EN MI TRABAJO.
ESTABA BUSCANDO OTRA COSA PERO ME SIRVE ESTOO
SALUDOS
GRACIAS POR TU ESPACIO…
BUEN DETALLE, GRACIAS.
MUCHOS SALUDOS!!!
Gracias por el macro, estuvo excelente.
Probablemente no sere el primer comentario positivo, pero seria desleal no felicitar por haber explicado un macro tan util.
macros for dummies!
MUCHAS GRACIAS FUNCIONA MUY BIEN
Muchas gracias por la explicación, me sirvio de maravilla.
Excelente por el aporte de sus conocimientos.
Para los que quieren cambiar a otro tipo de moneda, solo cambien PESOS por las monedas que Ustedes quieren, ejemplo: Por estp:
PesosMN = “SON: (” & PesosMN & IIf(tyCantidad > 1, ” PESOS “, ” PESO “) & Format(Str(lyCentavos), “00″) & “/100 M.N.)”
Poner:
PesosMN = “” & PesosMN & IIf(tyCantidad > 1, ” CORDOBAS CON “, ” CORDOBAS CON “) & Format(Str(lyCentavos), “00″) & “/100″
Dandole derechos al autor del código, yo sólo doy un aporte
Hecho en México, asi debe de ser, muchas gracias por tu apoyo si por lo menos uno de cada dos Mexicanos como tu hubiera, estariamos como en la epoca del porfiriato dos dolares por un peso……..
Muchas Felicidades
Muchas gracias, su articulo me ha sido de gran ayuda
Hola Realmente Excelente!!!!
Una sola cosita, quisiera ver si hay la posibilidad que la conversion a letras indique la cantidad correspondiente a los centimos tambien EN LETRAS? , me di cuenta que la pregunta ya la hicieron tambien varias veces pero no encontre la respuesta y eso que me lei este interesantisimo y fabuloso blog como tres veces,
ej. ( QUINIENTOS MIL DOSCIENTOS TREINTA Y UN BOLÍVARES CON 13 CÉNTIMOS)
1, Como le quito los parentesis?
2, Como hacer para que el numero 13 correspondiente a los centimos se lea TRECE? ( en letras y no en numeros)
Soy de Venezuela ya adapte la moneda a BOLIVARES Y EL ” /100 ” lo lleve a la palabra CÉNTIMOS, Con esta modificacion en la penultima linea tal y como esta de super bien explicado y quedó asi:
Bolívares = ” (” & Bolívares & IIf(tyCantidad > 1, ” BOLÍVARES CON “, ” BOLÍVAR CON”) & Format(Str(lyCentavos), “00″) & ” CÉNTIMOS)”
End Function
Pero faltaria sustituir el “00″ No se por cual valor, para que no se lea el ej. del ” tal y tal con 13 Céntimos” y pueda leerse “tal y tal con TRECE CÉNTIMOS” y sin los parentesis….
Saludos y de antemano Mil gracias (=
Okis
Para los interesados de Venezuela.. Ya los parentesis se los quité, PEROOO sigue el 13 Centimos alli !!!
y quedó así:
Loop Until lyCantidad = 0
Bolívares = “” & Bolívares & IIf(tyCantidad > 1, ” BOLÍVARES CON “, ” BOLÍVAR CON”) & Format(Str(lyCentavos), “00″) & ” CÉNTIMOS”
End Function
ahora solo falta que encontremos la manera de sustituir el “(00)” por algo que permita leer los centimos en letras y no en numeros… !!!
YO YA ME FUNDÍ…
Saludos y esperemos a ver como se hace!
No te fundas en ese código, mira eso que quieres lo puedes hacer utilizando la macro y combinando las propias funciones de Excel, trataré de explicarlo.
Hagamos las siguientes aclaraciones primero …
1. Tome la macro original publicada en este blog.
2. Las modificaciones y/o adecuaciones son solo para ayudar a
la(s) persona(s) que hizo esta pregunta o que tengan la
misma duda.
3. En ningún momento me digo o siento autor de esta macro.
Ahora supongamos lo siguiente …
a. En la macro original modificamos solo la última línea
quedando :
PesosMN = PesosMN
aunque parezca muy poco asi queda esta línea
b. Asumimos que en la celda B2 tenemos la cantidad 1,235.56
para manejara de ejemplo.
c. En la celda D2 vamos a escribir la siguiente fórmula (todo
junto):
=”(“&pesosmn(B2)&SI(B2>1,”PESOS”,”PESO”)&
pesosmn(DERECHA(B2,2))&” CENTAVOS )”
resultado:
( UN MIL DOSCIENTOS TREINTA Y CINCO PESOS CINCUENTA Y SEIS
CENTAVOS )
Explicación:
1. Con la modificación de la última línea la transcripción quedará:
UN MIL DOSCIENTOS TREITA Y CINCO
2. Utilizamos el condicional SI() para agregar “PESOS” si la cantidad es mayor a 1 ó de lo contrario “PESO”
3. Luego utilizamos la función DERECHA(Texto,NumDeCaracteres) para extraer la parte decimal de la cantidad, en este caso 56
4. Habiendo extraido los decimales volvemos a utilizar la macro para trancribirlos, PesosMN(Derecha())
5. Agregamos “CENTAVOS” con el parentesis de cierre
Comentarios finales:
a. Espero y sea de utilidad esto que excribí.
b. Creo que la macro no transcribe correctamente cuando la cantidad sea 1 o bien los centavos sean 0.
c. Reitero que no soy ni me siento el programador de esta macro.
Acabo de responder a ISA pero olvidé identificarme así que salió como anónimo
Oye mil gracias, todo funciono a la perfeccion esta genial, con esto ahorras un buen buen de tiempo gracias, de verdad gracias!!!
EXCELENTE AMIGO, MUCHAS GRACIAS, FABULOSO Y MUY EFECTIVO.
FELICIDADES POR TU GENIO !!
ME ENCANTO EL MACRO PERO NO ME DEJA GUARDARLO, ME MARCO QUE EL ARCHOIVO SIN MACROS NO SE PUEDE GUARDAR O ALGO ASI QUE DEBO HACER.ENCONTRE VARIAS RESPUESTAS PERO NO LES ENTIENDO NO ME PODRIAN AYUDAR, GRACIAS MI CORREO ES JAYBY96@HOTMAIL.COM
Muchas Gracias. Me es de mucha utilidad esta herramienta. Me funcionó a la primera.Saludos desde Yucatan Mex.
GRACIAS SI NO PONDRIA ESO MI EXAMEN NO VALDRIA
ES LA MEJOR EXPLICACION DE MUCHOS A LOS QUE HE CONSULTADO.
EXCELENTE.
SALUDOS DE CULIACAN SIN.
He leído todo el post, pero quisiera que alguien me ayude a que si me saliesen números negativos cómo modifico la macro?
Supónte que preparo planillas de gastos o pagos, o sueldos y me lleguen a salir el saldo negativo? La macro está perfecto pero una vez que me sale eso no me funciona. Por fa ayuda!
Que tal, mira tengo un complemento que al igual que esta macro transcribe cualquier cantidad con letra y maneja número negativos también, si quieres te lo mando. Tiene varias opciones más que encontrarás muy interesantes y útiles, mi correo tosj820128@yahoo.com.mx.
PORFAVOR SOLO NECESITO SABER LA FORMULA DE COMO CONVERTIR UN CANTIDAD CON DECIMALES EN LETRAS POR EJEMPLO:
2,555.20 (DOSMIL QUINIENTOS CINCUENTA Y CINCO PESOS 20/100 M.N.)
PORFAVOR SOLO DAMELA SIP
Lo máximo,
Gracias por compartir estos conocimientos.
Creo que nadie lo haría, ya que a veces somo egoistas… pero estoy muy satisfecho con esta información.
Que sigan los éxitos.
Saludos…
esta chido tus explucaciones gracias buen dia
HOLA QUE TAL DISCULPA LA MOLESTIA PERO ME PODRIAS AYUDAR CON MI DUDA, EN LA VERSION 2003 DE EXCEL HAY UN COMANDO QUE COMBIERTE VALORES O RESULTADOS DE FORMULAS ENTRE CELDAS Y QE AL EMPLEARLO LOS COMBIERTE EN VALORES NUMERICOS Y TE PERMITE COPIARLOS Y PEGARLOS EN OTRS CELDAS PARA OFICCE EXCEL 2007, NO ENCUENTRO ESTE COMANDO COMO LE PUEDO HACER.
GRACIAS.
Que tal Nevid, no conozco esa funcion, podria ser =valor(a1)??, o podrias explicar para que te servería.
Saludos