Convertir numeros a letras en Excel

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

Abrimos el editor de Visual Basic

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

Insertando el Modulo para pegar el codigo

En la ventana que se abre pegamos el codigo de la macro

pegamos el codigo

codigo pegado

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)

Imagen final

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.

**************************************************************

Edición 09 de Octubre de 2013.

https://www.dropbox.com/s/c1tad1rde15rbgs/Numeros_a_letras.xls

Pongo a su disposición un libro de Excel ya con la macro listo para usar:

No olviden habilitar las macros.

**************************************************************

1494 Respuestas to “Convertir numeros a letras en Excel”


  1. 1 Marlon diciembre 17, 2007 a las 11:22 pm

    Oye Gracias busque y busque y solo el tuyo se explica muy bien

    saludos

    Marlon Espana

    • 2 Veronica octubre 29, 2009 a las 8:59 pm

      Hola, quisiera poner esta aplicacion para agilisar el trabajo pero me aparece #¿nombre?, que significa. Alguien ke pudiera ayudarme.. Gracias.

      • 3 Tavo noviembre 27, 2009 a las 4:58 pm

        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.

      • 4 Esteban Hernandez diciembre 17, 2009 a las 11:27 pm

        Hola Tavo , Vero me podrian explicar a detalle como guardar la macro para despues utilizarla en varios libros y hojas, no he podido hacer esto, por favor se los agradecere muchisimo, les dejo mi mail: bonduz07@yahoo.com.mx

      • 5 willy1310 marzo 8, 2010 a las 1:02 pm

        Hola: es que si usas office 2007 debes habilitar contenido.
        si usas 2003 debes bajar la seguridad a medio y luego darle habilitar macros.

        ¿Respondi a tu pregunta?

        Willy

      • 6 Anónimo julio 24, 2012 a las 11:25 pm

        que pagina tan gay necesito que la letra del numero que uno escriba se ponga en numero pero no salen unas maricadas mas hp

      • 7 Anónimo septiembre 25, 2012 a las 2:16 pm

        lo haria encantado si aun te sirviera porelcanto@hotmail.com

      • 8 Anónimo abril 17, 2013 a las 11:36 am

        NO DEBES DEJAR ESPACIOS EN LA FORMULA, POR QUE ES DESCONOCIDA PARA EXCEL.

      • 9 Mavik marzo 25, 2019 a las 3:38 pm

        excelente!!!!! funciona perfectamente bien!!!! Gracias por tu aportación. Saludos

      • 10 JUAN junio 17, 2020 a las 11:47 am

        LOS QUE FALTO SON LOS SIGUIETES PASOS

        1) GUARDAR EL ARCHIVO EN «Tipo» COMO «complemento de excel» busquen hay toda una lista cuando van a guardar
        2) CERRAR TODOS LOS ARCHIVOS DE EXCEL
        3) AL ABRIR UNO NUEVO TE VAS A «Inicio/Opciones/Complementos/Complementos de excel/ir/ activas la de pesosMN y LISTO (ya esta siempre en cualquier archivo de excel)
        4) Esto lo tienes que hacer en cada computadora que uses

    • 11 Armando abril 23, 2010 a las 8:28 am

      No cabe duda de que existen personas de las que se puede aprender mucho.

      Me gusto tu ayuda por que esta excelente.

      MIL GRACIAS

      • 12 Sarita May 19, 2010 a las 12:57 pm

        Hola:
        antes que nada quiero agredecer por tu valiosa aportacion, la verdad no se como habilitar el contenido. hice todo loo que se indica pero cerre mi archivo de excel, guarde todos los cambios pero al momento de abrirlo de nuevo me aparece el mismo error.

        Ayudame por favor… Saludos!!!

      • 13 Hèctor Luna octubre 17, 2012 a las 8:11 pm

        Hola Tavo! mira trato de crear la macro y sigo tus pasos y al entrar a excel me da la conversiòn, pero me salgo de esa hoja y ya no funciona al darle la funsiòn de =PesosMN ya no aparece

    • 14 YANNELLI septiembre 1, 2010 a las 5:15 pm

      MUCHAS GRACIAS, LA VERDAD YO NO ENTENDIA MUY BIEN LO DE LAS MACROS PERO CON TU EXPLICACION ME FUE SUPER FACIL GRACIAS.
      LLEVABA TODO EL DIA BUSCAN INOFRMACION Y NO ENTENDIA AHORA ME HAZ HECHO LA VIDA MAS FACIL GRACIAS.

    • 15 TONY May 20, 2011 a las 2:43 pm

      SI MUCHAS GRACIAS A TODOS POR SUS COMENTARIOS ESTA MUY BUENO LA VERDAD ME SIRVIO DE MUCHO MIL GRACIAS Y UN SALUDO DESDE VERACRUZ MEXICO,,,A TODOS..

    • 16 FRANCISCO May 27, 2011 a las 11:40 am

      AMIGO COMO HARIA EN CASO DE CAMBAR LA MONEDA DIGAMOS DOLARES O SOLES DE PERU?
      GRACIAS

      • 17 Marcos Mattos agosto 3, 2011 a las 4:28 am

        PARA NUEVOS SOLES (PERU) COPIA TEXTO BAJO LA LINEA:
        ________________________________________________

        Function numerosentexto(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
        numerosentexto = lcBloque
        Case 2
        numerosentexto = lcBloque & IIf(lnBloqueCero = 3, Null, » MIL») & numerosentexto
        Case 3
        numerosentexto = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, » MILLON», » MILLONES») & numerosentexto
        End Select
        lnNumeroBloques = lnNumeroBloques + 1
        Loop Until lyCantidad = 0
        numerosentexto = «SON: (» & numerosentexto & IIf(tyCantidad > 1, » NUEVOS SOLES «, » NUEVO SOL «) & «CON » & Format(Str(lyCentavos), «00») & «/100 CÉNTIMOS)»
        End Function

    • 18 FRED VARGAS junio 29, 2011 a las 11:47 pm

      MUCHAS GRACIAS AMIGO, FUE MUY FACIL PODER INSERTAR EL CODIGO DE LA MACRO…. GRACIAS INFINITAS!!!

      • 19 Anónimo abril 26, 2012 a las 3:36 pm

        hola puse el codigo y me sale «error de sintaxis» quiero saber porque no funciona
        ES EL CODIGO PARA NUEVO SOLES PERU

    • 20 Anónimo enero 10, 2012 a las 1:04 pm

      Muchas gracias, Excelente macro, mil mil gracias

      Guadalajara, Jal.

    • 21 Anónimo enero 27, 2012 a las 7:14 pm

      Tu macro esta muy bien solo un detalle las cantidades de ,000,000., 1,000,001. hasta 1,999,999. nunca cambian siempre aparece ( UN MILLON PESOS 00/100 M.N.) hasta que se cambia a 2,000,000. entonces si aparece bien solo es el rango de entre un millon y 1,999,999. espero me entiendas. saludos.

    • 22 Aaron Mustri junio 11, 2012 a las 2:16 pm

      Gracias , muy util !!!

    • 23 Anónimo junio 14, 2012 a las 11:47 am

      Por que no se guarda el modulo??? cadaves que cierro la hoja de excel el modulo se borra?? por que?’

    • 25 llilly agosto 26, 2012 a las 7:59 pm

      ayudenme con esta cantidad 4,201,100,258

    • 27 Anónimo julio 23, 2013 a las 2:33 pm

      hola muy bueno tu aportación, pero en cantidades grandes no me sale los resultados, por ejemplo te doy un numero $2,794,410,069.25 , como resultado me sale lo siguiente:
      #¡VALOR!
      sabras por que?

      saludos.

    • 31 Anónimo agosto 12, 2013 a las 12:00 pm

      HOLA QUIERO PONER ESTA APLICACION PERO ME APAREC #NOMBRE K DEBO HACER PARA K FUNCIONE? X K ME ES DE MUCHA UTILIDAD OJALA ME PUEDAS AYUDAR TE LO AGRADECERIA MUCH T DEJO MI CORREO otilio13r@hotmail.com

    • 32 Otilio Ramirez Santiago agosto 12, 2013 a las 12:09 pm

      mi estimado amigo quiero aplicar este formato pero me aparec #MONBRE, k debo hacer para k me funcione correctamente? en verdad la necesito
      x tu atencion gracias.

    • 33 Anónimo agosto 12, 2013 a las 7:17 pm

      como hacerle para que me de únicamente centavos por ejemplo:
      0.12 (Cero Pesos 12/100 M.N.)
      Actualmente me pongo 0.12 y me aparece ( Peso 12/100 M.N.) podrían corregirlo o decirme como le hago?

      • 34 Joan Mosquera agosto 17, 2013 a las 6:04 am

        Buenos días, para esto haz lo siguiente:
        Cambia la ultima línea así
        If lyCantidad > 0 Then
        PesosMN = «SON: (» & PesosMN & IIf(tyCantidad > 1, » PESOS «, » PESO «) & IIf(lyCentavos > 0, Format(Str(lyCentavos), «00») & «/100», «») & » M.N.)»
        Else
        PesosMN = «SON: CERO PESOS CON » & IIf(lyCentavos > 0, Format(Str(lyCentavos), «00») & «/100», «») & » M.N.)»
        End If

        Tambien he corregido para que no muestre el texto 00/100 cuando la cifra es exacta

      • 35 Alonso Hernandez May 20, 2019 a las 6:51 pm

        COMO QUEDARIA EL CODIGO PORQUE ME MARCA ERROR

    • 36 Julieth noviembre 12, 2013 a las 10:43 am

      si excelente. muchas gracias.. muy util

  2. 37 gchable diciembre 18, 2007 a las 10:02 am

    Mucho gusto Marlon, a tus órdenes

  3. 39 Eduardo Rodríguez diciembre 19, 2007 a las 5:10 pm

    ¡Excelente!, le hice algunas modificaciones de presentación. Trabaja muy bien ¡Gracias!

  4. 40 gchable diciembre 19, 2007 a las 7:19 pm

    Asi es Eduardo, el codigo es uno de los mas facilitos de adaptar, y es corto, hay otros con demasiado codigo. saludos

  5. 41 King diciembre 26, 2007 a las 2:17 pm

    Muchas gracias Gonzalo_conta, tenia rato buscando, y solo encontraba expliacciones muy extensas, la tuya es la mejor, saludos.

  6. 42 GUSTAVO diciembre 26, 2007 a las 8:53 pm

    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

  7. 43 CHIVA diciembre 27, 2007 a las 3:08 am

    TE AMO!!!
    TARDE SIGLOS Y POR FIN ENCONTRE COMO HACERLO
    ERES UN GENIO Y GRACIAS POR COMPARTIR TUS CONOCIMIENTOS
    SALUDSO

  8. 44 Valentina enero 4, 2008 a las 4:04 pm

    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.

    • 45 BYRON MONTERROSO noviembre 28, 2009 a las 12:30 pm

      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.

  9. 46 gchable enero 4, 2008 a las 11:27 pm

    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……..

  10. 47 Frank Ruiz enero 10, 2008 a las 8:24 pm

    mUCHISIMAS GRACIAS ES EL UNICO QUE ME A FUNCIONADO Y SE EXPLICA CORRECTAMENTE ME SALBASTE MI TRABAJO QUE BUEN APORTE

  11. 48 David Cruz enero 11, 2008 a las 11:43 am

    Muchas gracias realmente eres una buena persona por compartir tus conocimientos yo no se nada de esto y me fue muy facil poder hacerlo

  12. 49 Mario enero 14, 2008 a las 10:49 am

    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?

  13. 50 gchable enero 14, 2008 a las 4:37 pm

    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.

  14. 54 SUSANA enero 21, 2008 a las 6:11 pm

    EXCELENTE TE FELICITO SOLO TU TIENES DON PARA EXPLICAR

  15. 55 Erick enero 23, 2008 a las 4:07 pm

    Excelente!!!!!! Mil Gracias por compartir tus conocimientos con la comunidad

  16. 56 BAJAPH enero 23, 2008 a las 7:04 pm

    Perfecto man

    Gracias por el dato…

    Aqui estare revisando tu pagina, esta muy buena

  17. 57 Al enero 28, 2008 a las 3:35 pm

    Hay cientos de páginas relacionadas con este tema pero ninguna vale la pena…. la tuya por supuesto si¡¡¡ gracias

  18. 58 JORGE SANTIAGO febrero 2, 2008 a las 11:05 pm

    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!

  19. 59 Luis febrero 8, 2008 a las 11:06 am

    que onda we, chido tu blog, «sugerencia» pon links de foros se que tienes varios interesantes… saludos desde CACUN…

  20. 60 Luis febrero 8, 2008 a las 11:06 am

    que onda we, chido tu blog, «sugerencia» pon links de foros se que tienes varios interesantes… saludos desde CANCUN…

  21. 61 gchable febrero 8, 2008 a las 12:44 pm

    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.

  22. 62 CARLOS AVILA febrero 11, 2008 a las 6:46 pm

    Solo quiero agradecer su tiempo y felicitarlos por la manera de explicar las cosas, a mi me fue de mucha utilidad.

    MUCHAS GRACIAS

  23. 63 Alejandro Zamora febrero 15, 2008 a las 4:01 pm

    Gracias estoy recien ingresando al uso de Excel, me vienen de buena gracias

  24. 64 kamysado febrero 17, 2008 a las 3:40 pm

    una pregunta no lo he podido hace rdfucnionaren 2007, alguna cosa que falte para esta funcion en 2007??, muchas gracias

    • 65 Lalochino enero 2, 2012 a las 6:49 pm

      En office 2007, debes hablitar la pestaña de programador. (para esto Opciones de exel >> mas frecunetes >> habilitar pestaña de programador)

      Una vez resuelto esto, en la pestaña de programador en la ficha de Codigo click en «visual basic» y de ahi sigue las instrucciones q gonzalo_conta dió, es exactamente lo mismo. Conmigo funciona muy bien.

      A mi si me funcionó el problema es q cuando guardo el archivo y lo vuelvo a abrir el programita ya no corre y me aparece #¿nombre?

  25. 66 gchable febrero 17, 2008 a las 7:36 pm

    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.

  26. 70 waldo febrero 19, 2008 a las 8:34 pm

    Gracias por compartir tus conocimientos, eres un genio solo por compartir. 🙂

  27. 71 Inés febrero 20, 2008 a las 1:43 pm

    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.

  28. 72 alpine1mx febrero 20, 2008 a las 1:51 pm

    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 https://gchable.wordpress.com/
    By gonzalo_conta 53 days ago Size: 455.7kb

    Espero su amable respuesta SALUDOS !!!

  29. 73 gchable febrero 20, 2008 a las 9:42 pm

    Ines,
    cambia la penultima linea del codigo por este otro:

    PesosMN = "SON: " & PesosMN & IIf(tyCantidad > 1, " PESOS CON ", " PESO CON ") & Format(Str(lyCentavos), "00") & "CENTAVOS M.N."
    el resultado es:
    20.21 SON: VEINTE PESOS CON 21 CENTAVOS M.N.

    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 https://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.

  30. 74 Inés febrero 21, 2008 a las 7:48 am

    Muchas gracias Gonzalo por compartir todo lo que sabés con nosotros, no muchos lo hacen.

  31. 75 Idania febrero 22, 2008 a las 11:04 pm

    Hola, le agradezco mucho la información que me ha proporcionado, ya que es realmente sencilla,facil y util.

  32. 76 oswaldo febrero 26, 2008 a las 7:57 pm

    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

  33. 78 gchable febrero 26, 2008 a las 10:15 pm

    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

  34. 79 Anónimo febrero 27, 2008 a las 12:05 pm

    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

  35. 81 gchable febrero 27, 2008 a las 3:45 pm

    No estaba tan errado 🙂

  36. 82 Jonbus marzo 5, 2008 a las 5:59 pm

    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

  37. 84 eduardo marzo 31, 2008 a las 1:23 pm

    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

  38. 85 fergzzag abril 7, 2008 a las 7:27 pm

    WOW… Fue bien papa….

    Te lo agradezco por los siglos de los siglos……

    excelente Blog…

    fergzzag

  39. 86 LUIS abril 8, 2008 a las 9:08 am

    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,

  40. 87 alpine1mx abril 10, 2008 a las 10:33 am

    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

  41. 88 Ital000 abril 13, 2008 a las 3:22 pm

    BUENA UTILIDAD SOBR TODO, PARA FINES ESPERADOS. (^ ^,) THANSK YOU.

  42. 89 skud abril 22, 2008 a las 2:21 pm

    gracias por tu aportacion lo estoy usando en office 07 y funciona muy bien, saludos y nuevamente gracias

  43. 90 OMARIN abril 25, 2008 a las 2:50 pm

    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

  44. 91 carlos abril 25, 2008 a las 9:40 pm

    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.

  45. 97 luis enrique abril 28, 2008 a las 12:03 pm

    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

    • 98 Lalochino enero 3, 2012 a las 3:26 pm

      Luis Enrique, y
      <>

      uso office 2007.
      Yo tengo el mismo problema y lo resolví deshabilitando la seguridad de macros al mínimo, pero no quisisera dejarlo así por protección de mi equipo.

  46. 99 carlos abril 28, 2008 a las 3:59 pm

    luis enrique, aprenda por usted mismo, no copie y pege de internet. piense por usted mismo.

  47. 100 gchable abril 28, 2008 a las 5:10 pm

    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.

    • 101 ERNESTO septiembre 19, 2014 a las 2:46 pm

      Hola Hola, MUY EXCELENTE TU APORTE, YA HICE TODO EL PROCEDIMIENTO Y FUNCIONA RE-BIEN
      pero necesito que me ayudes con dos cosas:

      la primera quiero que no aparezca la palabra SON:
      la segunda quiero que sean quetzales y que desaparezca MN,

      EJEMPLO:

      SI ESCRIBO 2530.34
      YO SOLO QUIERO QUE APAREZCA DOS MIL QUINIENTOS TREINTA QUETZALES 34/100.

      TE LO AGRADECERÍA MUCHO BROTHER….DIOS TE BENDIGA Y TE SIGA DANDO SABIDURIA

  48. 102 FERNANDO RIVERA May 1, 2008 a las 10:27 am

    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

    • 103 Enrique octubre 10, 2011 a las 2:33 pm

      hola mira yo tuve el mismo problema pero espero y me explique bien: abres un libro de trabajo en blanco, le pegas el nuevo modulo y lo cierras o utiliza alt+Q. despues vas a irte a guardar o guardar como: cambias el nombre le pones por asi decirlo : pesosMN. abajo de donde cambiaste el nombre esta el tipo de documento en que lo quieres guardar, dale clik a la casilla y se despliega una lista buscas en esa lista el nombre que diga: COMPLEMENTO DE EXCEL. Y LE DAS GUARDAR, automaticamente se guarda en c en una carpeta llamada complementos. y listo. AHORA abres un nuevo libro de excel te vas a la parte superior izquierda de tu pantalla le das clik al icono te vas a opciones de excel (aveces solo dice opciones)le das clik te vas a donde dice complementos( una vez en complementos hasta abajo hay una casilla que dice complementos de excel de las en LA CASILLA QUE DICE: IR, te abre una ventanita y ahi tiene que aparecer el nuevo complemento que creamos llamado pesosMN, si no aparece a simple vista le das examinar y escribes el nombre con el que guardaste el complemento. le das aceptar y listo ahora es usable en todos los libros que kieras abrir… sin nececidad de estar ingresando el modulo de nuevo.
      SUGERENCIA: solo no olvides de no borrar el complemento creado..si lo borras tienes que empezar de ceros.
      NOTA: si al abrir el libro de excel no te funciona, solo tienes que irte a opciones y añades el complemento que creamos..
      graciassss……

      • 104 carlos rodriguez enero 11, 2012 a las 11:02 pm

        muchas gracias gonzalo y enrique. de verdad que es la manera mas facil de hacerlo gracias por pasar sus conocimientos

      • 105 MENDOZA May 13, 2012 a las 9:30 pm

        EXCELENTE EXPLICACION ENRIQUE, GRACIAS POR TU MANERA DE EXPRESAR, YO ME ENCONTRE CON UN CODIGO PERO NO ME FIJE COMO LO GRABE Y VOLVI A BUSCARLO Y JAMAS, PORQUE COMO DECIN OTROS SOLO FUNCIONA EN EL LIBRO DONDE ESTA EL CODIGO, PERO CON TU EXPICACION PERMANENTE, GRACIAS Y QUE SIGAS ADELANDE. ATENTAMENTE MS

      • 106 Roberto M. diciembre 14, 2012 a las 7:03 pm

        Oye enrique tu explicación fue magnifica, ayudo a cerrar lo que empezo Gonzalo, al menos para mi, insisti mucho, probando las soluciones que daban hasta aqui y no resultaba. Con tú explicación ya pude y en todos los archivo pude usar la función. Es vital lo de complementos. La prueba de fuego sera apagar el equipo, al encenderlo. MUCHISIMAS GRACIAS, GENTES COMO USTEDES, ES LA MUESTRA DE NUESTRA CAPACIDAD DE HACER EL BIEN.

  49. 107 Patricio May 3, 2008 a las 6:38 pm

    Gonzalo gracias por publicar esto. Queria preguntarte como hago para que salga «con diez centavos» por ejemplo, es decir todo en letras. Muchas Gracias

  50. 108 JESSICA May 5, 2008 a las 11:15 am

    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

  51. 109 niko May 6, 2008 a las 3:38 pm

    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

  52. 110 ORLANDO CAMARGO RODRIGUEZ May 12, 2008 a las 5:03 pm

    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.

  53. 111 bob and hope May 12, 2008 a las 8:51 pm

    mil gracias una buena funcion y que agradable que compartas con los demas la informacion habla bien de ti gracias

  54. 112 Adriana May 14, 2008 a las 12:55 pm

    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

  55. 113 Saul Medina Sanchez May 14, 2008 a las 9:41 pm

    Felicidades,, quien aporta busca un mundo mejor…

  56. 114 RICHARD LOYOLA May 16, 2008 a las 4:28 pm

    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

  57. 115 RICHARD LOYOLA May 16, 2008 a las 4:33 pm

    Muy bien, excelente.
    Saludos

  58. 116 REYNA May 17, 2008 a las 12:49 am

    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

  59. 117 Janecita May 17, 2008 a las 6:03 pm

    Excelente, realmente tienes el don para enseñar y explicar, te agradezco un mundo.

    Exitos, te lo mereces!!!

  60. 118 Zito May 22, 2008 a las 8:46 am

    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

  61. 119 Javier May 28, 2008 a las 6:01 am

    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.

  62. 120 oscar11n May 28, 2008 a las 5:32 pm

    estoy muy agradecido habia pasado mucho buscando y esta es la mejor que encontre y lo mejor que es facil de modificar gracias saludos

  63. 121 jesus May 28, 2008 a las 6:17 pm

    MUY BIEN EXPLICADO ¡¡¡¡FELICIDADES!!!!!!

  64. 122 Moisés May 30, 2008 a las 4:45 pm

    Excelente, mas que bien, para office 2007 los pasos son un poco diferentes, pero funciona a la perfección.

    Gracias!!
    Saludos!!

    • 123 francia julio 28, 2010 a las 7:58 am

      ayudame me urge tu ayuda.estoy en una actividad de excel,en la cuestion de macros,todo bien,pero en no me sale macroletras en la explicacion de la pagina del sena,no se explica bien apareceen unbloc de notas macroletras,pero no explican de donde se saca.
      necesito ese dato antes del viernes pa q me califiquen
      ayudame te dejomi correo,edwfra028@hotmail.com

  65. 124 Ivan H junio 4, 2008 a las 11:46 am

    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?

    • 125 Carlos Garcia M octubre 25, 2010 a las 7:25 pm

      Para ejecutar el codigo en access primero pega el codigo en un modulo, nombralo y luego utilizalo por medio de una consulta (funciones definidas por el usuario) y despues jalar la consulta en el reporte.

  66. 126 EL MAS CHINGON junio 5, 2008 a las 6:08 pm

    LA NETA NO TIENE MAUSS ESTE CODIGO TA CON MADRESS CARNAL BIENTOS

  67. 127 MASTER OF PUPETS junio 5, 2008 a las 6:09 pm

    LA NETA NO TIENE MAUSS ESTE CODIGO TA CON MADRESS CARNAL BIENTOS

  68. 128 Gerardo junio 6, 2008 a las 8:03 pm

    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?

    • 129 Jesús marzo 17, 2015 a las 2:47 pm

      Hola Gerardo, yo tambien uso Office 2011 en mi Mac y la formula de CONVIERTENUMLETRAS no me funciona; no se si has pobrado con esa versión y puedas ayudarme. Gracias!!

  69. 130 gchable junio 6, 2008 a las 8:22 pm

    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

  70. 131 HOLYMON junio 13, 2008 a las 2:43 pm

    OYE QUE PILERA GRACIAS. ES EL UNICO QUE ME HA FUNCIONADO.

    SE LE PUEDE QUITAR EL PARENTESIS ?

    QUE MACHERA TE CONSULTARE CON OTRAS

    GRACIS

  71. 132 HOLYMON junio 13, 2008 a las 3:32 pm

    oye intente hacerlo en otra hoja y no me dejo que paso ?

  72. 133 HOLYMON junio 13, 2008 a las 3:48 pm

    OK VOLVI A PROBAR Y RESULTO PERO ME TOCO ELIMINAR EL MODULO Y HACRLO DE NUEVO.

    COMO SE APROXIMA ?

    GRACIAS

  73. 134 Ana Laura junio 26, 2008 a las 4:43 pm

    Muchas gracias por lo de la macro para excel, respecto a la cantidad en letra, es padre saber todo esto. saludos.

  74. 135 iieni junio 28, 2008 a las 2:41 pm

    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?

  75. 136 LAURIS julio 2, 2008 a las 9:04 pm

    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.

  76. 137 Sebastian Arancibia Maruri julio 11, 2008 a las 11:41 am

    Gracias Gonzalo, me sirvio mucho el modulo.
    🙂

    Saludos desde Chile.

  77. 138 Lidher julio 14, 2008 a las 8:13 pm

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

  78. 139 Lupita Ramirez julio 17, 2008 a las 12:12 am

    ¡¡ 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.

  79. 140 GUSTAVO REYES julio 17, 2008 a las 2:16 pm

    gracias carnal es al unico sitio donde encontre la explicacion completa y esta funciona muy bien

  80. 141 Hugo Rafael julio 18, 2008 a las 2:15 pm

    En verdad muchísimas gracias, eres mi héroe … jajaja

    lo use en un programita para facturar y esta funcionando super bien

  81. 142 Angel julio 18, 2008 a las 2:25 pm

    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

  82. 143 Javier julio 21, 2008 a las 3:50 pm

    Excelente aporte lo acabo de probar y funciona perfectamente muchas gracias

  83. 144 car julio 23, 2008 a las 1:19 pm

    gracias, por compratir esto con todos. El trabajo se me hace mas rápidoo.

  84. 145 Gabitos julio 23, 2008 a las 5:08 pm

    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

  85. 146 raul julio 24, 2008 a las 12:00 pm

    MARAVILLOSO, MAGISTRAL E IMPREISONANTE LÑA MANERA DE EXPLICARLO, Y TRANSMITIRLO

    FELICIDADES Y MUCHAS GRACIAS POR COMPARTIRLO CON NOSOTROS

  86. 147 LI Miguel Ontiveros julio 24, 2008 a las 3:43 pm

    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

  87. 148 Grissel =) julio 25, 2008 a las 11:51 am

    GRACIAS POR SU INFORMACION!!!!!!
    MUY SENCILLO Y FACIL DE UTILIZAR!!!!!!

    FUNCIONA MUY BIEN!!!

  88. 149 LUIS julio 28, 2008 a las 5:58 pm

    ESTA GENIAL FELICIDADES.. NECESITO SABER COMO HACERLO PERO EN DOLARES

  89. 150 El Regio julio 30, 2008 a las 12:18 am

    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

  90. 151 El Regio Ignorante julio 30, 2008 a las 12:36 am

    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….!!

  91. 152 El Regio ya no tan Ignorante julio 30, 2008 a las 1:07 am

    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 = 0
    PesosMN = "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 )

  92. 153 gchable julio 30, 2008 a las 9:26 am

    Gracias Regio por tu aportación, seguramente servirá a mas de uno.

  93. 154 GERARDO SALAZAR agosto 2, 2008 a las 10:12 am

    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.

  94. 155 gchable agosto 2, 2008 a las 10:35 am

    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.

  95. 156 GERARDO SALAZAR agosto 2, 2008 a las 6:36 pm

    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.

  96. 157 PERLA agosto 5, 2008 a las 10:33 am

    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

  97. 158 PERLA agosto 5, 2008 a las 10:43 am

    YA GRACIAS YA LO CREEE YO MISMAAAAA EEE

    ES FACILL INTENTENLOOO
    SI KIEREN EL TIP DIGANME

    ES FACIL ME GUSTA ENCONTRAR LO DIFICIL

  98. 159 Jaime Marti agosto 18, 2008 a las 11:48 pm

    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

  99. 160 JOSE LUIS FIGUEROA agosto 19, 2008 a las 11:12 am

    Excelente macro, me ayudo mucho en un desarrollo que estoy haciendo

  100. 161 Edith agosto 21, 2008 a las 7:21 pm

    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.

  101. 162 Pablo Roberto agosto 22, 2008 a las 12:15 pm

    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.

  102. 163 Anna agosto 26, 2008 a las 10:08 am

    Execelente formula muchas gracias!!! tarde mucho en encontrarla

  103. 164 ZUGA agosto 30, 2008 a las 4:32 pm

    EXELENTE, TANTO TIEMPO BUSCANDO Y AL FIN LO ENCONTRE…UNA PREGUNTA FUNCIONARA EN ACCES?

    SALUDOS Y FELCITACIONES

  104. 165 fredoeg septiembre 3, 2008 a las 6:38 pm

    Excelente.. gracias

  105. 166 Carlos Peru septiembre 5, 2008 a las 12:12 pm

    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

  106. 168 Lillean septiembre 5, 2008 a las 5:18 pm

    Gracias….excelente Gonzalo, es un tremendo gran aporte…visite varios sitios…pero solo el tuyo da en el punto..EXCELENTE!!!

  107. 169 HC septiembre 6, 2008 a las 7:32 pm

    Muy agradecido por tu gran aporte!!!

    Me servira mucho. 😀

  108. 170 GILBERT septiembre 9, 2008 a las 5:45 pm

    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

  109. 171 Carlos septiembre 11, 2008 a las 1:17 am

    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….

  110. 172 Carlos septiembre 11, 2008 a las 1:20 am

    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

  111. 173 Aldo septiembre 11, 2008 a las 1:34 am

    Muy bueno el codigo fuente te felicito la verdad lo necesitaba muchisimo.

    Gracias por el aporte que haces con nosotros principiantes.

  112. 174 Adrian septiembre 11, 2008 a las 10:01 am

    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.

  113. 175 Josefina septiembre 12, 2008 a las 6:18 pm

    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

  114. 176 Teresa septiembre 13, 2008 a las 12:54 pm

    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

  115. 177 Alfredo septiembre 14, 2008 a las 9:34 pm

    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

  116. 178 ANY septiembre 15, 2008 a las 1:26 pm

    gracias por compartir tus conocimientos, eso habla muy bien de ti..

    mil gracias.

  117. 179 JENNY septiembre 16, 2008 a las 9:03 am

    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

  118. 180 Alejandro Sanchez septiembre 17, 2008 a las 2:54 pm

    Excelente aportación muchimas gracias por compartir tus conocimientos
    Un abrazo

  119. 181 pelayo septiembre 20, 2008 a las 1:31 pm

    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

  120. 182 Jesus M. hernandez septiembre 21, 2008 a las 11:46 am

    tu programa me sirvio muchisimo, te agradezco tu ayuda

    mil gracias

  121. 183 Fernando Rubio septiembre 25, 2008 a las 12:03 pm

    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

  122. 184 Luis Enrique septiembre 26, 2008 a las 9:58 am

    Muchas gracias me sacaste de un gran apuro para facturar, saludos…

  123. 185 lupis septiembre 26, 2008 a las 11:59 am

    Excelente aportación, dado que el nuevo excel trae algunas deficiencias que el anterior no traia, felicidades.

  124. 186 Javier Salas septiembre 28, 2008 a las 7:17 pm

    Excelente!!!!!!!!!!!!!!
    es el mejor que he encontrado y eso que he usado varios.
    gracias

  125. 187 Robinson Farfan septiembre 29, 2008 a las 11:22 am

    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

  126. 188 hipolito Alcantara octubre 2, 2008 a las 2:01 pm

    GRACIAS POR TODO, EXELENTE DE TU PARTE POR COMPARTIR TU CONOCIMIENTO, UN ABRAZO DESDE CHIMBOTE – PERU.
    FUNCIONA EXCENTE EN EXCEL 2007

  127. 189 Beth octubre 3, 2008 a las 3:14 pm

    Te felicito por el bien que nos haces a todos compartiendo lo que sabes… Me encanta!

  128. 190 alfredo octubre 3, 2008 a las 5:24 pm

    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!!!!!!!!!!!!!!!!!!!!!!!!!!!

  129. 191 Yenssen octubre 3, 2008 a las 6:13 pm

    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

  130. 192 gchable octubre 3, 2008 a las 6:56 pm

    Yenssen usa la siguiente formula =SI(A1<1,»»,PesosMN(A1))

  131. 193 blanca octubre 6, 2008 a las 10:34 am

    como le hago para que se convierta en dolares

  132. 194 CHUSYTA octubre 6, 2008 a las 7:30 pm

    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!!!

  133. 195 Marina octubre 7, 2008 a las 9:40 am

    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…

  134. 196 EDGAR PALACIOS octubre 7, 2008 a las 4:49 pm

    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

  135. 197 Helen octubre 8, 2008 a las 9:24 am

    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,

  136. 198 Carolina octubre 8, 2008 a las 3:30 pm

    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

    • 199 Omar Alonso Manzano Cháidez noviembre 3, 2012 a las 10:13 pm

      Tengo tu respuesta Carolina. Mándame tu correo y allí te la envío. Saludos desde Durango, México.

      • 200 Maria noviembre 6, 2013 a las 1:53 am

        Hola Omar Alonso, tengo el mismo problema de Carolina, necesito convertir notas de planillas de calificaciones a numero Ej: 4,5 = cuatro cinco
        Podrías ayudarme?
        Gracias
        Maria

  137. 201 Lupita Ramirez octubre 8, 2008 a las 9:47 pm

    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

  138. 202 Lupita Ramirez octubre 9, 2008 a las 9:49 am

    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.

  139. 203 carlos rojas octubre 15, 2008 a las 7:37 pm

    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

  140. 204 Marcelo octubre 18, 2008 a las 8:08 am

    muy bueno, gracias y muy cencillo de entender, ahora necesito uno igual pero para la hora…

  141. 205 CLAUDIA octubre 20, 2008 a las 4:06 pm

    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

  142. 206 Fredy octubre 21, 2008 a las 10:50 pm

    Genial, de todo corazón lo felicito y le agradezco en el alma el que comparta sus conocimientos de esta manera tan altruista. CHAPEAU

  143. 207 MIGUEL octubre 22, 2008 a las 10:02 am

    ME FUNCIONA DE MARAVILLA AHORA PEDIRIA DE TU APOYO PARA QUE EN LUGAR DE PESOS SEAN DOLARES

    GRACIAS

  144. 208 Edgar, Guatemala octubre 23, 2008 a las 4:34 pm

    Wow! Gracias, ojalá y hubieran mas maestros como vos. Felicidades.

  145. 209 Edgar López octubre 25, 2008 a las 6:48 am

    Gracias por el aporte llevaba un año buscando, que bueno que existen personas como usted dandole a conocer a los que no sabemos.

  146. 210 hector salinas octubre 30, 2008 a las 6:26 pm

    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

  147. 211 shapo octubre 30, 2008 a las 7:32 pm

    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

  148. 212 Carzuri octubre 31, 2008 a las 10:52 pm

    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

  149. 213 sneker noviembre 1, 2008 a las 5:36 am

    gracias te estare eternemente agradecido

  150. 214 joseph noviembre 4, 2008 a las 3:42 pm

    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

  151. 215 WILLDV noviembre 8, 2008 a las 1:20 pm

    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

  152. 216 gchable noviembre 8, 2008 a las 1:47 pm

    WILLDV, prueba modificando el codigo, busca:
    » MILLON», » MILLONES «) reemplaza por » MILLON DE», » MILLONES «) espero que te sirva.

  153. 217 WILLDV noviembre 10, 2008 a las 12:46 pm

    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?

  154. 218 Kira-Sama noviembre 11, 2008 a las 7:58 pm

    Excelente trabaja muy bien, gracias…

  155. 219 maribel noviembre 18, 2008 a las 7:25 pm

    Hola, ya lo hice pero no me aparece el nombre con letra….solo #¿nombre?….
    que puede estar pasando? gracias

  156. 220 Maria Eliza noviembre 19, 2008 a las 9:35 am

    Oye!!! mil gracias… estaba buscando eso para excel 2007… ke amable!!!

  157. 221 Marce noviembre 19, 2008 a las 3:40 pm

    Te agradezco mucho por compartirnos la solución de este problema.. Saludos desde Bolivia

  158. 222 DENISSE CAMPOS noviembre 21, 2008 a las 9:32 am

    GRACIAS TE PASATE….

  159. 223 DENISSE CAMPOS noviembre 21, 2008 a las 10:02 am

    GRACIAS TE PASASTE….ERES UN GENIO

  160. 224 Vanessa Montengro noviembre 24, 2008 a las 9:42 am

    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

  161. 225 Lusa noviembre 24, 2008 a las 3:25 pm

    hola… muchisimas gracias….
    me funciono perfectamente
    no sabes cuanto me has ayudado
    que bueno que no eres egoísta con tu conocimiento.
    besos!!!!

  162. 226 Fer noviembre 25, 2008 a las 9:38 am

    Funciona a la perfeccion harmano… muchas gracias, mira a cuantos has ayudado.. saludos

  163. 227 Sara noviembre 26, 2008 a las 11:05 am

    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

  164. 228 tonyluks noviembre 27, 2008 a las 11:07 am

    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!!

  165. 229 Carlos diciembre 1, 2008 a las 2:20 pm

    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

  166. 230 BERE diciembre 8, 2008 a las 9:17 pm

    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!

  167. 231 Joey diciembre 9, 2008 a las 3:46 pm

    Excelente aportacion! Muy bien explicado! 100% Mexicano!

    FELICIDADES!

  168. 232 hector diciembre 9, 2008 a las 5:12 pm

    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

  169. 233 Alejandra diciembre 10, 2008 a las 1:04 pm

    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

  170. 234 bakmax diciembre 17, 2008 a las 1:54 pm

    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.

  171. 235 jorge alberto lopez t diciembre 19, 2008 a las 11:00 am

    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

  172. 236 Laura diciembre 28, 2008 a las 2:56 pm

    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

  173. 237 ALEJANDRO diciembre 28, 2008 a las 9:54 pm

    MUCHAS GRACIAS, ME SIRVIO MUCHO Y A LA PRIMERA ME SALIO

  174. 238 omar diciembre 29, 2008 a las 2:09 pm

    por fin algo que realmente sirve ..!!

  175. 239 Jose Ugaz diciembre 30, 2008 a las 9:35 am

    Excelente, grn aporte y grcias por compartir tus conocimientos.

  176. 240 Cesar Ramirez diciembre 30, 2008 a las 12:52 pm

    Gracias te felicito corrio a la primera aunque lo modifique para la moneda de mi pais Venezuela

  177. 241 anyha diciembre 30, 2008 a las 3:31 pm

    Hola.
    esta increíble el dato,
    solo puedo decir …. gracias mil!
    saludos!

  178. 242 gerardo enero 2, 2009 a las 7:14 pm

    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.

  179. 243 Francisco enero 9, 2009 a las 12:34 pm

    Gracias amigo me sirvio mucho, una pregunta y para cambiar a la moneda de dòlares que debo hacer.

    Saludos Cordiales
    Francisco

  180. 244 Fabian Gonzalez enero 9, 2009 a las 12:58 pm

    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é….

  181. 245 raul de nuevo laredo enero 9, 2009 a las 10:50 pm

    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

  182. 246 GIO enero 10, 2009 a las 12:07 am

    GRACIAS ESTO ESTA EXCELENTE Y LE HICE ALGUNAS MODIFICACIONES EN PASARLO A DOLARES AMERICANOS

  183. 247 Philips enero 13, 2009 a las 1:43 pm

    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

  184. 248 Richhy enero 15, 2009 a las 6:51 pm

    Me podria decir como le quito los parentesis

    delarivaricardo@turbonett.com

    gracias

  185. 249 LUIS OROZCO enero 16, 2009 a las 2:40 pm

    CHULADA

    DEBES ESTAR CANSADO DE TANTA FELICITACION. PERO EL TUYO FUE EL UNICO QUE ME DIO RESULTADO DE VARIAS CONSULTAS.

  186. 250 Elizabeth enero 22, 2009 a las 4:42 pm

    Muchas Gracias!!!
    ES una EXCElente Aportacion!!!!!

  187. 251 CARLOS EBRIQUEZ enero 23, 2009 a las 12:25 am

    FELICIDADES, SABES EXPLICAR MUY BIEN ME SALIO A LA PRIMERA Y BUSQUE VARIOS, NINGUNO LO PUDE USAR.
    ESTE ES EL MEJOR
    GRACIAS

  188. 252 Gerardo Serratos enero 23, 2009 a las 3:25 pm

    Simplemente !Excelente! si me sirvio muchas gracias….

  189. 253 Cesar Armando febrero 7, 2009 a las 1:38 pm

    Esta super tu programa……….me saco de un apuro mil gracias y que sigas teniendo exito

  190. 254 HERNANDO febrero 10, 2009 a las 4:21 pm

    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.

  191. 255 Carlos febrero 10, 2009 a las 6:12 pm

    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.

  192. 256 Carlos febrero 10, 2009 a las 7:33 pm

    siguiendo mi pregunta anterior, pudiera ser también: 5:13 a «cinco horas 13/60»?. Gracias.

  193. 257 julieta febrero 11, 2009 a las 9:49 pm

    muchas gracias por esta explicación ya tenia mucho buscando y no entendia

  194. 258 Rene febrero 12, 2009 a las 6:30 pm

    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.

  195. 259 Rene febrero 12, 2009 a las 6:30 pm

    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.

  196. 261 jorge febrero 13, 2009 a las 1:21 pm

    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

  197. 262 jose guadalupe jacinto febrero 14, 2009 a las 1:09 pm

    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.

  198. 263 NANCY HERNANDEZ febrero 16, 2009 a las 9:58 am

    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!!!!

    • 264 CAMILO TORRES marzo 3, 2011 a las 3:53 pm

      Buenas tardes, creo que el problema que tienes es muy sencillo, tienes que ir al panel de control y cambiar la configuración regional y de idioma. Tienes que ir a personalizar, se abre las opsiones simbolo decimal, número de digitos decimales…etc. hay debes cambiar el simbolo decimal por el punto(.) y el simbolo de separación de miles por la coma(,)

      Espero que te funcione…

  199. 265 LUIS febrero 16, 2009 a las 9:05 pm

    GRACIAS,GRACIAS,GRACIAS. De verdad que ayudo esto. GRACIAS
    Si en algo puedo servir contactame.

  200. 266 Arturo febrero 17, 2009 a las 4:41 pm

    Gracias, muy buen codigo y de mucha ayuda.

  201. 267 Gabriel Are febrero 21, 2009 a las 12:19 am

    gonzalo te felicito por compartir con todos nosotros informacion que es muy util, muchas gracia

  202. 268 JORGE L HERNANDEZ A febrero 22, 2009 a las 5:25 pm

    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.

  203. 269 Lupita febrero 25, 2009 a las 7:07 pm

    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.

  204. 270 MIGUEL ANGEL PEREZ febrero 25, 2009 a las 8:44 pm

    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.

  205. 271 Aron febrero 26, 2009 a las 7:08 pm

    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!

  206. 272 LUISENRIQUE marzo 1, 2009 a las 1:28 am

    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

  207. 273 Luis Valenzuela marzo 2, 2009 a las 8:03 pm

    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.

  208. 274 JOSE DIAZ marzo 3, 2009 a las 4:49 pm

    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

  209. 275 Victor marzo 4, 2009 a las 2:38 pm

    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?

  210. 276 Anónimo marzo 4, 2009 a las 5:22 pm

    mucha gracias muy bueno

  211. 277 Allan marzo 5, 2009 a las 2:49 pm

    debes de habilitar la macro, una pregunta donde quito la palabra un mil, que solo diga mil

  212. 278 anonimo marzo 9, 2009 a las 5:03 pm

    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

  213. 279 Margarita marzo 17, 2009 a las 3:27 pm

    Mil gracias por la explicacion tenia mucho tiempo queriendo hacer eso pero nunca lo habia logrado

    Gracias

  214. 280 Eliana marzo 17, 2009 a las 4:58 pm

    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

  215. 281 Anónimo marzo 19, 2009 a las 1:04 am

    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

  216. 282 Diana marzo 24, 2009 a las 7:16 pm

    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

  217. 283 Ricardo Guzman marzo 26, 2009 a las 8:52 pm

    MIl gracias un macro muy util y buenisimo

  218. 284 MARCELO marzo 27, 2009 a las 6:27 pm

    Gacias mil……

  219. 285 ALEJANDRO CHILE abril 4, 2009 a las 11:43 am

    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

  220. 286 gchable abril 4, 2009 a las 11:58 am

    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

  221. 287 ridae abril 6, 2009 a las 7:37 pm

    oyes muchas gracias que dios te bendiga estoy segura que puedes entrar a la asociación MENSA

    SALUDOS

  222. 288 Erisel Gomez abril 9, 2009 a las 1:08 pm

    Gracias si me sirvio despues de 4 hr en busqueda y entenderle por fin enconre la opcion como funciona mil gracias hehehee

  223. 289 El autentico y unico Don abril 15, 2009 a las 2:03 pm

    No manches, esta con ganas tu solucion, te avientas bato…….excelente, muchisimas gracias……

  224. 290 axcarq abril 16, 2009 a las 1:21 pm

    Me sigue saliendo #¿NOMBRE? y ya hice lo que mencionaste de bajar la seguridad de macros a media q hago ?????

  225. 291 Walter Paz abril 17, 2009 a las 6:24 pm

    Muchas gracias por el aporte me parece genial y muy bien explicado por cierto.

  226. 292 Jose Mora abril 17, 2009 a las 9:53 pm

    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

  227. 293 JOSE DE JESUS abril 20, 2009 a las 5:57 pm

    ESTA BIEN POR QUE AL PRINSIPIO SI DIO EL NUMERO LUEGO AL CAMBIAR LA CONTIDAD DE LA CELDA YA NO SIRVE

  228. 295 Elizabeth abril 27, 2009 a las 12:39 pm

    La verdad muchisisisisisisimas GRACIAS!!!!!

  229. 296 sandy May 5, 2009 a las 4:55 pm

    gracias me sirvio de mucho muchas gracias….me salvaste

  230. 297 Matias Medina May 6, 2009 a las 10:10 am

    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

  231. 298 Rossy May 11, 2009 a las 6:11 pm

    Muchisisisisisisimas gracias
    eres un angel

  232. 299 VICTOR May 16, 2009 a las 10:07 pm

    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.

  233. 300 Marco May 20, 2009 a las 11:49 am

    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.

  234. 301 Enrique May 21, 2009 a las 9:47 am

    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

  235. 302 HOGO1 May 21, 2009 a las 7:07 pm

    QUIERO AGRADECERTE ESTA UTIL INFORMACION QUE COMPARTES. De todas las que he probado, es la mas sencilla y eficiente, y… de nuevo GRACIAS

  236. 303 Fer May 22, 2009 a las 10:18 am

    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.

  237. 304 Zurdo May 25, 2009 a las 4:23 pm

    Muy Buen Aporte Gracias

  238. 305 CARLOS May 28, 2009 a las 9:44 am

    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

  239. 306 gchable May 28, 2009 a las 10:02 am

    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.

  240. 307 CARMEN May 29, 2009 a las 11:10 am

    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.

  241. 308 erisel May 29, 2009 a las 2:13 pm

    Oye mil gracias, esta super way

    me has salvadola vida, saludos desde cancun

  242. 309 Mimi May 29, 2009 a las 2:37 pm

    Me ayudo muchisimo. Gracias por compartilo¡¡¡¡¡

  243. 310 gchable May 29, 2009 a las 2:45 pm

    Orale erisel, vayamos a la yaxchilan a tomar unas chelas!

  244. 311 SANTANA90210 May 29, 2009 a las 7:05 pm

    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!!!!

  245. 312 Rafael junio 2, 2009 a las 10:08 am

    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

  246. 313 yadira junio 2, 2009 a las 10:37 pm

    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

  247. 314 Constancio Cordoba junio 3, 2009 a las 10:43 pm

    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.

  248. 315 FREDDY HDEZ PARRA junio 4, 2009 a las 12:06 am

    MASTER . . . MUCHAS GRACIAS

    ME ES MUY ÚTIL TU MACRO.

    SALUDOS DESDE VERACRUZ

  249. 316 Fidel Cruz junio 9, 2009 a las 3:19 pm

    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

  250. 317 CARLOS ROMO junio 10, 2009 a las 8:33 am

    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

  251. 318 Fidel Cruz junio 10, 2009 a las 2:58 pm

    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

  252. 319 Esme junio 11, 2009 a las 11:11 am

    Wooo!!! Genial …. mi respeto … super tu respuesta..funciona excelente…

    Saludos Esme

  253. 320 Liz Valadez junio 12, 2009 a las 11:38 am

    Super!!! ya lo utilice y funcionó a la perfección… MIL GRACIAS

    Saludos desde Queretaro, México

    LIZ.

  254. 321 Jose Luis junio 16, 2009 a las 6:23 pm

    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.

  255. 322 Moralitos junio 17, 2009 a las 10:05 am

    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

  256. 323 JULIO junio 17, 2009 a las 10:45 pm

    MAS QUE EXCELENTE LA EXPLICACION PARA CREAR LA FORMULA Y EN HORA BUENA AL CREADOR… ES TODO UN GENIO ¡¡¡

  257. 324 HUMBERTO junio 19, 2009 a las 11:39 am

    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

  258. 325 Jose Pablo junio 30, 2009 a las 6:40 pm

    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

  259. 326 seven julio 2, 2009 a las 12:04 pm

    buenas este apartado con esta explicacion esta exelente es el unico sitio donde pude lograr esto. muhas gracias porla ayuda

  260. 327 Edg@r julio 2, 2009 a las 1:54 pm

    Su pagian es genial podemos seguir aprendiendo cada dia mas gracias a personas que dejan abietos sus conocimientos hacia los demas de verdad felicitaciones

  261. 328 Ana julio 2, 2009 a las 3:01 pm

    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!

  262. 329 raul caro o. julio 9, 2009 a las 9:36 pm

    GRACIAS, GRACIAS, MUCHAS GRACIAS. ES JUSTO LO QUE NECESITO. FUNCIONÓ PERFECTAMENTE.

  263. 330 DIEGO SOLANO julio 10, 2009 a las 7:06 pm

    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

  264. 331 Daniel Lama Romero julio 11, 2009 a las 12:35 am

    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

    • 332 gchable julio 11, 2009 a las 9:21 am

      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.

  265. 333 PABLO julio 17, 2009 a las 2:46 pm

    SALUDOS, TARDE MAS DE 2 AÑOS Y SOLO TU EXPLICACION FUE LA MAS SENCILLA, GRACIAS

  266. 334 GUS julio 20, 2009 a las 1:31 am

    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!!

  267. 335 CESAR RODRIGUEZ julio 22, 2009 a las 12:13 pm

    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

  268. 336 Enrique julio 23, 2009 a las 12:46 am

    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

  269. 337 PARKER julio 26, 2009 a las 6:53 am

    Genial, gracias por compartir amigo,genial eres lo maximo.

  270. 338 Hector julio 29, 2009 a las 6:13 pm

    MIL GRACIAS ERA LO QUE ESTAB BUSCANDO

  271. 339 Mauro julio 30, 2009 a las 8:13 am

    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

  272. 340 MGarza julio 31, 2009 a las 9:43 pm

    Excelentisimo !!! Gracias…

  273. 341 Fernando agosto 2, 2009 a las 11:58 pm

    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

  274. 343 LuisB agosto 3, 2009 a las 5:09 pm

    Se te gardece wue te tomes el tiempo de explicar estos temas.
    Gracias, buenos aportes

  275. 344 renegado agosto 3, 2009 a las 11:56 pm

    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

  276. 345 renegado agosto 4, 2009 a las 12:17 am

    renegado_hn@hotmail.com ERROR DE DEDO EL ANTERIOR ES MI MAIL DISCULPA

  277. 346 MARCO_CHILE agosto 4, 2009 a las 8:35 am

    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

  278. 347 CARLOS agosto 5, 2009 a las 2:32 pm

    OYE ES MUY SENCILLA TU EXPLICACION GRACIAS…

  279. 348 esteban agosto 6, 2009 a las 10:36 am

    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.

  280. 349 David agosto 7, 2009 a las 4:59 pm

    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?

  281. 350 jazcris agosto 10, 2009 a las 11:21 am

    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

  282. 351 Marco Antonio Cardenas agosto 12, 2009 a las 8:49 pm

    Muchisimas gracias estupendo quisiera saber si con otras hojas se hace el mismo procedimiento o se graba para todas
    Bogotà

  283. 352 Connie Sorcia agosto 13, 2009 a las 10:57 am

    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.

  284. 353 Marco Antonio Popoca agosto 20, 2009 a las 9:40 pm

    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.

  285. 354 JOSE DE JE agosto 22, 2009 a las 12:10 am

    DESPUES DE BUSCAR Y BUSCAR, ENCONTRE LO MAS PRACTICO Y FACIL PERO SOBRE TODO UTIL, GRACIAS.

  286. 355 Anónimo agosto 26, 2009 a las 10:39 am

    no le entendi a nada

  287. 356 Serapio Reséndiz agosto 28, 2009 a las 2:03 am

    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

  288. 357 Jean agosto 30, 2009 a las 2:20 pm

    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.

  289. 358 BEN ANAYA agosto 30, 2009 a las 8:40 pm

    Excelente explicacion, super clara, muchas gracias por tu aportacion.

  290. 359 Serapio Reséndiz agosto 31, 2009 a las 9:10 pm

    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

  291. 360 Serapio Reséndiz septiembre 1, 2009 a las 9:44 am

    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

  292. 361 Leonardo septiembre 2, 2009 a las 6:40 pm

    Muchisimas gracias en serio que muy buen trabajo de tu parte!!

  293. 362 CAMALEON_W septiembre 7, 2009 a las 8:01 pm

    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…

  294. 363 Serapio Reséndiz septiembre 8, 2009 a las 3:35 pm

    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()

    • 364 JOSE CONTRERAS octubre 19, 2013 a las 12:11 pm

      Hola Serapio Reséndiz:

      LEI TU COMENTARIO SOBRE LA FORMA EN LA QUE SE PUEDE GRAVAR UNA MACRO DE FORMA PERMANENTE EN EXCEL (2007) EN MI CASO.

      PODRIAS ENVIARME LA EXPLICACION COMPLETA (INCLUYENDO IMAGENES)?

      MI CORREO ES xt20@yahoo.com

      GRACIAS.

  295. 365 MikeMR septiembre 10, 2009 a las 1:09 pm

    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

  296. 366 MikeMR septiembre 10, 2009 a las 2:02 pm

    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.

  297. 367 gchable septiembre 10, 2009 a las 2:12 pm

    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

  298. 368 geronides septiembre 10, 2009 a las 11:04 pm

    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

  299. 369 MikeMR septiembre 11, 2009 a las 10:44 am

    Gracias otra vez hermano! Buen día!

  300. 370 yaz septiembre 11, 2009 a las 11:10 pm

    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

  301. 371 Serapio Reséndiz septiembre 11, 2009 a las 11:44 pm

    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

  302. 372 alexa septiembre 14, 2009 a las 3:55 pm

    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¡¡¡

    • 373 Serapio Reséndiz septiembre 14, 2009 a las 8:06 pm

      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,

  303. 374 alexa septiembre 15, 2009 a las 2:29 pm

    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 …

  304. 375 EL 5° Be@tle septiembre 23, 2009 a las 4:27 pm

    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

  305. 376 Serapio Reséndiz septiembre 24, 2009 a las 8:42 pm

    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

  306. 377 JESUS septiembre 25, 2009 a las 9:49 am

    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!!

  307. 378 jose amabilis septiembre 26, 2009 a las 8:02 pm

    gracias esto facilita mucho mi trabajo es muy bueno lo que sabes hacer pero es mucho mejor que lo compartas gracias gracias

  308. 379 JONATHAN GIL septiembre 29, 2009 a las 2:23 pm

    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.

  309. 380 JONATHAN GIL septiembre 29, 2009 a las 2:35 pm

    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

    • 381 gchable septiembre 29, 2009 a las 3:16 pm

      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).

  310. 382 naxhieli septiembre 30, 2009 a las 12:11 pm

    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!!!

  311. 383 chely octubre 3, 2009 a las 3:46 pm

    mil gracias me sacaste de un apuro en verdad funciona muy bien el codigo y por logica la formula….

  312. 384 Rick octubre 5, 2009 a las 9:34 pm

    Excelente amigo muchas gracias, muy buena aportacion

  313. 385 green7715 octubre 6, 2009 a las 3:49 pm

    Muy bueno soy de peru y lo unico que modifique para aplicarlo aca en Peru es cambiar la palabrita Pesos a Soles y Sol :D, GRACIAS 😀

  314. 386 lyz octubre 8, 2009 a las 5:36 pm

    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

  315. 387 Archy octubre 13, 2009 a las 1:54 pm

    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

  316. 388 Pedro Castellanos Díaz octubre 13, 2009 a las 5:32 pm

    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.

  317. 389 Rodo octubre 14, 2009 a las 12:34 pm

    Muy bueno. Gracias!!! Lo modifique para usar en Argentina sacandole MN

  318. 390 gladys octubre 14, 2009 a las 5:56 pm

    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

  319. 392 Adriano octubre 15, 2009 a las 10:34 am

    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

  320. 401 Adriano octubre 15, 2009 a las 10:37 am

    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.

  321. 402 Cris Morales octubre 15, 2009 a las 11:42 am

    Muchas gracias… la verdad esta muy facil y muy sencilloo

    excelente

    muchas graciass

    Monterrey, NL.

  322. 403 Elvia López octubre 18, 2009 a las 10:40 pm

    Funciona muy bien ¡gracias!
    Buen día

  323. 404 Felipe Gallardo octubre 21, 2009 a las 8:15 am

    Excelente me sirvio de mucho! gracias

  324. 405 ramon octubre 22, 2009 a las 10:37 am

    Gracias HErmano

    Esta de peluche

    Saludos desde Monclova, Coahuila

  325. 406 Dennis octubre 22, 2009 a las 1:51 pm

    Excelente Explicacion y el codigo muy bueno…Gracias

  326. 407 LAURA octubre 22, 2009 a las 4:27 pm

    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…

  327. 408 Omar Antonio octubre 22, 2009 a las 6:12 pm

    BUEN DETALLE, GRACIAS.
    MUCHOS SALUDOS!!!

  328. 409 Angelotakus octubre 22, 2009 a las 7:21 pm

    Gracias por el macro, estuvo excelente.

  329. 410 Luis Vasquez octubre 22, 2009 a las 8:22 pm

    Probablemente no sere el primer comentario positivo, pero seria desleal no felicitar por haber explicado un macro tan util.

    macros for dummies!

  330. 411 NORBERTO octubre 26, 2009 a las 5:31 pm

    MUCHAS GRACIAS FUNCIONA MUY BIEN

  331. 412 Randall A octubre 29, 2009 a las 4:54 pm

    Muchas gracias por la explicación, me sirvio de maravilla.

    Excelente por el aporte de sus conocimientos.

  332. 413 Manuel Vallejos octubre 29, 2009 a las 7:03 pm

    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

  333. 414 Luis Emilio octubre 30, 2009 a las 5:55 pm

    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

  334. 415 Yes noviembre 6, 2009 a las 6:13 pm

    Muchas gracias, su articulo me ha sido de gran ayuda

  335. 416 ISA noviembre 7, 2009 a las 8:15 pm

    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 (=

  336. 417 ISA noviembre 7, 2009 a las 8:27 pm

    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!

    • 418 Anónimo noviembre 23, 2009 a las 7:04 pm

      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.

    • 419 Adriano noviembre 23, 2009 a las 7:11 pm

      Acabo de responder a ISA pero olvidé identificarme así que salió como anónimo

  337. 420 Ginn noviembre 11, 2009 a las 5:21 pm

    Oye mil gracias, todo funciono a la perfeccion esta genial, con esto ahorras un buen buen de tiempo gracias, de verdad gracias!!!

  338. 421 JUAN ERIC noviembre 17, 2009 a las 2:08 pm

    EXCELENTE AMIGO, MUCHAS GRACIAS, FABULOSO Y MUY EFECTIVO.

    FELICIDADES POR TU GENIO !!

  339. 422 BRENDA GARCIA noviembre 18, 2009 a las 6:27 pm

    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

  340. 423 Juan José noviembre 20, 2009 a las 12:16 am

    Muchas Gracias. Me es de mucha utilidad esta herramienta. Me funcionó a la primera.Saludos desde Yucatan Mex.

  341. 424 SANDY noviembre 23, 2009 a las 8:46 pm

    GRACIAS SI NO PONDRIA ESO MI EXAMEN NO VALDRIA

  342. 425 JOSE ABEL noviembre 24, 2009 a las 12:18 pm

    ES LA MEJOR EXPLICACION DE MUCHOS A LOS QUE HE CONSULTADO.

    EXCELENTE.

    SALUDOS DE CULIACAN SIN.

  343. 426 latemizo noviembre 28, 2009 a las 4:32 pm

    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!

  344. 428 MARI diciembre 3, 2009 a las 1:24 pm

    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.)

  345. 429 MARI diciembre 3, 2009 a las 1:27 pm

    PORFAVOR SOLO DAMELA SIP

  346. 430 Percyño diciembre 4, 2009 a las 12:03 pm

    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…

  347. 431 lino diciembre 5, 2009 a las 2:05 pm

    esta chido tus explucaciones gracias buen dia

  348. 432 Nevid MAres diciembre 9, 2009 a las 5:31 pm

    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.

  349. 434 JCid diciembre 14, 2009 a las 11:10 am

    Muchas gracias!!!…..esta excelente

  350. 435 Angel diciembre 14, 2009 a las 1:34 pm

    Excelente, eso de no saber nada de programacion de macros es mi coco, y mucha gracias es el tuto mas claro q encontre.

  351. 436 Omar Antonio diciembre 15, 2009 a las 11:08 pm

    Hola Gonzalo, Antes que nada dejame ferlicitarte por tu aportación, es muy Buena.

    Tambien quisiera saber si me puedes ayudar con una macro en exel para eleborar facturas. Ya tengo diseñado el libro exel solo me falta crear una macro para que funcione.

    Nota: Estoy dispuesto a Pagar.

    Mi Correo furiosito@live.com.mx

    ¡Saludos!!!

    • 437 gchable diciembre 16, 2009 a las 10:28 am

      Que tal Omar Antonio, me gustaría ayudarte, pero como ves este blog apenas lo mantengo por falta de tiempo, pero no te desesperes, encontrarás lo que buscas.

      Suerte Hermano y felices fiestas

  352. 438 Pablo Cesar diciembre 18, 2009 a las 10:25 am

    Buenas Gente, por ahi leí que necesitaban para los Negativos, bueno lo que hice es agregarle las Siguientes Lineas

    …….
    Dim bValue As String

    bValue = «0»
    If tyCantidad 1, » SOLES «, » SOL «) & » CON » & Format(Str(lyCentavos), «00») & «/100)»
    End If

    …………

    Bueno como ejemplo le pongo los Negativos entre «( )», Paréntesis, claro que tambien se puede poner el texto de Color Rojo, tantas cosas

    Espero Sirva de Algo.

  353. 439 Pablo Cesar diciembre 18, 2009 a las 10:26 am

    Buenas Gente, por ahi leí que necesitaban para los Negativos, bueno lo que hice es agregarle las Siguientes Lineas

    Dim bValue As String

    bValue = «0»
    If tyCantidad 1, » SOLES «, » SOL «) & » CON » & Format(Str(lyCentavos), «00») & «/100)»
    End If

    Bueno como ejemplo le pongo los Negativos entre «( )», Paréntesis, claro que tambien se puede poner el texto de Color Rojo, tantas cosas

    Espero Sirva de Algo.

  354. 440 Dgless diciembre 28, 2009 a las 7:51 pm

    Gracias mi estimado, me has ayudado enorme….. y respecto de quienes se adjudican los trabajos de alguien mas pues que poca, pero en fin cada quien tiene la satisfacción de hacer lo que sabe hacer. Doble mi reconocimiento para quien inicio este codigo y gracias a ti por pasarnoslo.

  355. 441 gorgegonz diciembre 29, 2009 a las 7:32 pm

    Excelente aporte, me has ayudado como no tienes idea, continua asi, gracias por compartir tus conocimientos.

    saludos afectuosos y un cordial abrazo.

  356. 442 BigArt diciembre 30, 2009 a las 12:43 pm

    excelente la aportacion y la explicacion de la conversion de numeros a letras, te agradesco tu aportacion gonzalo

    atte

    BigArt

  357. 443 Elmercito enero 2, 2010 a las 10:39 am

    Muchas Gracias creo que interesante y bien explicativo y funcional

  358. 444 Sergio enero 8, 2010 a las 10:06 am

    Grande, facíl de hacer, muchas gracias me fue muy útil

    Gracias nuevamente

  359. 445 Guillermo enero 10, 2010 a las 10:59 pm

    MUCHISIMAS GRACIAS ME SACO DE UN APURO TREMENDO, NUEVAMENTE GRACIAS

  360. 446 GERARDO enero 14, 2010 a las 12:09 pm

    HOLA
    BUENOS DIAS
    HACE TIEMPO ME AYUDASTW MUCHO EN PONER ESTA FORMULA, COPMO LE HAGO PARA UTILIZARDO EN WINDOS 7. SE PUEDE??

    DE ANTEMANO MUCHAS GRACIAS.

    • 447 gchable enero 14, 2010 a las 1:20 pm

      Que tal Gerardo, si se puede, Será Office 2007, no uso ese office, lee los comentarios de arriba, si se puede.

      Saludos

      El 14/01/2010 11:09 a.m. gonzalo,

  361. 448 GERARDO enero 14, 2010 a las 7:07 pm

    GRACIAS.

    ACABO DE COMPRAR UNA LAP TOP Y VIENE CON WINDOWS 7 HOME BASIC.
    CUANDO ABRO UN ARCHIVO DE EXEL, EN HERRAMIENTAS NO VINE LA OPCION DE MACRO, O DONDE LO BUSCO.
    GRACIAS
    GERARDO

    • 449 gchable enero 14, 2010 a las 7:13 pm

      Que tal Gerardo, busca en el icono de Office en la esquina superior izquierda->opciones de Excel->Mostrar la ficha de programador en la cinta de opciones, o lee los comentarios, por ahi esta la respuesta.

      Saludos

      El 14/01/2010 06:07 p.m. gonzalo,

  362. 450 lucy enero 18, 2010 a las 12:52 am

    hola
    ya copie y pegue el macro regrese a mi hoja de excel y listo queda todo perfecto pero al volver a a brir mi archivo no aparece el macro por que ya lo grabe tanto en el editor como en mi archivo de excel, te agradeceria me contestes.

    bye.

  363. 451 David Esteban enero 18, 2010 a las 9:12 am

    felicidades , me ha servido bastante, sigue asi,aportando tus conocimientos a quienes lo necesitamos

  364. 452 Gabriel Cordero enero 18, 2010 a las 5:08 pm

    Muchas gracias por tu aportación, me has ayudado como no tienes idea. Saludos

  365. 453 Ferchazo enero 21, 2010 a las 11:29 am

    Excelente amigo, muy buen aporte… no tienes idea cuanto me sirvio y q tan impresionaron quedaron mis jefes jeje… sigue adelante..
    saludos desde Ecuador.

  366. 454 Rafael enero 26, 2010 a las 3:03 pm

    hola amigos de este grandioso block tengo una preguntita que hacerles y espero que me pueden ayudar, hace unos días descarge este programa “computacion plus”
    el problema es en el editor de facturar pre impresas ya que cree mi plantilla de facturas pero a la hora que mando a imprimir una factura en el lado izquierdo donde tendría que salirme el monto en letras me sale el total pero en pesoso y no quiero que me salga en pesos si no en soles ya que aqui en Perú el peso no es nuestra moneda si no el nuevo sol «S/.»

    Por ejemplo si me factura fuera en número (S/. 1526.70) tendría que ser en letras “SON: Mil Quinientos Veintisiete Con 70/100 Nuevos Soles”

    En el siguiente link subí mi plantilla de facturas creada.
    http://rapidshare.com/files/341093956/factura.frf.html

  367. 455 Wilson enero 31, 2010 a las 7:49 pm

    Muchas Gracias por tu aporte, lo estaba necesitando con esas particularidades

  368. 456 LALO febrero 4, 2010 a las 1:21 am

    hola, gracias por esta solucion, es super practico
    Saludos desde reynosa

  369. 457 Alejandra febrero 4, 2010 a las 11:40 am

    Mil Gracias, no saben de cuanta ayuda ha sido para mi.
    Saludos.

  370. 458 GUS febrero 5, 2010 a las 12:58 am

    como le hago para usarlo en word, ya copie el codigo en macro para word, ahora solo me falta un ejemplo de como funciona

  371. 459 Anónimo febrero 7, 2010 a las 9:48 pm

    HOLA,

    MIL GRACIAS, SON GRANDES CHICOS… FELICIDADES X SER TAN BUENOS Y QUERER COMPARTIRLO…. GRACIAS MIL….

    TERE SOLIS

  372. 460 oscar febrero 10, 2010 a las 3:14 pm

    Hola,

    disculpen tambien segui las instrucciones y tengo el mismo problema que Vero.
    Tavo, me podras indicar como realizar lo senalado en el primer parrafo o bien si alguien me puede apoyar se los agradeceria muchisimo.
    saludos

    Tavo
    Noviembre 27, 2009 en 4:58 pm
    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.

  373. 461 GABRIEL febrero 24, 2010 a las 7:23 pm

    EL CODIGO QUE VAN A INSERTAR EN EL EDITOR DE VISUAL VASIC QUE SE ABRE DE ESTA FORMA: HERRAMIENTAS/MACRO/EDITOR DE VISUAL VASIC/INSERTAR/MODULO Y AY PEGAN EL CODIGO DE ABAJO,PD: ESTE CODIGO ES DIFERENTE ASI QUE PARA ASERLO FUNCIONAR HAY QUE ESCREVIR =PESOS(A1) EN LA CELDA B1 Y EN LA CELDA A1 ESCRIVIR NUMERO CUALQUIERA(SOLO LLEGA HASTA LOS MILLONES) BUENO SIGUIENDO EL CODIGO ES:

    Function Pesos(Number As Double) As String

    Const MinNum = 1#
    Const MaxNum = 4294967295.99

    Dim Numbers, Tenths, Result As String
    Numbers = Array(«CERO», «UNO», «DOS», «TRES», «CUATRO», «CINCO», «SEIS», «SIETE», «OCHO», «NUEVE», «DIEZ», «ONCE», «DOCE», «TRECE», «CATORCE», «QUINCE», «DIECISEIS», «DIECISIETE», «DIECIOCHO», «DIECINUEVE»)
    Tenths = Array(«CERO», «DIEZ», «VEINTE», «TREINTA», «CUARENTA», «CINCUENTA», «SESENTA», «SETENTA», «OCHENTA», «NOVENTA»)

    If (Number >= MinNum) And (Number <= MaxNum) Then
    Result = RecurseNumber((Fix(Number)))

    If Round((Number – Fix(Number)) * 100) < 10 Then
    Result = Result + " 0" + Mid(Str(Round((Number – Fix(Number)) * 100)), 2, 1) + "/100 DOLARES"
    Else
    Result = Result + " " + Str(Round((Number – Fix(Number)) * 100)) + "/100 dolares"
    End If
    Else
    Result = "NO HAY RESULTADOS"

    End If
    Pesos = Result
    End Function

    Function RecurseNumber(N As Long) As String

    Dim Numbers, Tenths
    Numbers = Array("CERO", "UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE", "DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE")
    Tenths = Array("CERO", "DIEZ", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA", "SETENTA", "OCHENTA", "NOVENTA")
    Hundrens = Array("CERO", "CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", "QUINIENTOS", "SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS")

    Dim Result As String
    Select Case N
    Case 0
    Result = ""
    Case 1 To 19
    Result = Numbers(N)
    Case 20 To 99
    If N Mod 10 0 Then
    Result = Tenths(N \ 10) + » Y » + RecurseNumber(N Mod 10)
    Else
    Result = Tenths(N \ 10) + » » + RecurseNumber(N Mod 10)
    End If
    Case 100 To 999
    If N \ 100 = 1 Then
    If N = 100 Then
    Result = «CIEN» + » » + RecurseNumber(N Mod 100)
    Else
    Result = Hundrens(N \ 100) + » » + RecurseNumber(N Mod 100)
    End If
    Else
    Result = Hundrens(N \ 100) + » » + RecurseNumber(N Mod 100)
    End If
    Case 1000 To 999999
    Result = RecurseNumber(N \ 1000) + » MIL » + RecurseNumber(N Mod 1000)

    Case 1000000 To 1999999
    Result = RecurseNumber(N \ 1000000) + » MILLON » + RecurseNumber(N Mod 1000000)
    Case 2000000 To 999999999
    Result = RecurseNumber(N \ 1000000) + » MILLONES » + RecurseNumber(N Mod 1000000)
    Case 1000000000 To 4294967295#
    Result = RecurseNumber(N \ 1000000000) + » BILLONES » + RecurseNumber(N Mod 1000000000)

    End Select
    RecurseNumber = Result
    End Function

    • 462 gchable febrero 25, 2010 a las 10:37 am

      Hola Gabriel, fijate que al pegar tu codigo en el editor de Visual Basic, marca error, puede ser que al momento de pegar la informacion aqui se movio algo? por que no subes la macro en alguna pagina para bajarlo?

  374. 463 Vidal febrero 26, 2010 a las 4:15 pm

    HOLA GONZALO,PS FELICITACIONES, HE ESTADO BUSCANDO ESTA FUNCION DESDE HACE MUCHO TIEMPO, DIOS TE BENDIGA

  375. 464 G@TTO marzo 7, 2010 a las 8:42 am

    BUENISIMO ESTE TUTORIAL, ME GUSTARIA ALGUIEN ME DE LOS PASOS PARA GUARDARLO,POR FAVOR.

  376. 465 Carolina Cobian marzo 8, 2010 a las 3:55 pm

    Excelente apoyo y muchas gracias por publicarlo… Yo no se por que 2007 no lo tiene por default… 😐 Saludos 😀

  377. 466 obed gallegos marzo 10, 2010 a las 1:15 pm

    que barbaro amigo eres todo un genio algun dia sere como tu, esta super bien el codigo me salvaste eldia suerte cuate

  378. 467 YEIMI marzo 10, 2010 a las 5:00 pm

    HOLA PRIMERO QUE NADA GRACIAS POR LA INFORMACION ME AYUDO MUCHO.PERO NO SE COMO GUARDAR LA MACRO ALGIEN ME PODRIA DECIR COMO HACERLO?

    GRACIAS.

  379. 468 ANTONIO RODRIGUEZ marzo 11, 2010 a las 8:15 pm

    gracias amigo, por el codigo, y las indicaciones a seguir. esta muy bueno, se los recomiendo.

    despues de realizar los procedimientos, no olviden guardar, y listo.

    ha, para que funcione, debes cerrar el libro, y vuelves a abrir, de inmediato te aparece un cuadro de dialogo, dar en habilitar macros. e insertas la siguiente formula =pesosMN(celda en donde tengas la cantidad) y listo.

    problema resuelto.

  380. 469 jesus dircio marzo 15, 2010 a las 4:42 pm

    soy una persona que no tengo mucho conocimiento en excel nopodrias publicar el codigo para bajarlo con las instrucciones ahi mismo

  381. 470 JANETH marzo 17, 2010 a las 7:56 am

    hola,,,, qusiera saber como hago paraque el resultado aparezca asi:
    ejemplo son:TRES MILLONES DOSCIENTOS MIL PESOS M/CTE
    te agradezco tu colaboracion

  382. 471 ANY marzo 18, 2010 a las 9:35 pm

    Hola, muchas gracias por el aporte, tenia mucho tiempo buscando la manera de convertir importes numéricos a importes con letra, ya habia encontrado el codigo en otras páginas pero no sabia las instrucciones para instalarlo, la verdad te agradesco que hayas puesto paso a paso como ingresar el codigo para poder utilizarlo.

  383. 472 alain amaro marzo 21, 2010 a las 4:05 pm

    muchas gracias te felicito el tuyo es el mejor con la explicacion adecuada y el ahorro de mucho trabajo

  384. 473 Omar marzo 24, 2010 a las 12:46 pm

    Gonzalo. Este codigo me ha sido de gran utilidad pues estoy haciendo un formato para llenar mis cheques y asi le ahorro un paso a la contadora y ademas elimino posibilidades de error al teclear la cantidad con letra.
    Muchas gracias por compartirnos estos conocimientos de una manera tan clara.
    un abrazo.
    Omar

  385. 474 Ronald marzo 25, 2010 a las 4:55 pm

    q exelente aporte amigo, creeme q me has hecho ganar adeptos con una chik ademas q es necesario tener este tipo de informarcion para cualquier documento, bien dicen que ‘ EL QUE SABE Y PUEDE SE DIVIERTE ‘ GRACIAS !!!!

  386. 475 Anónimo marzo 26, 2010 a las 2:33 pm

    FELICIDADES Y MUCHAS GRACIAS

  387. 476 Aaron abril 1, 2010 a las 7:02 pm

    A mi no me funciona en 2007 me pone #NAME? ya fui y baje el niveld e seguridad y nada alguien me peude ayudar??? por favor!!!! Lo necsito para hacer facturas

  388. 477 joce abril 2, 2010 a las 1:45 pm

    ya hice todo lo que viene en tus instrucciones y si corrio bien pero cerre la ventana del excel y lo abri nuevamente y ya no corrio ademas quise hacerlo correr en un archivo donde lo nesecito y no quiso y no se como guardarlo como complemento ni «guardar como» por que el visual basic no me da esa opcion. de antemano gracias espero tu respuesta.

  389. 478 Roger abril 2, 2010 a las 1:52 pm

    Muchas gracias es de gran utilidad, bueno le modifique la parte donde dice son: bueno esa parte la omiti , de nuevo mil gracias

  390. 479 gaby abril 9, 2010 a las 5:44 pm

    Muchas gracias!!!!

  391. 480 EXPLORANDO abril 11, 2010 a las 1:12 pm

    excelente la aplicación la estube buscando y afortunadamente me encontre con esta página y ha funcionado bastente bien en 2007m solo tuve que quitarle la palabra son, y quedo justo lo que necesitaba, en hora buena y gracias por compartirlo

  392. 481 Nestorco abril 14, 2010 a las 11:55 am

    SOS UN MONSTRUO !!!

    Muy claro para explicar, la formula de el resultado esperado con una muy facil forma de explicar.
    Muchisimas gracias desde Chile.

    Un abrazo.

  393. 482 jam abril 16, 2010 a las 12:00 am

    gracias de verdad lo explicas super claro!!!

  394. 483 margarita perez abril 16, 2010 a las 12:08 am

    Gracias, de tanto buscar y buscar es fue el que me sirvio…de nuevo gracias

  395. 484 LUISILVER abril 17, 2010 a las 11:03 am

    EXCELENTE APORTE, MUCHAS FELICIDADES ME FUNCIONO DE MARAVILLA. MUY BIEN EXPLICADO, Y SE COMPRENDE MUY FACILMENTE, SIGUE ASI, TE MANDO UN CORDIAL SALUDO Y GRACIAS

  396. 485 Santiago abril 20, 2010 a las 11:09 pm

    Saludos
    Por favor si me pueden ayudar necesito cambiar de pesos a dolares como puedo hacer
    gracias

  397. 486 Santiago abril 20, 2010 a las 11:27 pm

    Saludos
    muchas gracias, ya logré cambiar la fórmula y me sirvio. les agradesco un mundo.

  398. 487 Santiago abril 21, 2010 a las 12:14 am

    Saludos
    Les vuelvo a molestar por favor si me pueden ayudar como puedo gravar la formula, por que cada vez que cierro exel se me pierde la formula
    gracias

  399. 488 mari abril 21, 2010 a las 6:13 pm

    hola!
    ¿como hago para que al insertar una fecha y al momento de dar enter en otra celda me aparesca el nombre del mes?..me encantaría que me ayudara a resolver este problema

  400. 490 ervin abril 22, 2010 a las 11:34 pm

    Gracias, es de gran utilidad, solo le hice unos cambios para adecuarlos a mis necesidades muy agradecido

  401. 491 Aracely abril 26, 2010 a las 12:07 pm

    Hola, mira soy nueva en esto, y no sé como guardar el módulo para posteriormente utilizarlo en cualquiera de mis archivos, ya le intenté y no puedo tengo excel 2007, ¿me puedes decir cómo paso a paso? muchas gracias por no ser egoísta!!!! Dios te bendiga!

  402. 492 Jorge abril 26, 2010 a las 4:39 pm

    La verdad gracias, siempre quise saber como hacer esta funcion. se agradece mucho el compartas tus conocimientos.

    Saludos

  403. 493 FRNACIASCO abril 27, 2010 a las 12:56 pm

    GRACIAS SOLO UNA PREGUN TA NO ABRA MANERA DE QUE NO APARES CALE SON QUE SOLO SEA EL TEXTO BUENO GRACIAS…

  404. 494 walter abril 28, 2010 a las 10:00 pm

    me preguno como puede colocar la palabra «con» antes de 00/100 para que se mire mas con elegancia.

  405. 496 Adryxs_23 abril 29, 2010 a las 6:58 pm

    wow…. esto esta super bien, de verdad se les agradece

  406. 497 Orlando Camargo Rodriguez abril 30, 2010 a las 7:47 am

    Buenos dias:

    Necesito su amable colaboracion, quiero aplicar la funcion PESOS MN, en Excel 2007; pero no me funciona en 2003 ya lo hice y salio a la perfeccion, por favor necesita su colaboracion, agradezco me responda a mi mail informandome como se hace.

  407. 499 Jcarlos Castillejos May 2, 2010 a las 7:10 pm

    Perfecto!
    Solo copie y pegue en la hoja que la necesitaba,
    mil Gracias por el aporte

  408. 500 JCSoluciones May 6, 2010 a las 1:54 pm

    Tengo que dejar un comentario, porque me siento muy satisfecho con el resultado de tu guía y tu macro, es simplemente perfecta, es lo que yo buscaba y es fácil de aplicar y utilizar, te sacaste un 10, FELICIDADES, y gracias por no guardar tus conocimientos, y compartirlos.

  409. 501 Nicolás May 7, 2010 a las 10:28 am

    Muchísimas pero muchísimas gracias! anduve buscando por toda la web y es la mejor explicada! además pude modificar tranquilamente la macro por mi cuenta para poder cambiar ciertas cosas, por ejemplo, para el caso de que haya centavos que los diga, y si el numero es redondo, que no lo haga. Acá les paso el código de esa parte si le interesa a alguien:

    La anteúltima línea la reemplazan por:

    PesosMN = «SON PESOS: » & PesosMN & IIf(tyCantidad > 1, «», «») & IIf(lyCentavos > 0, (» con » & Format(Str(lyCentavos), «00»)) & » » & «centavos», » «)

    saludos y gracias de nuevo!

  410. 502 Pablo Garcia May 12, 2010 a las 3:28 pm

    Mil gracias, muy bien hecho!!

  411. 503 LAU May 13, 2010 a las 11:34 am

    Hola muchas gracias, me sirvio de mucho y lo pude utilizar aun despues de cerrar excel y abrir un libro nuevo, gracias por todas las aportaciones.

  412. 504 jesus May 20, 2010 a las 1:16 pm

    tenia que dejar un comentario felicidades explicas muy bine busque y eres le unico que da la respuesta muy bien saludos que estes bien dtb..

  413. 505 Oskar Xhaparro May 21, 2010 a las 4:45 pm

    Gonzalo: Gracias Men por tu gran aporte de verdad me gusto mucho ya que yo hago muchos chekes en un archivo que tengo donde imprimo las polizas de chekes y los mismos chekes asi ke me sirvio mucho para la leyenda en letra de la cantidad asi ke muchisimas gracias por tu aporte me sirvio un monton
    un saludo y siguele hechando muchas ganas
    Atte chaparro

  414. 507 Alfredo Márquez M. May 26, 2010 a las 2:20 pm

    Recibe un saludo, gracias es de gran ayuda al trabajo diario.

  415. 508 Oscar VG May 27, 2010 a las 12:37 pm

    La función esta muy buena, a pesar de que he leido toda la página y hecho varias propuestas de cambio no encontre alguna para que funcionara en una factura como lo usamos en Colombia, por ejemplo:

    Subtotal 1.917.660
    iva 16% 306.827 (se redondeo al proximo entero)
    Total 2.224.486

    SON: DOS MILLONES DOSCIENTOS VEINTICUATRO MIL CUATROCIENTOS OCHENTA Y SEIS PESOS M/C.

    ¿Es posible que alguien me ayude a adptarla?

    Gracias a quienes saben y comparten conociemientos.
    oscar vidal

  416. 510 uliysses May 30, 2010 a las 12:58 pm

    haaa. super. gracias. muy bien explicado. me has ahorrado unas horas de trabajo. jaja

  417. 511 Alejandro Lozao May 30, 2010 a las 3:38 pm

    Muchas Gracias por el aporte!!!!! me ahorrase muchos erroes en mis facturas

    Saludos

  418. 512 Mario May 31, 2010 a las 1:28 am

    Holas gracias por que esto me h ayudado un monto.

    No tengo ni la menor idea de como programar algo, pero seguí las indicaciones al pie de la letra y me fucniono solo que debo tener como resultado «SON: Un Mil Trecientos Veintitres y 13/100 Nuevos Soles»

    Alguien me puede facilitar el codigo completo?

    desde ya mil gracias!!!

  419. 513 Belisario May 31, 2010 a las 11:40 am

    Un Excelente aporte, gracias por compartir muchos no sabemos de programar y esas cosas, me funciono a la primera y no medio dificultades.

  420. 515 Amurabador junio 2, 2010 a las 1:41 pm

    Sencillamente un gran aporte, no solo por lo que representa la macro misma, sino por la sencillez con la que explicas la forma de adicionarlo al Editor de Visual Basic

    Gracias a nombre de todos aquellos que han utilizado tu aporte y no han tenido el tiempo de agradecertelo

  421. 516 victor hugo garcia junio 4, 2010 a las 12:19 pm

    todo esta bien pero si quiero hacer esto.

    36.562 (son: treinta y seis metros quinientos secenta y dos decimetros cubicos ) notese el punto

  422. 517 Xiqui junio 7, 2010 a las 5:08 pm

    Excelente, muchas gracias!

  423. 518 jose junio 9, 2010 a las 9:59 pm

    hola..
    es que yo hice todo lo que lei pero pra guardarlo no e podido, nose como habilitar contenidome sale mchos errores .
    ayudenme porfavor lo necesito urgente
    gracias compañeros

  424. 519 ADDY junio 12, 2010 a las 7:10 pm

    Hola, estuve leyendo la pagina y me parece muy interesante, hice lo mencionado anteriormente y si funciona, pero lo que estoy buscando es poner los promedios de calificaciones con dos decimales a un lado de la celda con el numero.
    Es decir, si el promedio da 6.50 en la celda siguiente diga seis punto cincuenta. ¿Se puede? ¿cómo hacerlo? De verdad agradecería su ayuda.

  425. 520 Marisol junio 15, 2010 a las 3:01 pm

    Excelente me funciono a la perfección =) 1000 gracias

  426. 521 JUAN junio 18, 2010 a las 6:50 pm

    SI ME CUERDO DE LA NIÑA Q INVENTO LA PALABRA «PALITROCHE» Y DEL CUENTO

  427. 522 Jose Luis junio 19, 2010 a las 6:17 pm

    Hola saludos desde Ecuador….. llevo casi 4 horas buscando una macros para asentar promedios de números a letras (estos van de 0 a 10, con un solo decimal) pero la mayoría son para recibos, facturas etc., es decir incluye pesos, soles, euros, dolares.

    Crees que me podrías ayudar con una macro sencilla (para ti obvio) en la que si pongo 8,9 me arroje OCHO, NUEVE o si pongo 10 salga DIEZ, CERO.

    Tengo varios cursos que van desde 20 hasta 50 alumnos, entonces imagínate la cantidad de tiempo que pierdo escribiendo promedios.

    Desde ya quedo muy agradecido.

  428. 525 jose cabanas junio 20, 2010 a las 11:08 pm

    Hola, que tal esta basante buena tu función, solo tengo tres observaciones que considero la harian mejor:
    1.- cuando no haya cantidad escrita, que te marque solo un guión o que no imprima nada, ya que si lo haces te aparece pesos…
    2.- cuando el número escrito sea = a cero, que marque «cero pesos..».
    3.- cuando las cantidades son iguales un millón o mayores debe escribir «un millón DE pesos…», ya que solo escribe «un millón pesos…»

    Espero y me puedas compartir tu función con las observaciones.

  429. 526 Aglae junio 21, 2010 a las 1:38 pm

    como puedo utilizar la funcion en dos columnas diferentes; el detalle es que una columna la utilizo en pesos y la otra en dolares, como puedo hacer para que obedezca a las dos incidaciones en una misma hoja
    ???

  430. 527 alexander junio 21, 2010 a las 3:01 pm

    mil gracias de mucha ayuda.

    Hay forma que los centavos queden como.

    POR ejemplo
    con treita y tres centavos y no 33/100.

    De nuevo mil gracias me sirvio mucho.

    te gradeceria me puedas responder a mi correo.

  431. 528 ELISEO junio 22, 2010 a las 9:08 am

    Muy bueno me sirvio ya que estuve buscando como cambiar los numeroa en texto para una factura que estoy realzando, gracias. TENGO UN DETALLITO QUE YO SOY DE BOLIVIA Y LA MONEDA AQUI ES EN BOIVIANOS Y QUERIA SABER COMO TENDRIA QUE HACER PARA QUE SALGA POR EJEMPLO: 130,60 Bs.- SON:CIENTO TREINTA BOLIVIANOS 60/100, CRACIAS DE ANTEMANO

  432. 529 Alfonso Gama junio 23, 2010 a las 4:32 pm

    Te agradezco me sirve mucho esta funcion .

    Gracias

  433. 530 PPPP junio 24, 2010 a las 12:22 pm

    GRACIAS MUY BUENO Y FUNCIONA

  434. 531 ABY junio 24, 2010 a las 4:32 pm

    Muchas gracias, me sirvio mucho, de haber sabido que no tardaria en encontrarlo lo hubiera buscado antes. Tenia tiempo queriendo buscar el dato.

  435. 532 zaire junio 24, 2010 a las 10:06 pm

    OYE YA SE QUE TE LO DIJERON MUCHOS, PERO MUCHISIMAS GRACIASS!!
    QUE CHIDO POR CONMPARTIR!!!!
    SUERTE
    Y MIS MAS BUENOS DESEOS!!!!!chao

  436. 533 isaac junio 25, 2010 a las 10:54 am

    Muchas Gracias Ya hacia tiempo que queria una formula asi, siempre se les pasa eso a los de microsoft jeje lo unico que no necesitaba eran el SON Y LOS PARENTESIS

    GRACIAS

  437. 534 JuanCarlos junio 25, 2010 a las 6:15 pm

    Bien hecho. El uso correcto de casos (CASE). La mayoría de los aficionados lo hacen con IF. ¿Se puede integrar a la macro que crea el libro nuevo en blanco? El objetivo: que todos los libros tengan la función al iniciar. Gracias.

  438. 535 Abraham Leal junio 29, 2010 a las 1:22 pm

    muchas gracias por el aporte…

  439. 536 OSCAR ANTONIO junio 29, 2010 a las 8:21 pm

    Buenas noches, gracias por su colaboracion. Hice el ejercicio y funciono. Sinembargo pido su ayuda con el fin de dar la instruccion y el formato me quede para que las cifras se lean asi:
    $3.000.000 SON: (TRES MILLONES PESOS 00/100 M.N.) Y NO SON: ( DOCE PESOS 00/100 M.N.Nuevamente mil gracias.
    Oscar

  440. 537 OSCAR ANTONIO junio 29, 2010 a las 8:24 pm

    CORRIJO LA SOLICITUD
    Buenas noches, gracias por su colaboracion. Hice el ejercicio y funciono. Sinembargo pido su ayuda con el fin de dar la instruccion y el formato me quede para que las cifras se lean asi:
    $3.000.000 SON: (TRES MILLONES PESOS 00/100 M/CTE.) PUES ESTOY EN COLOMBIA Y NO SON: ( DOCE PESOS 00/100 M.N.) Nuevamente mil gracias.
    Oscar

  441. 538 LAURA junio 30, 2010 a las 2:55 pm

    GRACIAS…..
    POR ESTA AYUDA…
    FUE DE MUCHA UTILIDAD

  442. 539 eduardo junio 30, 2010 a las 7:24 pm

    GONZALO .-

    Como dicen en contaduria,infinitamente un mil gracias ; por tu aportacion al igual que los compañeros estuve viendo y viendo ejemplo ; pero el tuyo QUE BARBARO me saco de un gran apuro.
    FELICITACIONES por ser como es y que nunca cambie;saludos desde la hermosa republica mexicana.

  443. 540 humofl julio 1, 2010 a las 2:34 pm

    Que te puedo decir, parece que ya dijeron todo pero mil gracias y sinceramente el Mejor.

  444. 541 David de Merida, Yucatan julio 1, 2010 a las 8:47 pm

    Tu maestro…. tu……….BIEN….. MUY BIEN..

    MIL GRACIAS MI HERMANO Y SIGUE ASI.

  445. 542 Brenda julio 1, 2010 a las 8:52 pm

    Sr.,

    Me sirvio mucho, tks.

  446. 543 Anónimo julio 3, 2010 a las 1:24 am

    gracias por el paro me sirvio de mucho

  447. 544 RUBY STELLA CAÑAS julio 3, 2010 a las 12:16 pm

    FELICITACIONES…..ME SIRVIO MUCHO..

    PERO AHORA TENGO 2 INQUIETUDES:

    – PARA MI EJEMPLO $257.000,65 QUE ME SALDA ASI: DOSCIENTOS CINCUENTA Y SIETE MIL PESOS CON 65/100 M.CTE.

    – Y EN UNAS NECESITO SON: ……. Y EN OTRAS NO LO NECESITO..

    QUE SE DEBE HACER…

    MIL GRACIAS PUES APRENDI ALGO NUEVO…… Y DE ANTICIPO OTRAS MUCHAS MIL GRACIAS POR AYUDARME CON LA SOLICITUD QUE TE PIDO…

  448. 545 gerardo julio 7, 2010 a las 10:52 pm

    maestraso k bien .. muy bien.. me la pusiste muy facil eh felicidades y gracias por brindar tu conocimiento a los que se nos dificultan, encerio gracias un saludos desde chiapas..

  449. 546 Robert julio 9, 2010 a las 12:13 pm

    Felicitaciones, muy bien ese procedimiento, lo encontré sin pensarlo y lo instalé excelente.

  450. 547 paty julio 14, 2010 a las 1:43 pm

    EXCELENTE, TE FELICITO GRACIAS PERO MUCHAS GRACIAS POR TU APORTE ME AYUDASTE MUCHO

  451. 548 angelita julio 21, 2010 a las 12:33 pm

    hola buenas tardes, muchas gracias por la macro. que tengas un bonito dia

  452. 549 MARTHA julio 21, 2010 a las 6:07 pm

    GONZALO BUENAS TARDES CLARO QUE ME SIRVIO MUCHISIMAS GRACIAS.
    ESPERO COMPARTIRLO POR AQUI PARA ALGUIEN QUE ESTE INTERESADO.
    GRACIAS NUEVAMENTE….

  453. 550 raul julio 24, 2010 a las 2:45 am

    Genial!! funciono!

  454. 551 ROGER julio 26, 2010 a las 1:44 pm

    PANA MIL GRACIAS POR LA INFORMACION, EXCELENTE!!!

  455. 552 Gerardo julio 27, 2010 a las 11:40 am

    Orale me parece excelente aporte y me funciono a la perfeccion, gracias!

  456. 553 ROSA MARIA HDZ. julio 27, 2010 a las 2:19 pm

    POR FAVOR ME EXPLICAS QUE DEBO HACER PARA QUE FUNCIONE EN OFFICE 2007, SOLO ME FUNCIONA EN VERSIONES ANTERIORES

  457. 554 nigali julio 27, 2010 a las 5:01 pm

    hola quien me puede explicar como puedo guardar esta macro para que sea parte de excel por que no lo se me pueden ayudar porfis

  458. 555 Claudio Espinoza julio 27, 2010 a las 10:57 pm

    Gracias amigo es o único bien explicado que realmente funciona a la primera, gran aporte saludos desde Chile.

  459. 556 cristian julio 27, 2010 a las 11:15 pm

    GONZALO_ GRACIAS POR EL APORTE ME PODES GUIAR LO COPIE, EN MACROS Y AL EJECUTARLO EN LA CELDA PARA PROBARLO, ME FIGURA ERRROR COMPILACION Y DE SINTAXIS EN LN 8 DONDE DICE CENTENAS, LA REVISÉ Y NO SE QUE COSA PUEDE SER…APARECE ALGO MAS EN EL CODIGO QUE EN LA PAGINA NO VEO.ME PONE EN ROJO ESTO:
    laDecenas = Array(«DIEZ», «VEINTE», «TREINTA», «CUARENTA, «CINCUENTA», «SESENTA», «SETENTA», «OCHENTA», «NOVENTA»)..

    DESDE YA MUCHAS GRACIAS..

  460. 557 Paco Regand julio 29, 2010 a las 1:32 pm

    Gracias ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
    Eres un master, este es el mejor codigo para hacer que los numeros se vean tambien en letras, que he visto en años, cuando necesites algo por favor no dudes en pedirmelo.

  461. 558 Jorge julio 29, 2010 a las 6:21 pm

    Hola, primero que todo quiero agradecerte muchisimo este aporte. Estoy ayudando a un amigo a modernizar su negocio y estaba haciendo una planilla excel para hacer las facturas, estaba todo listo, pero faltaba esto de escribir numeros con letras automaticamente. He corregido lo que necesitaba cambiar para que quedara como se hace en Chile.
    Tengo un pequeo problema, en Chile no se usan decimales pues no hay centavos, por lo tanto se aproxima cuando el decimal es mayor que 5, hasta ahi todo bien, excel me aproxima, pero tu codigo lee el numero sin aproximarlo, por ej. 1492,7 lo escribe como mil cuatroscientos noventaidos y si desactivo el uso de decimales en excel el numero queda asi 1493, pero la funcion sigue leyendolo como noventaidos. Sabes que tengo que hacer para q la funcion lea el numero final proyectado????
    Si no puede ayudarme no hay problema, con lo que has hecho ya me has ayudado muchisimo

    Un abrazo grande desde Chile

    Jorge

    • 559 Jorge julio 29, 2010 a las 6:51 pm

      Me respondo solo, era necesario utilizar la funcion REDONDEAR, he solucionado todo y ahora puede llenar las facturas del negocio de mi amigo de manera mucho mas simple.

      Un abrazo lleno de agradecimiento…

      Jorge

  462. 560 MAR julio 30, 2010 a las 9:02 pm

    HOLA! MUCHISIMAS GRACIAS, TU INFORMACION FUE DE GRAN UTILIDAD. NUEVAMENTE GRACIAS POR COMPARTIR TUS CONOCIMIENTOS CON NOSOTROS.

  463. 561 ALEJANDRA agosto 3, 2010 a las 3:18 am

    GRACIAS!!! ESTA SUPER BIEN EXPLICADO, MAS CLARO Y SENCILLO NO PODIA ESTAR. TE LO AGRADEZCO DE CORAZON, ME SACASTE DE UN SUPER GRAN APURO.

    ALEJANDRA.

  464. 562 Mario agosto 3, 2010 a las 10:07 am

    Muchas gracias, definitivamente el mejor post, me canse de buscar informacion de como hacerlo, ha sido todo un exito, muchas gracias

  465. 563 DANIEL agosto 3, 2010 a las 3:53 pm

    Excelente ahora podre hacer las cosas que quiero

    se le agradece por su tutorial.

  466. 564 wintershade agosto 4, 2010 a las 9:50 pm

    OOOOO meeennn!!!
    que chulada de macro acabo de obtener de aqui
    desde cuando que quiero hacer algo por el estilo en la compu de mi trabajo, pero como en ahi las macros no funcionan, me la estaba rifando con formulitas, esto es mucho mejor, grax

  467. 565 JOrge agosto 6, 2010 a las 6:06 pm

    Hola,
    No tendrías una para convertir porcentajes a letras?

  468. 566 ALICIA agosto 9, 2010 a las 1:48 pm

    GRACIAS POR TU APORTE}}

  469. 567 David Sanchez agosto 9, 2010 a las 6:11 pm

    MUUY BIEN LA FORMULA, MUY EFECTIVA!!!

    YO HABIA ESTADO PREGUNTANDO ENTRE VARIOS PROFESORES DE COMPUTO Y NINGUNO ME SABIA DAR RESPUESTA CONCRETA :p

    MUY BUEN APORTE.

    MUCHAS GRACIAS!!!!

  470. 568 Silvia agosto 11, 2010 a las 12:11 am

    GENIIAAALLL !!!!!!!!!!!!!!
    Muchisimas gracias muy buen aporte, mejor explicado no pudo haber estado…………. !!!!!!!

  471. 570 Luis Alfredo agosto 11, 2010 a las 5:15 pm

    Excelente aporte Gonzalo, además, muy didáctico.

    Saludos,
    Luis Alfredo

    P.S. Incluso me hiciste ganar una apuesta.

  472. 572 Fabian Sandoval agosto 12, 2010 a las 10:07 pm

    Muy bueno, hice ciertas modificaciones en pabras como dolares «CON » Y «CENTAVOS» quedo muy bien para mi pais ECUADOR ES MUY BUENO ESTE MACRO GRACIA!!!

  473. 573 Stevens Tabares agosto 13, 2010 a las 10:55 am

    Agradecido de tu consejo y archivo para utilizar en el visual para excel, le cambie unas cosas, que me quede sin centavos y como es para la factura que no me quede con la palabra SON: y los parentecis y sin centavos, obvio que lo hice a lo «bruto» quitando y colocando hasta que funcionó. Muchas gracias

  474. 574 Violeta agosto 17, 2010 a las 8:45 pm

    Muchisimas Gracias!!! ☺

  475. 575 RUBEN GS agosto 18, 2010 a las 2:20 pm

    Hola gchable

    me puedes ayudar que en la hoja de excel me aparesca la hora pero sabes si ahi un metodo para qeu este cambiando cada minuto o segundo sin necesida de ver el reloj de la computadora

    a y po rcierto me ayudo mucho ese macro de comvertir numero a letra felicidades

  476. 576 RUBEN GS agosto 18, 2010 a las 2:23 pm

    oye se em olvidaba me puedes ayudar si conoces algo de adobe acrobat ya que tquiero quitarle la clabe a un libro pero no se como puedo hacerlo pues el libro lo baje de internet y trae contrasena para poser copiarlo o omidicarlo

  477. 578 Leidy agosto 18, 2010 a las 6:55 pm

    Excelente solucion de codigo, gracias!

  478. 579 Carlos Meza agosto 20, 2010 a las 7:22 pm

    Hola esta muy bien explicada tu formula pero la verdad no se como utilizarla en Excel 2007 no encuentro la funcion de visual basic me podrias explicar un poco mas a fondo te lo voy a agradecer muchisimo

  479. 581 Miguel agosto 23, 2010 a las 6:13 pm

    Esta excelentemente bien explicacion y funcion a la perfeccion, es la primera vez que elaboro una macro y me quedo siguiendo los ejemplos. te felicito de verdad eres un experto.

  480. 582 Mariana agosto 24, 2010 a las 7:07 pm

    Excelente aporte!!! muy práctico y fácil, que bueno es compartir el conocimiento 😀

    Muchas gracias!

  481. 583 Xo agosto 26, 2010 a las 11:07 am

    Por años busque esta funcion, gracias por compartirla y ademas explicada de forma sencilla

  482. 584 Joel agosto 27, 2010 a las 12:23 am

    En verdad que es de admirar a personas como tú que no son egoístas.

    Uso Excel 2004 para Mac y me salía un error que solucioné borrando la línea 4, (no sé si después tenga alguna mala consecuencia).

    Por mientras todo funciona de maravilla.

    Muchas gracias por tu aporte.

  483. 585 Ivan Gallego agosto 27, 2010 a las 4:05 pm

    Mil gracias por tu aporte, lo habia buscado como loco, se encuentran muchas cosas pero muy complicadas, tengo una pregunta, es que con libros nuevos me funciona muy bien, pero cuando pongo la formula en libros que ya tenia, no me funciona, hay que hacer algo en especial?

    Mil gracias

  484. 587 Crisss septiembre 3, 2010 a las 9:48 am

    Definitivamente no lo puedo guardar pero como solo lo ocupo el finde mes pues en un dia hago todo, lo imprimo y ya esta, para el siguiente mes vuelvo a hacer el mismo procedimiento.

    Tengo windows 2007

    MUCHISIMAS GRACIAS!!!

  485. 588 JORGE ANTONIO septiembre 8, 2010 a las 5:45 pm

    GRACIAS POR LA FÓRMULA
    DE VERDAD ES DE GRAN UTILIDAD
    YA ME HACIA FALTA JAJAJA
    ASI NO TENGO QUE ESCRIBIR EN MIS
    FACTURAS LETRA POR LETRA LAS CANTIDADES
    GRACIAS A LA PERSONA QUE PROGRAMO LA FORMULA

    SALUDOS A TODOS
    DE VERDAD QUE SE APRENDE COSA NUEVA TODOS LOS DIAS.

  486. 589 Vladimir septiembre 9, 2010 a las 4:55 pm

    Hola buenas tardes de verdad agredecido con esta funcion muy util para nosotros los contadores… de verdad excelente explicacion y todo un saludo desde venezuela.. pero tengo una duda como le hago para que me quede siempre guardado o es q no supe hacerlo xq al abrir o cerrar excel debe hacer el mismo procedimiento o como??? de verdad disculpa mi ignoracion en programacion….si me puedes ayudar te lo agradeceria

    • 590 gchable septiembre 9, 2010 a las 5:04 pm

      Hola Vladimir, yo recomendaria que por cada libro de trabajo insertes la macro, para que cuando abras el libro encualquier pc tenga ahi la macro. Saludos El 09/09/2010 03:55 p.m.,

  487. 591 Liliana septiembre 10, 2010 a las 3:05 pm

    Buenas tardes….Alguien me podría ayudar…por favor? tengo el problema de que me aparece #¿nombre?…Si me pueden ayudar mi correo es l.ledesma@hotmail.com…Gracias

  488. 593 tzyulong septiembre 10, 2010 a las 8:57 pm

    Muchas gracias x la explicacion, habia buscado esta info desde hace mucho, y solo tu explicas como debe ser.

    Mil gracias

  489. 594 Liliana septiembre 11, 2010 a las 1:02 pm

    gchable Gracias por tu contestación y si me puedes ayudar como puedo activar los macros (es windows vista 2007) y como lo guardo porque a veces me aparece la cantidad con letra y cuando lo guardo y lo vuelvo abrir me aparece #####…Gracias…

  490. 596 Anónimo septiembre 13, 2010 a las 5:25 pm

    EXELENTE GRACIAS

  491. 597 David septiembre 13, 2010 a las 7:37 pm

    Amigo muchas gracias por la información. Esta muy claro como hacerlo. Me costo un poco de trabajo entender lo que tenia que hacer porque tengo office 2007, pero me quedo claro con la explicación que diste para habilitar todas las macros.

    Gracias por tu página.

    Saludos.

  492. 598 victoriano septiembre 16, 2010 a las 3:44 pm

    boy a tratrar de insertar estos macros de convercion a mi hoja de factueracion hojala y me salga vien, y de tener algun problema en la configuracion de esta convercion me comunicare de inmediato con ustedes para que me aukxilien.

    • 599 victoriano septiembre 16, 2010 a las 7:49 pm

      GONZALO FELICIDADES Y GRACIAS POR LA INFORMACION DE ESTA CONVERCION NUMERICA A TEXTO – VOY INTENTAR QUE QUEDE GUARDADO EN EL LIBRO Y ESTE DISPONIBLE AL ABRIRLO

      gRACIAS Y FELICIDADES

      • 600 victoriano septiembre 17, 2010 a las 8:08 pm

        SALUDOS GONZALO TODO FUNCIONA PERFECTO AL INSERTARLO EN LA HOJA DE CALCULO

        PERO NO PUEDO GUARDARLO EN EL LIBRO .- CIERRO EL LLIBRO Y AL VOLVERLO ABRIR YA NO HACE LA FUNCION TENGO QUE INSERTAR DE NUEVO EL CODIGO.

        ME PUEDES AYUDAR PARA LOGRAR GUARDARLO Y ESTE DISPONIBLE CADA QUE SE HABRA EL LIBRO O LA HOJA DE TRABAJO

        EL WINDOWS ES XP Y EL EXCELL ES 2007 POR FAVOR AUXILIAME

        MI CORREO ES victor_herrera@hotmail.com

        MUCHO TE AGRADECERE ESTA ORIENTACION

        GRACIAS

  493. 603 joaquin septiembre 19, 2010 a las 6:52 pm

    muy claro y conciso lo unico que yo agregaria en la parte de las intruccion es como guardarlo y activarlo para que cuando cierres el libro no tengas que repetir todo el proceso de nuevo aunque por alla lo explico una persona,, muy amable con compartir este apunte, saludos desde merida yucatan..

  494. 604 victoriano septiembre 20, 2010 a las 12:04 am

    GONZALO.- TODO MUY PERFECTO, EDITAR EL CODIGO Y GRABARLO PARA SU PRESENCIA CONSTANTE SIN TENER QUE CARGAR CADA QUE EL LIBRO SE HABRA. FELICIDADES POR TU TALENTO INGENIOSO LLENO DE CONOCIMIENTOS.

    NAMAS TE PIDO UN ULTIMO FAVOR

    DIME QUE PONGO AL PARA PONER M.N. FUERA DEL PARENTESIS DEL TEXTO.

    O SEA QUE SE REFLEJE HACI SON:(CINCUENTA MIL PESOS 00/100) M.N.

  495. 606 ARISTEO GARCIA septiembre 20, 2010 a las 2:08 am

    después de tanto buscar, encontrar varias páginas sobre el tema, intentar pasar el código fuente a mi hoja de excell, etc. por fin me funcionó.

    tuve un poco de problema porque al cerrar la pagina de excell y al volver a abrirla ya no funcionaba, pero el comentario sobre agregarle XLAM LO CORRIGIÓ.

    MUUUUUUUUUUUUUUUUUUUUUUUUUUUUCHAS GRACIAAAAAAASSSSSS!!!!!!!!!

  496. 607 Francisco Javier septiembre 20, 2010 a las 7:48 am

    Hola! mil gracias por compartir sus experiencias, tengo una pregunta: yo realizo el machote de mi factura en excel y la imprimo antes para verificar que la impresion salga en el lugar indicado, podria ayudarme a realizar una macro o un programa donde todo esto ya este listo y me ahorre tiempo! saludos y mil gracias!

  497. 609 joaquin septiembre 20, 2010 a las 1:54 pm

    tengo el mismo dilema gchable, ya hice la plantilla con el formato y los encabezados para llenar pero al momento de imprimir me sale completo el formato cabe señalar que tengo mis facturas preimpresas y quiero que solo los datos como: cliente fecha direccion detalle de productos etc, se impriman pero que me aparezca el formato de la factura en la pantalla.. por la atencion gracias..

  498. 611 victoriano septiembre 26, 2010 a las 6:52 pm

    GONZALO ME PRODRIAS AYUDAR ORIENTANDOME EN LA HOJA DE CALCULO DE EXEL MUCHO TE LO AGRADECERIA.
    NESECITO FORMAR UN DIRECTORIO DE 50 CLIENTES EN EL QUE CADA CLIENTE CONSTA DE:-
    1.- NOMBRE Y DOS APEIDOS
    2.- DOMICLIO
    3.- COLONIA
    4.- CIUDAD
    5.- TELEFONO
    6.- CODIGO POSTAL
    7.- REGISTRO FEDERAL DE CAUSANTES.
    Y DE ESTE DIRECTORIO CON UN CODIGO DE IDENTIFICACION PARA CADA CLIENTE CITARLOS EN EL FORMATO DE LA FACTURA Y QUE APARESCAN EN ELLA CON SUS 7 DATOS SIN TENER QUE ESCRIVIRLOS CADA QUE SE ELABORE LA FACTURA SUS 7 DATOS.-

  499. 613 joaquin septiembre 27, 2010 a las 3:24 pm

    contador, igual requiero una gestion de clientes, es similar a lo que ocupa victoriano, en mi caso seria, nombre/razon social,direccion1, direccion2 por ultimo el rfc, considerando que en la hoja 1 tengo la plantilla para llenar la factura en la hoja 2 tengo capturado los clientes en 4 lineas por cliente como puedo vincularlo al machote de la hoja 1 para no tener que teclear los datos de cliente, ya hice varias pruebas y no le encuentro una forma practica, gracias por tu ayuda de antemano

    • 614 gchable septiembre 27, 2010 a las 3:37 pm

      Joaquin, no recomiendo excel como base de datos de clientes o algún otro tipo de datos, si tienes muchos clientes usa algun soft para ese proposito.  Aunque puedes hacerlo pero ten cuidado con los dedazos. Saludos El 27/09/2010 02:24 p.m.,

  500. 615 senig septiembre 29, 2010 a las 9:28 am

    gracias por el aporte muy muy bueno felicidades ya que nos has sacado de muchos pauros a mucho saludos amigo

  501. 616 Jorge diaz octubre 7, 2010 a las 1:05 pm

    Excelente tu eplicacion
    Gracias por el aporte

  502. 617 Geovanny octubre 7, 2010 a las 2:55 pm

    Hola
    este contenido esta bueno felicidades

    gracias

  503. 618 Fredy octubre 8, 2010 a las 4:15 pm

    Perfecto y funcionando Gracias . . . . .

  504. 619 VICTOR octubre 11, 2010 a las 6:27 pm

    gracias contador, me sirvio muchisimo… le mando muchas bendiciones

  505. 620 Oustivo octubre 12, 2010 a las 12:49 pm

    Gracias por tu ayuda.

  506. 621 VICTOR octubre 13, 2010 a las 10:00 pm

    gRACIAS AMIGO LA VERDAD QUE MUY UTIL Y PRACTICA TODA LA INFORMACION QUE NOS BRINDASTE POR ESTE MEDIO ME SIRVIO MUCHISIMO, TE ESTOY AGRADECIDO POR ESTO.

    MUCHAS GRACIAS.

  507. 622 Anónimo octubre 14, 2010 a las 12:55 pm

    muchas gracias….

  508. 623 Viviana Gaete octubre 19, 2010 a las 10:08 am

    Hola, me encanto tu pagina, segui los pasos y todo salio bien… solo quisiera saber… cuando aplicas el codigo en un libro y quieres usarlo en las paginas del libro no hay problema… hay alguna forma de que al abrir un libro nuevo para trabajar no tengas que hacer nuevamente el proceso?????
    Agradecida desde ya por tu respuesta o la respuesta de alguien que al usarlo haya resuelto esto… te saluda
    Viviana Gaete

    • 624 gchable octubre 19, 2010 a las 10:18 am

      Viviana, debes agregar el codigo a tus libros, te explico, si pones el codigo fuera del libro, entonces cuando mandes el libro por correo o lo usas en otra pc no funcionara, ya que como comprenderas el codigo no esta en el libro. El 19/10/2010 09:08 a.m.,

  509. 625 JOSE HERNANDEZ CANCUN octubre 21, 2010 a las 5:51 pm

    HOLA MI BUEN ESTIMADO COLABORADOR, AGRADEZCO LA AYUDA, GRACIAS POR COMPARTIR TUS CONOCIMIENTOS ESTO ME AYUDO DE UNA PREGUNTA QUE ME HICIERON MIS ALUMNAS DE CONTABILIDAD, ME SIENTO CONTENTO POR QUE NI SUS MAESTROS DE EXCEL LAS AYUDAN, GRACIAS DE NUEVO Y SIGUE ASI, DIOS TE BENDIGA…

  510. 626 AMY octubre 21, 2010 a las 6:19 pm

    alfin he podido terminar al 100% una consulta, que por falta de el importe en letras no habia podido terminar…

    muchas grascias un gran aporte

  511. 627 Victor octubre 22, 2010 a las 10:15 am

    Gonzalo, disculpa por las palabras que te voy a escribir. Hay personas especiales en este mundo, diferentes a las demas, y una de esas pocas eres tu. Gracias por compartir lo que sabes. Otra cosa, yo sin saber nada de macros, con la excelente explicacion que das, no se como pero pude hacer que el resultado salga algo como esto: 21.32 igual a «Son: veintiuno y 32/100 nuevos soles» y asi con cualquier candtidad, Nuevamene, Muchas Gracias.

  512. 629 Guillermo octubre 27, 2010 a las 10:09 pm

    Oye amigo de conta a conta, mis respetos te la volaste con el codigo, he tratado de ensamblarlo como en c++ pero si me es un poco complicado sobretodo por el tiempo, muchisimas gracias.

  513. 630 Mónic octubre 28, 2010 a las 1:18 pm

    Mil gracias, me sirvio muchisimo, creo que gracias a ti cualquiera puede hacerlo sin necesidad de saber nada de programación, de nuevo mil gracias n.n

  514. 631 Chema octubre 28, 2010 a las 10:51 pm

    Excelente Formula, la mejor que e visto, yo tenia una para oficce 2003 y esta esta mucho mejor la puse en excel 2007, Saludos

  515. 632 Gonzalo noviembre 2, 2010 a las 9:00 pm

    Has salvado mi calificación tocayo

  516. 633 Aldo Valle noviembre 2, 2010 a las 10:17 pm

    Muchas gracias por tu codigo, me hiciste ganar un millon de dolares por el. 😀

  517. 635 Carlos noviembre 3, 2010 a las 4:22 pm

    Muchas gracias por tu excelente explicación, te felicito.

    Gracias y saludos..

  518. 636 EZEQUIEL SANCHEZ noviembre 4, 2010 a las 9:52 pm

    Jovenes aprobechando esta gran ayuda del autor, me ha servido de mucho gracias por tu gran aporte.
    saludos

  519. 637 MIGUEL noviembre 6, 2010 a las 2:11 pm

    BUENA APORTE Y DE MUCHO UTILIDAD, GRACIAS

  520. 638 Ruben noviembre 9, 2010 a las 9:23 pm

    Hola estimado, en primer lugar me parece sorprendente que personas como usted compartan lo que saben de forma humilde y lo felicito por eso, mis mayores respeto para usted, ahora mi consulta es la siguiente, yo necesito una formula o codigo similar al que acabo de ver de usted, pero lo que necesito es lo siguiente:
    Ejem: 6,3 que diga «Seis coma tres», estube modificando el codigo pero no doy con lo que necesito, estaria muy agradecido de su ayuda, gracias

  521. 639 Said noviembre 11, 2010 a las 10:56 am

    Excelente código, si necesitas algo de código sobre manejo de excel y acces me cuentas.

  522. 640 Edward L. V. noviembre 14, 2010 a las 11:06 pm

    gracias por tu gran ayuda…

    soy de PERU, POR FAVOR ME GUSTARIA QUE ME DES UNA AYUDITA MAS, NOSOTROS FACTURAMOS EN NUESTRA MONEDA NACIONAL QUE ES EL NUEVO SOL Y TAMBIEN EN DOLARES AMERICANOS…COMO PODRIA HACER PARA FACTURAR CON LOS DOS TIPOS DE MONEDA SIN ESTAR MODIFICANDO LA FORMULA

  523. 642 carlomon noviembre 22, 2010 a las 1:10 pm

    Muy buen aporte gracias por su ayuda me resulto muy valiosa

  524. 643 Anónimo noviembre 22, 2010 a las 3:52 pm

    Gonzalo mil gracias por tu ayuda…eres inmortal por que transmites tus conocimientos!!!

  525. 644 mary@aislinginc.com noviembre 23, 2010 a las 9:59 pm

    HOLA,,,, MUCHAS GRACIAS, BUSQUE MUCHO Y DE TODAS LAS OPCIONES ESTA FUE LA MUCHO,, PERO MUCHO MEJOR,,, MIL GRACIAS, ME SACASTE DE UN GRAN APURO,,, BYE

  526. 645 Jorge noviembre 25, 2010 a las 1:01 am

    Muchas gracias por el dato, lo adapté a una factura que estoy realizando, le quité los centavos y quedó perfecto, muchas gracias.

  527. 646 carlos noviembre 25, 2010 a las 9:54 am

    Buena Compadrito:) se paso. Lo unico de todo esto es que no hace referencia al tipo de moneda usada en un pais determinado, ya que por lo menos en el mio, no coincide que aparezca al final del texto la expreción «M.N.» Y solo coloca decimales no redondea la cifra.

  528. 647 Bichusk790 noviembre 27, 2010 a las 4:31 pm

    Buenas aporte, pero quisiera saber como agregar la palabra «DE» despues de millon o millones por ejemplo: 1000000, «UN MILLON DE PESOS», y

  529. 648 Bichusk790 noviembre 27, 2010 a las 4:35 pm

    Buen aporte, pero quisiera saber como agregar la palabra «DE» a millon por ejemplo: 1000000, «UN MILLON DE PESOS», ya que al escribir esta cantidad solo aparece «UN MILLON PESOS», y tambien en los millones «CATORCE MILLONES PESOS» espero me puedan ayudar ya que soy un novato en esto de excel y macros

  530. 649 erbin soto noviembre 30, 2010 a las 5:27 pm

    aplicacion sencilla y funcional, me sirvio mucho ahora estoy buscando la opcion que no devuelva la moneda, solo el valor ejempo 32, treinta y dos y que no incluya la moneda

  531. 650 FRITZ diciembre 2, 2010 a las 11:32 am

    hola Gonzalo sabes esta legal tu blog, bueno en fin tengo un problema, cuando entro al visual bassic, y luego: insertar/modulo, este esta bloquedo por lo k no puedo intertar el código, en fin no se si tienes alguan solucion para este problema. Gracias de ante mano.

  532. 651 Elva diciembre 3, 2010 a las 5:19 pm

    Trato de crear macros en excel 2007 y no me sale coomo puedo hacerlo???

  533. 652 Margarita diciembre 6, 2010 a las 1:14 pm

    muy buena la pagina me funcionó super rapido a diferencia de las demas….. q no entendia nada.. pero lo que necesito es que me salga en soles por ejemplo.
    Ochenta y seis con 40/100 nuevos soles.

    Agradeceria me ayude en eso pues lo necesito urgente 😉

  534. 653 Gerardo diciembre 6, 2010 a las 9:46 pm

    Mil gracias es súper fácil así como lo pones.

  535. 654 cecik_87@hotmail.com diciembre 10, 2010 a las 11:52 am

    GRACIAS!!! DE MUCHA AYUDA

  536. 655 Anónimo diciembre 11, 2010 a las 12:21 pm

    gracias me resulto de lo lindo

    patricio

  537. 656 Anónimo diciembre 14, 2010 a las 1:38 pm

    Excelente post!! Sin dudas el único que explica bien esta función!! Te felicito y agradezco mucho!!
    Andrés.

  538. 657 leo diciembre 15, 2010 a las 7:20 am

    esta es la mejor respuesta que e encontrado gracias

  539. 658 Kathy diciembre 15, 2010 a las 2:14 pm

    Muchas gracias funciona muy bien y es de gran ayuda nois facilia el trabajo

  540. 659 Kathy diciembre 15, 2010 a las 2:18 pm

    GRACIAS ES DE MUCHA AUDA, FUNCIONA SUPER BIEN

  541. 660 luis diciembre 15, 2010 a las 5:36 pm

    gracias por el aporte, me sirve muchisimo

  542. 661 efxona diciembre 15, 2010 a las 9:05 pm

    Hola Amigos. buenas noches. yo utilicé esta funcion y me funciono a la perfeccion… y eso que le hice unas modificaciones a quetzales, mi moneda… pero ahora quiero saber como le hago si quiero que cuando sean monedas exactas me salga por ejempo Q.1.00 un quetzal exacto. y cuando tenga centavos un quetzal con 00/100 me podras ayudar amigo..

  543. 663 nic diciembre 19, 2010 a las 2:49 pm

    hola, muchas gracias tu ayuda me sirvio de mucho

  544. 664 carlos olmos diciembre 20, 2010 a las 3:25 pm

    felicidades, fue un aporte muy grande, deberían de hacer dos ejemplos unos con la palabra «son» y otro sin la palabra «son». ya que necesitamos de los dos, gracias……………………

  545. 665 jss diciembre 22, 2010 a las 12:28 am

    Gracias me sirvio mucho tu comentario

  546. 666 fernando diciembre 22, 2010 a las 12:11 pm

    muy buena informacion gracias!!! es de las mejores que eh visto por la explicacion detallada y sencilla!!!

  547. 667 PATY diciembre 27, 2010 a las 4:11 pm

    Hay estoy tan emocionada que no lo puedo creeer busque por todos lados y ponen cosas que nunca entendi me sentia de lo mas ignorante y aqui gracias a el pude hacerlo tal como lo pone

  548. 668 Luis Alberto diciembre 28, 2010 a las 3:20 pm

    Muchisimas Gracias Hermano, Dios te BEndiga siempre, y si me acuerdo, PALITROCHE, jajajaja

  549. 669 Marco diciembre 30, 2010 a las 2:45 am

    Hola que tal, esta macro me ha ayudado bastante, ahora sera mas rapido la facturacion ya hice todas las modificaciones a mis libros gracias

  550. 670 raul enero 3, 2011 a las 11:56 am

    para excel 2007 no hay una obcion me gustaria que me ayuden lo e usado para elxel 97-2003 ahora tengo ecxel 2007 por favor se los agradecere

  551. 672 ROY enero 7, 2011 a las 6:12 pm

    que buen aporte hiciste me CAE, CHIDO

  552. 673 vstgo49@hotmail.com enero 8, 2011 a las 12:40 pm

    hola buenos días, aquí les dejo el programa actualizado
    FUNCTION CONVIERTENUMLETRA(NUMERO)
    DIM TEXTO
    DIM MILLONES
    DIM MILES
    DIM CIENTOS
    DIM DECIMALES
    DIM CADENA
    DIM CADMILLONES
    DIM CADMILES
    DIM CADCIENTOS
    TEXTO = NUMERO
    TEXTO = FORMATNUMBER(TEXTO, 2)
    TEXTO = RIGHT(SPACE(14) & TEXTO, 14)
    MILLONES = MID(TEXTO, 1, 3)
    MILES = MID(TEXTO, 5, 3)
    CIENTOS = MID(TEXTO, 9, 3)
    DECIMALES = MID(TEXTO, 13, 2)
    CADMILLONES = CONVIERTECIFRA(MILLONES, 1)
    CADMILES = CONVIERTECIFRA(MILES, 1)
    CADCIENTOS = CONVIERTECIFRA(CIENTOS, 0)
    IF TRIM(CADMILLONES) > «» THEN
    IF TRIM(CADMILLONES) = «UN» THEN
    CADENA = CADMILLONES & » MILLON»
    ELSE
    CADENA = CADMILLONES & » MILLONES»
    END IF
    END IF
    IF TRIM(CADMILES) > «» THEN
    CADENA = CADENA & » » & CADMILES & » MIL»
    END IF

    IF TRIM(CADMILES & CADCIENTOS) = «UN» THEN
    CADENA = CADENA & » PESOS » & DECIMALES & «/100″ & » M.N. »
    ELSE
    IF MILES & CIENTOS = «000000» THEN
    CADENA = CADENA & » » & TRIM(CADCIENTOS) & » DE PESOS » & DECIMALES & «/100″ & » M.N. »
    ELSE
    CADENA = CADENA & » » & TRIM(CADCIENTOS) & » PESOS » & DECIMALES & «/100″ & » M.N. »
    END IF
    END IF
    CONVIERTENUMLETRA = TRIM(CADENA)
    END FUNCTION

    FUNCTION CONVIERTECIFRA(TEXTO, SW)
    DIM CENTENA
    DIM DECENA
    DIM UNIDAD
    DIM TXTCENTENA
    DIM TXTDECENA
    DIM TXTUNIDAD
    CENTENA = MID(TEXTO, 1, 1)
    DECENA = MID(TEXTO, 2, 1)
    UNIDAD = MID(TEXTO, 3, 1)
    SELECT CASE CENTENA
    CASE «1»
    TXTCENTENA = «CIEN»
    IF DECENA & UNIDAD «00» THEN
    TXTCENTENA = «CIENTO»
    END IF
    CASE «2»
    TXTCENTENA = «DOSCIENTOS»
    CASE «3»
    TXTCENTENA = «TRESCIENTOS»
    CASE «4»
    TXTCENTENA = «CUATROCIENTOS»
    CASE «5»
    TXTCENTENA = «QUINIENTOS»
    CASE «6»
    TXTCENTENA = «SEISCIENTOS»
    CASE «7»
    TXTCENTENA = «SETECIENTOS»
    CASE «8»
    TXTCENTENA = «OCHOCIENTOS»
    CASE «9»
    TXTCENTENA = «NOVECIENTOS»
    END SELECT

    SELECT CASE DECENA
    CASE «1»
    TXTDECENA = «DIEZ»
    SELECT CASE UNIDAD
    CASE «1»
    TXTDECENA = «ONCE»
    CASE «2»
    TXTDECENA = «DOCE»
    CASE «3»
    TXTDECENA = «TRECE»
    CASE «4»
    TXTDECENA = «CATORCE»
    CASE «5»
    TXTDECENA = «QUINCE»
    CASE «6»
    TXTDECENA = «DIECISEIS»
    CASE «7»
    TXTDECENA = «DIECISIETE»
    CASE «8»
    TXTDECENA = «DIECIOCHO»
    CASE «9»
    TXTDECENA = «DIECINUEVE»
    END SELECT
    CASE «2»
    TXTDECENA = «VEINTE»
    IF UNIDAD «0» THEN
    TXTDECENA = «VEINTI»
    END IF
    CASE «3»
    TXTDECENA = «TREINTA»
    IF UNIDAD «0» THEN
    TXTDECENA = «TREINTA Y »
    END IF
    CASE «4»
    TXTDECENA = «CUARENTA»
    IF UNIDAD «0» THEN
    TXTDECENA = «CUARENTA Y »
    END IF
    CASE «5»
    TXTDECENA = «CINCUENTA»
    IF UNIDAD «0» THEN
    TXTDECENA = «CINCUENTA Y »
    END IF
    CASE «6»
    TXTDECENA = «SESENTA»

    IF UNIDAD «0» THEN
    TXTDECENA = «SESENTA Y »
    END IF
    CASE «7»
    TXTDECENA = «SETENTA»
    IF UNIDAD «0» THEN
    TXTDECENA = «SETENTA Y »
    END IF
    CASE «8»
    TXTDECENA = «OCHENTA»
    IF UNIDAD «0» THEN
    TXTDECENA = «OCHENTA Y »
    END IF
    CASE «9»
    TXTDECENA = «NOVENTA»
    IF UNIDAD «0» THEN
    TXTDECENA = «NOVENTA Y »
    END IF
    END SELECT

    IF DECENA «1» THEN
    SELECT CASE UNIDAD
    CASE «1»
    IF SW THEN
    TXTUNIDAD = «UN»
    ELSE
    TXTUNIDAD = «UN»
    END IF
    CASE «2»
    TXTUNIDAD = «DOS»
    CASE «3»
    TXTUNIDAD = «TRES»
    CASE «4»
    TXTUNIDAD = «CUATRO»
    CASE «5»
    TXTUNIDAD = «CINCO»
    CASE «6»
    TXTUNIDAD = «SEIS»
    CASE «7»
    TXTUNIDAD = «SIETE»
    CASE «8»
    TXTUNIDAD = «OCHO»
    CASE «9»
    TXTUNIDAD = «NUEVE»
    END SELECT
    END IF
    CONVIERTECIFRA = TXTCENTENA & » » & TXTDECENA & TXTUNIDAD
    END FUNCTION

    saludos cordiales

  553. 674 JOSE RAMON HERNANDEZ enero 9, 2011 a las 9:47 pm

    GRACIAS EXCELENTE PANA ERES UN GENIO YO CONVERTI LA FORMULA A BOLIVARES PERO GRACIAS A TU PLANTILLA

    EXITOS GRACIAS

  554. 675 Ashek enero 10, 2011 a las 3:48 pm

    Hey! pues yo tambien te agradezco el aporte, Saludos desde MExico DF

  555. 676 angie enero 11, 2011 a las 1:28 pm

    gracias!!!te amo!!!! tarde siglos en hacer esto, lo busq x varios dias pero ninguno se explicaba bien como el tuyo…..
    felicidades!!!!!
    bsosss

  556. 677 Raul enero 11, 2011 a las 3:23 pm

    Excelente, te agradesco el apoyo. Yo tengo una version que hice pero es muy larga. solo le voy a realizar unos pequeños ajustes. De nuevo Mil gracias

  557. 678 RAFAEL enero 12, 2011 a las 2:14 pm

    Esta excelente, muchas gracias, me podrías decir como guardarlo en office 2007, ya que lo intento hacer pero al abrir otra hoja no me funciona la macro, (de favor paso a paso) y de las cantidades en las que que no pone «DE» por ejemplo «un millón de pesos ya habrás podido conseguir la corrección. Una vez más mil gracias, «si cerebro tenemos pero hay algunos que si saben utilizarlo muy bien». ATTE. RAFAEL

  558. 679 monikcg01@yahoo.com.mx enero 13, 2011 a las 11:58 am

    Excelente aplicación, mil gracias, Son unos genios!!!!.

  559. 680 EDWARD enero 13, 2011 a las 2:02 pm

    EXELENTE, ACABO DE DESPEJAR UNA INQUIETUD DE MUCHO TIEMPO GRACIAS

  560. 682 KOOL enero 13, 2011 a las 9:55 pm

    EXCELENTE APORTE, YA LO DIJERON TODO. GRACIAS. ES BUENO SABER DE PERSONAS QUE DAN SIN ESPERAR NADA A CAMBIO. QUE DIOS TE LLENE DE MUCHOS CONOCIMIENTOS Y SABIDURÍA.

  561. 683 sin barrero enero 21, 2011 a las 11:09 am

    Muchas gracias me ayudo mucho 😉

  562. 685 Anónimo enero 21, 2011 a las 4:15 pm

    Perfecto, solo hay que hacer una pequeña modificación a la penúltima parte si escribes 1.50 lo traducira a un pesos con 50/100

    PesosMN = «SON: (» & PesosMN & IIf(tyCantidad > 1, » PESOS «, » PESO «) & Fo

    correcto quedaría

    PesosMN = «SON: (» & PesosMN & IIf(tyCantidad >= 2, » PESOS «, » PESO «) & Fo

    Saludos

  563. 686 ANDY enero 24, 2011 a las 12:59 pm

    THANK VERY MUCH 10 ARE MEJOR CONGRATULATIONS MY FRIEDSDS

  564. 687 OSCAR enero 24, 2011 a las 5:56 pm

    EXCELENTE LA EXPLICACIÓN Y EL DESEMPEÑO DE LA MACRO.
    GRACIAS

  565. 688 Claudia Salinas enero 26, 2011 a las 3:00 pm

    HOLA MUCHISIMAS GRACIAS ME SIRVIO DE MARAVILLA, ESTUVE INTENTANDO VARIAS OPOCIONES EN OTROS BLOGS Y NADAAAAAAAAA. SE LOS RECOMIENDO SIP FUNCIONA

  566. 689 Guillermo enero 26, 2011 a las 6:07 pm

    Hola Gonzalo excelente tu aporte.
    que debo hacer cuando ingrese una cantidad sin decimales, se omita los centavos.

    Ej.1250.50(UN MIL DOCIENTOS CINCUENTA CORDOBAS CON 50/100)

    Pero si digito una cantidad en entero que salga de la siguiente manera.
    1200(UN MIL DOCIENTOS CORDOBAS NETOS).

    Saludos
    y gracias por tu aporte.

  567. 690 MARIBEL enero 27, 2011 a las 6:26 pm

    UNA CONSULTA SABE QUE ESTOY INICIANDO UN TRABAJO Y SOY NOVATA EN EXCEL,DESEARIA QUE ME EXPLICARAS COMO PUEDO LOGRAR QUE SE ME ACUMULEN DATOS DE LA HOJA UNO A LA HOJA DOS SIN LOGRAR MODIFICACIONES Y SIN QUE SE MUEVAN LAS CELDAS

    EJEMPLO REALIZO REPORTES DIARIOS EN LAS CUALES PRESENTO GASTO E INGRESOS Y QUIERO QUE EN LA HOJA DOS SE ACUMULEN TODOS ESOS GASTOS E INGRESOS MENSUALMENTE Y DE LAS DIFERENTES FECHAS INTENTE HACERLO PERO NO ME LOGRA NADA.
    POR FAVOR SI MEPUDIERAS AYUDAR TE AGRADECERE MUCHO. PUEDES CONTACTRTE CONMIGO AMI CORREO Y A SI TE ENVIO UN FORMATO DE LO QUE QUIERO REALIZAR.

  568. 691 Anónimo enero 27, 2011 a las 7:53 pm

    ME FUE DE GRAN AYUDA! GRACIAS

  569. 692 perrys37@Gmail.com enero 28, 2011 a las 9:30 pm

    gacias Exelete Aporte Estube Probando varios pero tenian varios errores y este esta muy completo

    Gracias

    Saludos

  570. 693 Jhosantoni febrero 2, 2011 a las 10:52 am

    Muy agradecido por tu macro, lo necesitava para una impresion de cheques, gracias

  571. 694 Ronel febrero 4, 2011 a las 3:04 pm

    Saludos a todos, Agradezco por e aporte, les comento que lo he diseñado para trabajarlo en Quetzales y le he hecho unas modificaciones, si alguno lo necesita se lo mando en una hoja que excel, escribanme al correo ronelescobar@hotmail.com

    Las modificaciones fueron
    Ponerlo en Quetzales
    Quitarle el SON
    Quitarle los parentesis
    y Ponerle el CON
    Ejem. 50.34 CINCUENTA QUETZALES CON 34/100

  572. 695 Artemio febrero 5, 2011 a las 2:26 pm

    excelente código,

    felicidades! 😉

  573. 696 carlos febrero 9, 2011 a las 8:55 pm

    personas que ayudan …aciendo, lo correcto… y …haciedolo correcto…. son las que se admiran,, gracias por el aporte exlentisimo

  574. 697 @EANDREAZD febrero 11, 2011 a las 1:09 am

    GRACIAS, LE HE HECHO ALGUNOS CAMBIOS PARA AJUSTARLA A MIS NECESIDADES, PERO ME HA SI INMENSAMENTE ÚTIL.

    AHORA TENGO OTRA PREGUNTA, QUIERO QUE SI MI CELDA ALCANZA UN VALOR SE EJECUTE UNA FORMULA EN LA CELDA SIGUIENTE, COMO SE PUEDE HACER ESO??

    SALUDOS!!

  575. 699 fer febrero 17, 2011 a las 7:47 am

    Muchas gracias ha sido de gran ayuda y me ha ahorrado mucho tiempo en la preparacion de mis documentos

  576. 700 Antonio Mendez febrero 18, 2011 a las 4:54 pm

    Es mucho mas fácil, crear una macro (marco1, por ejemplo) y detenerla.

    Luego en la pestaña «vista» / Macros / Ver Macros y le damos modificar macros, se abre al instante la macro q guardamos sin hacer nada, ahi le borramos lo q contiene y en su lugar pegamos el código…. y listo!!.

    Solo noté un pequeño error en la macro, cuando escribes: 20’000,000 te escribe: «SON: ( VEINTE MILLONES PESOS 00/100 M.N.)» debiendo ser: «SON:( VEINTE MILLONES DE PESOS 00/100 M.N.)», y lo solucioné con una función condicional SI = 20,000,000 q escriba «SON: ( VEINTE MILLONES DE PESOS 00/100 M.N.)»

    FUERA DE ESO, ESTÁ EXCELENTE PARA PAÍSES COMO MÉXICO, Y OTROS LATINOMAERICANOS QUE USAN EL PESO COMO MONEDA DE CURSO LEGAL.

  577. 701 israel febrero 23, 2011 a las 3:35 pm

    muchisimas gracias…. esta muy bien explicado es mas tan agradecido estoy que nunca habia dejado comentarios en algun blog, pero la verdad con estas explicaciones vale la pena tomarce el tiepo, te lo agradezco……

  578. 702 ISABEL febrero 25, 2011 a las 1:37 pm

    Hola gonzalo tu me podrias ayudar!!!

    me encanta excel y eres un muy buen aporte para esta cultura…
    si yo habilito esta macro que debo hacer para que me funcione en todos los excel a crear y ya creados anteriormente. Ya que al abrir una nueva hoja no me figura la nueva formula.

    Y es posible que no aparezca ni los ceros al final ni el MN.

    Te agradecere mucho tu ayuda!!!

    Gracias

    X . X
    V

  579. 703 ANGELA febrero 28, 2011 a las 10:49 am

    BUENOS DIAS
    GRACIAS POR ESTE TIPO DE INFORMACION ES MUY IMPORTANTE PARA CONOCER MAS ACERCA DE ESTE MARAVILLOSO PROGRAMA

    QUISIERA Q POR FAVOR ME COLABORARAS EN:
    QUIERO QUITAR LA PALABRA SON Y EL FINAL 00/100 N/N
    YA QUE NO APLICA A LA FACTURA Q REALIZAMOS

    TE AGRADEZCO Y ESTARE ATENTA A LA RESPUESTA

    • 704 gchable febrero 28, 2011 a las 1:23 pm

      Hola angela, en los comentarios esta como hacer lo que necesitas. Saludos El 28/02/2011 09:49 a.m.,

    • 705 Antonio Mendez febrero 28, 2011 a las 4:27 pm

      Hola Angela:
      Solo copia y pega este código, (ya tiene eliminado lo de SON y lo del final de 00/100 M.N.):

      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 = «(» & PesosMN & IIf(tyCantidad > 1, » PESOS «, » PESO «)
      End Function

      • 706 Mario septiembre 14, 2011 a las 3:21 pm

        Hola Antonio
        Acabe de utilizar este codigo en un modelo de factura que tengo y no puedo aplicarlo, la ultima linea me aparece en rojo como si faltara algo, hace falta algun parentesis?

  580. 707 Juan Antonio marzo 1, 2011 a las 9:44 pm

    GRACIAS LO HICE EN 2 MINUTOS

    GRACIAS

  581. 708 VYGZHO@HOTMAIL.COM marzo 1, 2011 a las 11:00 pm

    GRACIAS COMPA!¡!

    POR CIERTO ALGUN TUTORIAL ACERCA DE MACROS UTILES EN EXCEL, GRACIAS POR ANTICIPADO

  582. 709 tgonzat3@hotmail.com marzo 2, 2011 a las 3:32 pm

    Hee, amigo deberia usted ser profesor y de los buenos es muy didactico la verde entre a varios ste me parecio el mejor
    muchas gracias

  583. 710 hunterhb@hotmail.com marzo 4, 2011 a las 4:47 pm

    HOLA,TUVE KA NECESIDAD DE BUSCAR ESTE TEMA, INTENTE APLICARLO COMO MENCIONAS PERO DE IGUAL FORMA NO SE COMO DAR DE ALTA ESTA MACRO O QUE HACER.
    COPIE EL CODIGO Y LUEGO?
    COMO HABILITO LA MACRO?
    COMO LA GRABO?
    QUE MAS SIGUE, SOY MALO EN EXCEL.
    PUEDES APOYARME?

    GRACIAS.
    HUGO

    • 711 Antonio Méndez cpantoniomendez@gmail.com marzo 4, 2011 a las 5:03 pm

      Al terminar de copiar el código le das:
      1) Menú Archivo / Cerrar y volver a excel.
      2) Luego escribes algun número con decimales, para comprobar que funciona la macro, por ejemplo, en A1 escribes: 2,345.65
      3) luego en la celda a3 escribes: =PesosMN(A1)
      Eso es todo, debe aparecer en letra el número.

      Es todo. Al guardar el archivo se guarda en él la macro y se manda llamar como =PesosMN(Referencia de celda)

  584. 713 JORGE marzo 10, 2011 a las 7:29 pm

    muxas gracias amigo me sirvio muxo la macro para mi trabajo apenas estoy comenzando mi carrera como contador y con esto que me es de gran ayuda pa mi trabajo.

  585. 714 marcela marzo 10, 2011 a las 8:23 pm

    hello !!!!

    aahhh perfekto !!!

    lo buske x un buen rato y ahora en 5 min ya lo tenia probado .muy rapido y listo para usar !! 😀 …GRACIAS JOVENES !!!

    SEAN FELICES 😀 …

  586. 715 claudia marzo 16, 2011 a las 4:18 pm

    Excelente Ayuda,
    puedo agregar en una hoja de cálculos dos funciones o códigos (una en dólares y otra para pesos)?

  587. 716 JESSICA marzo 17, 2011 a las 2:00 pm

    BUENAS TARDES:
    TENGO EXCEL 2007 Y AUNQUE HE TRATADO DE LEER MUCHOS DE LOS COMENTARIOS, NO HE ENCONTRADO LA RESPUESTA QUE NECESITO Y ES COMO INTRODUZCO LA FORMULA, PORQUE NO ME APARECE EL VISUAL BASIC, TENGO MACROS, PERO SOLO DICE «VER MACROS» Y «GRABAR MACRO».
    ME SERIA DE MUCHA AYUDA SI ME LO EXPLICAN PORQUE NO SE POR DONDE ES QUE SE HACE.
    MUCHISIMAS GRACIAS

  588. 717 JESSICA marzo 17, 2011 a las 2:23 pm

    BUENAS TARDES,
    YO TENGO EXCEL 2007 Y AUNQUE HE LEIDO MUCHOS DE LOS COMENTARIOS NO ENCUENTRO COMO CREAR ESTO EN ESTE EXCEL, ESTA MACROS, PERO SOLO TIENE GRABAR MACRO O VER MACROS….
    ME GUSTARIA QUE ME AYUDARAN CON ESTO .

    MUCHAS GRACIAS

    • 718 Antonio Méndez cpantoniomendez@gmail.com marzo 17, 2011 a las 4:44 pm

      Hola Jessi:
      1.- Dale clic en el botón de Office (Arriba-Izquierda).
      2.- Dale clic en el botón «Opciones de Excel» (Abajo-Enmedio).
      3.- En Mas frecuentes debes habilitar la opción «Mostrar ficha Programador en la Cinta de Opciones» y
      4.- Listo, solo dale clic a la ficha Programador, que ya tienes (es la última a la derecha).
      Ahi encuentras Visual Basic, pero si lees con atención, en un comentario mio anterior, decia q es mas facil grabar una macro nueva, por ejemplo macro1, y entrar en modificar macro, ahi se borra el contenido de la macro1, y se pega el código que ya viene indicado en este blog.

      Espero haberte ayudado, Suerte!

  589. 719 diego Argentina marzo 18, 2011 a las 10:39 am

    hola!!!
    sin entender nada de Vbasic (alguna vez estudie pseudocodigo… pero hace como 10 años… asi que no cuenta) lo modifiqué para que me devuelva el resultado en el siguiente formato

    1.235,66

    UN MIL DOSCIENTOS TREINTA Y CINCO CON 66/100.-

    es decir… le saqué el «con» y los parentesis, y le agregué el «con» antes de los centavos y un bonito cierre .-

    Ahora… estoy estancado, intentando colocarle el numero original a continuación, entre paréntesis y con el signo $

    necesitaría que diga:

    UN MIL DOSCIENTOS TREINTA Y CINCO CON 66/100.-($ 1.235,66)

    si alguno de los expertos programadores me da una mano… les estaría eternamente agradecido.

    Muchas Gracias

    Diego.

  590. 720 Servando Javier Reyes Briceño marzo 19, 2011 a las 2:15 pm

    GRACIAS AMIGO, ESTA MUY BIEN EXPLICADO LOS PASOS A SEGUIR, COMO SOY VENEZOLANO LE HICE LA MODIFICACIÓN DE PESOS A BOLÍVARES. NO SABES CUANTO BUSQUE ESTA MACRO, PARA INCLUIRLA EN MIS FORMATOS DE FACTURA. DE NUEVO MIL GRACIAS POR COMPARTIRLO.

  591. 721 Arturo marzo 22, 2011 a las 12:53 pm

    Muchas gracias, me servira para la facturacion electronica (Mexico).

  592. 722 Israel Ajiataz marzo 22, 2011 a las 3:33 pm

    Viejo, que Dios te bendiga, gracias por compartir tus conocimientos. Excelente formula.

  593. 723 denisse marzo 23, 2011 a las 1:10 pm

    pero se tiene que guardar el libro como macro para que se guarden los cambios????????? en la hoja a la que le puse la formula

    • 724 gchable marzo 23, 2011 a las 2:54 pm

      Hola Denisse, no precisamente debes guardar el libro como macro, mas bien guardas el libro y ya lleva el modulo del Visual Basic que insertaste.

      El 23/03/2011 12:10 p.m.,

  594. 725 carlos meza marzo 25, 2011 a las 11:31 am

    Hola:
    Ya lo hice todo y si me funciona este macro pero no lo puedo utilizar en dos hojas del mismo libro quisiera saber como lo puedo hacer para que funcione y cuando cierro Excel y al volverlo abrir tengo que volverlo a pegar en macro quisiera saber paso a paso como lo puedo guardar sin tener que volverlo a cargar o crear alguien me puede ayudar gracias

  595. 726 hector marzo 25, 2011 a las 11:45 am

    De manera simple, se obtiene un resultado es efectivo y eficaz
    Gracias
    HB

  596. 727 gaby marzo 26, 2011 a las 11:51 am

    Hola buen dia: Te quiero agradecer la verdad ya tenia tiempo tratando de conseguir esta conversión, busque en muchas páginas y ninguna me ayudo gracias deberas por conpartir tus conocimientos con tantas personas QUE trabajamos para salir adelante pero no contamos con estos conocimientos GRACIAS.

  597. 728 cecycazares@hotmail.com marzo 28, 2011 a las 11:14 am

    Hola, he tratado de realizar y guardar esto pero no puedo, alguien me pudiera decir como guardarlo en un excel 2007, si me ayudaran con el paso a paso ….. se los agradezco

  598. 729 Claudia Pérez marzo 28, 2011 a las 5:32 pm

    Gracias por tan buena ayuda y excelente explicación, mil gracia por compartir te felicito

  599. 730 Jose Ruiz marzo 30, 2011 a las 7:00 pm

    El codigo me funciona a la perfeccion en office 2010.
    Lo que necesito es remplazar «pesos MN por dolares» y eliminar la palabra un (ejemplo un mil doscientos) para que diga solo mil doscientos, ya que aca en Puerto Rico no se utiliza con el un al principio.
    Cuando intente reemplazar la palabra Pesos MN en el codigo, al correr el macro en la hoja me daba solo el numero sin la demas informacion.
    Gracias por el aporte, estubo buenisimo/
    Ya saben SI FUNCIONA EN EXCELL 2010.

    • 731 Erika Ramirez septiembre 21, 2011 a las 9:52 am

      HOLA:
      Comole hiciste por q acabo de grabar la macro y no me dejo guardar el archivo con extension xls , lo tuve q guardar como complemento de excel,
      ademas caundolo abro si aparece la maco cambio cantidades y si aplica, pero a la hora de guardar los cambios que hice nome deja le tengo e hacer con guardar como
      ayudapor favor

  600. 733 Nelson abril 1, 2011 a las 4:10 pm

    Gracias por el aporte, es de mucha utilidad. Lo adecue a mis necesidades y super, no me da ningun problema con las cantidades que yo uso, para los que quieran hacer cambios una forma facil de hacerlo es utilizando la opcion buscar y reemplazar en el editor de visual para poder dejarla tal y como se quiera.
    Saludos.

  601. 734 Jose Ruiz abril 2, 2011 a las 9:04 am

    recibi la hoja que me enviaste, pero me funciona si voy a escribir la cantidad en miles, ej 1500, que sale mil quinientos y no un mil quinientos como antes, pero si la cantidad es 1,000,000 un millon, entonces solo sale millon de dolares, o si solo es 1 dolar, solo sale dolar.
    habria alguna forma de programar el codigo para que obvie el «un» cuando se trate de cantidades en mil, pero que lo deje funcional cuando de 1 o de 1,000,000 o > se trate????
    Intente hacerlo con if then, pero no me salio.
    de todas formas si encuentran algo me dejan saber.

  602. 736 JANETT abril 4, 2011 a las 5:19 pm

    GRACIASSSSSSSS 🙂

  603. 737 Hector Gonzalez abril 14, 2011 a las 2:50 pm

    Excelente contribucion, gracias y Saludos

  604. 738 Juan Gomez abril 20, 2011 a las 8:46 am

    Muy buena la explicacion, no soy experto en excel, menos en macros, pero a mi me funciono a la primera.

    Se agradece.

  605. 739 Anónimo abril 25, 2011 a las 12:35 pm

    Muchas gracias Gonzalo , me funciono excelente!!!

  606. 740 APRENDIZ abril 25, 2011 a las 7:21 pm

    HOLA, GONZALO ME GUSTO LA EXPLICACIÓN, NO ME DEJA PONERLOS EN TODOS MIS LIBROS DE TRABAJO, COMO LE HAGO? USO «Excel 2007».

  607. 741 OSAKARO abril 26, 2011 a las 3:28 am

    BUENO A MI ME FUNCIONO CON 2007 ASI:

    ‘**********************************************************************
    ‘** **’
    ‘** CONVERTIR DE NUMEROS A LETRAS **’
    ‘** AUTOR: OSCAR JAVIER LEON AVENDAÑO **’
    ‘** licencia: USO LIBRE **’
    ‘** http:www.oscarjleon.com **’
    ‘** FECHA DE CREACION: NOV.1991 **’
    ‘** **’
    ‘**********************************************************************

    Public Function CLetras(ByVal numero As Double, Optional fmtoUnidad As Integer = 0, Optional Unidades As String = «Kilos», Optional Unidad As String = «Kilo», Optional Genero As String = «M») As String
    Dim strUnidad(0 To 5) As String
    Dim strUnidades(0 To 5) As String
    Dim strCifras(0 To 4) As String
    Dim NumeroCifras As Byte
    Dim NumeroTercios As Byte
    Dim strNumero As String
    Dim strTMP As String
    Dim dblNumeroEntero As Double
    Dim intNumeroTmp As Integer
    Dim intCentavos As Integer
    Dim J As Integer
    Dim intNumTmp As Integer

    strUnidades(0) = » pesos m/cte»: strUnidades(1) = » unidades»: strUnidades(2) = » dolares»: strUnidades(3) = » euros»: strUnidades(4) = » » & Unidades: strUnidades(5) = «»
    strUnidad(0) = » peso m/cte»: strUnidad(1) = » unidad»: strUnidad(2) = » dolar»: strUnidad(3) = » euro»: strUnidad(4) = » » & Unidad: strUnidad(5) = «»
    strCifras(1) = «»: strCifras(2) = » mil «: strCifras(3) = » millones «: strCifras(4) = » mil «: strCifras(0) = » millón »

    intCentavos = Int((Round(numero, 2) * 100) – (Int(numero) * 100))
    dblNumeroEntero = Round(numero, 2) – (intCentavos / 100)
    strNumero = CStr(Abs(dblNumeroEntero))
    NumeroCifras = Len(strNumero)
    NumeroTercios = Abs(Int(-NumeroCifras / 3))

    Select Case dblNumeroEntero
    Case 0
    strTMP = «cero»
    Case 1
    If fmtoUnidad 5 Then
    strTMP = «un»
    strUnidades(fmtoUnidad) = strUnidad(fmtoUnidad)
    Else
    strTMP = «uno»
    End If
    If Genero «M» Then strTMP = «una»
    Case 2 To 999
    strTMP = CLetrasS1(CLetrasS3(dblNumeroEntero, 1), Genero)
    Case 1000
    strTMP = «mil»
    Case 1000000
    strTMP = «un millón»
    Case 1000001 To 1999999
    strCifras(3) = » millón »
    For J = NumeroTercios To 1 Step -1
    intNumTmp = CLetrasS3(dblNumeroEntero, J)
    If intNumTmp 0 Then strTMP = strTMP & CLetrasS1(intNumTmp, Genero) & strCifras(J)
    Next J
    Case Else
    For J = NumeroTercios To 1 Step -1
    intNumTmp = CLetrasS3(dblNumeroEntero, J)
    If intNumTmp 0 Then strTMP = strTMP & CLetrasS1(intNumTmp, Genero) & strCifras(J)
    Next J
    End Select
    If Right(strTMP, 9) = «millones » Then strTMP = Mid(strTMP, 1, (Len(strTMP) – 9)) & «millones de»
    If Right(strTMP, 6) = «millón» Then strTMP = Mid(strTMP, 1, (Len(strTMP) – 6)) & «millón de»
    strTMP = strTMP & strUnidades(fmtoUnidad)

    If intCentavos > 0 Then
    Select Case fmtoUnidad
    Case 0
    strTMP = strTMP & » con » & CLetrasS1(intCentavos, Genero) & » centavos»
    Case 5
    strTMP = strTMP & » punto » & CLetrasS1(intCentavos, Genero)
    End Select
    End If

    ‘cambiar «un mil» o «una mil» por «mil»
    strTMP = Replace(strTMP, «una mil», «mil», , , vbTextCompare)
    strTMP = Replace(strTMP, «un mil», «mil», , , vbTextCompare)

    CLetras = strTMP
    End Function

    ‘función que secundaria que calcula las decenas
    Private Function CLetrasS2(numero As Integer, Genero As String) As String
    Dim strUnidades(0 To 20) As String: Dim strDecenas(2 To 9) As String: Dim Unidades As Byte: Dim Decenas As Byte: Dim strTMP As String

    strUnidades(0) = «»: strUnidades(2) = «dos»: strUnidades(3) = «tres»: strUnidades(4) = «cuatro»: strUnidades(5) = «cinco»: strUnidades(6) = «seis»: strUnidades(7) = «siete»: strUnidades(8) = «ocho»: strUnidades(9) = «nueve»: strUnidades(10) = «diez»: strUnidades(11) = «once»: strUnidades(12) = «doce»: strUnidades(13) = «trece»: strUnidades(14) = «catorce»: strUnidades(15) = «quince»: strUnidades(16) = «diez y seis»: strUnidades(17) = «diez y siete»: strUnidades(18) = «diez y ocho»: strUnidades(19) = «diez y nueve»: strUnidades(20) = «veinte»
    strDecenas(2) = «veinti»: strDecenas(3) = «treinta»: strDecenas(4) = «cuarenta»: strDecenas(5) = «cincuenta»: strDecenas(6) = «sesenta»: strDecenas(7) = «setenta»: strDecenas(8) = «ochenta»: strDecenas(9) = «noventa»
    If Genero = «M» Then
    strUnidades(1) = «un»
    Else
    strUnidades(1) = «una»
    End If
    Decenas = Int(numero / 10)
    Unidades = Int(numero – (Decenas * 10))

    Select Case numero
    Case 1 To 20
    strTMP = strUnidades(numero)
    Case 21 To 29
    strTMP = strDecenas(Decenas) & strUnidades(Unidades)
    Case 30 To 99
    If (Decenas > 0) And (Unidades > 0) Then strTMP = strDecenas(Decenas) & » y » & strUnidades(Unidades)
    If (Decenas > 0) And (Unidades = 0) Then strTMP = strDecenas(Decenas)
    End Select
    CLetrasS2 = strTMP
    End Function

    ‘Funcion secundaria que calcula las centenas

    Private Function CLetrasS1(numero As Integer, Genero As String) As String
    Dim strCentenas(1 To 9) As String: Dim Centenas As Byte: Dim strTMP As String: Dim intNumeroEntero As Integer

    intNumeroEntero = Int(numero)
    Centenas = Int(numero / 100)
    If Genero = «M» Then
    strCentenas(1) = «ciento»: strCentenas(2) = «doscientos»: strCentenas(3) = «trecientos»: strCentenas(4) = «cuatrocientos»: strCentenas(5) = «quinientos»: strCentenas(6) = «seiscientos»: strCentenas(7) = «setecientos»: strCentenas(8) = «ochocientos»: strCentenas(9) = «novecientos»
    Else
    strCentenas(1) = «ciento»: strCentenas(2) = «doscientas»: strCentenas(3) = «trecientas»: strCentenas(4) = «cuatrocientas»: strCentenas(5) = «quinientas»: strCentenas(6) = «seiscientas»: strCentenas(7) = «setecientas»: strCentenas(8) = «ochocientas»: strCentenas(9) = «novecientas»
    End If
    Select Case numero
    Case 0 To 99
    strTMP = CLetrasS2(intNumeroEntero, Genero)
    Case 100
    strTMP = «cien»
    Case 200, 300, 400, 500, 600, 700, 800, 900
    strTMP = strCentenas(Centenas)
    Case Else
    strTMP = strCentenas(Centenas) & » » & CLetrasS2(Int(numero – (Centenas * 100)), Genero)
    End Select
    CLetrasS1 = strTMP
    End Function

    ‘Funcion secundaria que saca un tres cifras del numero
    Private Function CLetrasS3(numero As Double, Tercio As Integer) As Integer
    Dim CadaCifra As Integer
    Dim OrdenInverso As Integer
    Dim intNumeroTmp As Integer
    Dim NombreCifra(1 To 12) As String

    OrdenInverso = Len(CStr(numero))

    ‘Borra la matriz
    For CadaCifra = 1 To 12: NombreCifra(CadaCifra) = «0»: Next CadaCifra

    For CadaCifra = 1 To Len(CStr(numero))
    NombreCifra(OrdenInverso) = Val(Mid(CStr(numero), CadaCifra, 1))
    OrdenInverso = OrdenInverso – 1
    Next CadaCifra
    intNumeroTmp = Val(NombreCifra((Tercio * 3)) & NombreCifra((Tercio * 3) – 1) & NombreCifra((Tercio * 3) – 2))
    CLetrasS3 = intNumeroTmp
    End Function

    ESPERO LE SEA UTIL

  608. 742 DAVID abril 27, 2011 a las 5:23 pm

    como puedo arrastrar los datos de mis clientes a una factura que ya diseñe en exel 2007, desplegando una lista de todos los clientes en la factura

    • 743 cpantoniomendez abril 27, 2011 a las 5:33 pm

      David, es mediante vínculos, o mas elaborado, utilizando la función buscarv, y asignando números progresivos a tus clientes, asi los puedes incluir fácilmente en una factura…. saludos

  609. 744 CARLITOS abril 28, 2011 a las 12:13 pm

    Hola amigos.

    Esto es lo que realmente necesito, soy de Perú y es obvio que la moneda no es la misma, en este caso siyo quisiera cambiar de pesos a nuevos soles que es la moneda de mi pais, que formula utilizo. Gracias

    • 745 Emilio Velis abril 29, 2011 a las 3:18 pm

      Hola,

      Lo que necesitás hacer se soluciona facilísimo, solo buscás en la penúltima línea esto:

      PesosMN = «SON: (» & PesosMN & IIf(tyCantidad > 1, » PESOS «, » PESO «) & Format(Str(lyCentavos), «00») & «/100 M.N.)»

      Solo es cuestión de cambiar «pesos» y «peso» con «nuevos soles». Te advierto que tengás cuidado con los espacios que ya existen dentro de las comillas, porque sirven para ordenar el formato del texto a la hora de mostrarse (de lo contrario te pueden aparecer palabras unidas).

  610. 746 Emilio Velis abril 29, 2011 a las 3:16 pm

    ¡Excelentísimo! Muchas gracias por el aportazo, y un saludo.

  611. 747 ISRAEL SALINAS abril 29, 2011 a las 7:18 pm

    ERES COMO UN DIOS CA
    MUY BUENO EXELENTE DIRIA YO
    DESDE LA CIUDAD MAS CONTAMINADA DEL MUNDO

  612. 748 George May 5, 2011 a las 12:08 pm

    excelente muchas gracias por tu ayuda quedo lista con la explicacion grafica que hiciste me fue de mucha utilida

  613. 749 eugenio briceño May 9, 2011 a las 6:06 pm

    Esta esta ok. pero necesito que me salga como este ejm.

    1,001.15 que en letras diga (UN MIL UNO CON 00/100 NUEVOS SOLES ME podrian dar macro? les agradezco muhco de antemano

  614. 750 eugenio briceño May 9, 2011 a las 6:10 pm

    perdon me equivoque en los centimos

    Esta esta ok. pero necesito que me salga como este ejm.

    1,001.15 que en letras diga (UN MIL UNO CON 15/100 NUEVOS SOLES ME podrian dar macro? les agradezco muhco de antemano

  615. 751 BYRON May 12, 2011 a las 11:52 pm

    buenisima nota compradre gracias de gran utilidad

  616. 752 KENIA HDZ May 14, 2011 a las 11:10 am

    EXCELENTE ME SIMPLIFICASTE LA VIDA¡¡¡ GRACIASSSSS ¡¡¡ 🙂

  617. 753 Santos Eugenio May 14, 2011 a las 12:39 pm

    FELICITACIONES POR LA MACRO ES EXCELENTISIMA

    Pero como soy de Perú es obvio que la moneda es en NUEVOS SOLES,Y ESTO YA LO SOLUCIONE, ahora cuando digito 1001.15 en letras me sale: UN MIL UN CON 15/100 NUEVOS SOLES; la verdad que yo quiero que me salga UN MIL UNO CON 15/100 NUEVOS SOLES; osea el problema esta en EL SEGUNDO UN y que en ves de UN que salga UNO; igual si digito 2001.10 el resultado es (DOS MIL UN CON 10/100 NUEVOS SOLES) y lo que quiero es que me salga (DOS MIL UNO CON 10/100 NUEVOS SOLES. Por favor si alguien me puede dar alguna solucion que le estaría eternamente agradecido.

    Atte,
    seubrimarq

  618. 754 Santos Eugenio May 14, 2011 a las 12:50 pm

    siguiendo con el tema los numeros que ingreso a partir del 2001, 3001, 4001, etc. ya me salen pero cuando digito el 1001.20 ME SALE UNO MIL UNO y loque quisiera es que me salga UN MIL UNO gracias de antemano nuevamente.

  619. 756 Jesus Cacharuco May 16, 2011 a las 8:49 am

    El macro me pareció genial de todos los que he bajado es el primero que me funciona y directamente.

    quisiera cambiar el tipo de moneda hacerla mas general.

    de todas maneras felicitaciones y muchas gracias

  620. 757 MARTHA May 17, 2011 a las 7:44 pm

    Hola que pena podrias ayudarme por favor, al ingresar la formula me sale #¿nombre? y ya la guarde como complemento y me sigue saliendo este error. ayuda por fis

  621. 758 Maco May 18, 2011 a las 2:01 pm

    Mil gracias me has facilitado el trabajo y no solo a mí sino a un montón de personas.

    Bendiciones

  622. 759 atlueman@gmail.com May 19, 2011 a las 9:13 am

    Sobra decirlo, peroes muy buena tu explicación… ni como tener errores de esa manera. Saludos

  623. 760 luis hernandez May 19, 2011 a las 4:36 pm

    mucha gracias lo logre gracias por su apoyo me fue de mucha utlidad.

    slds.

  624. 761 panda May 19, 2011 a las 11:27 pm

    gracias exelente aporte

  625. 762 JORGE May 24, 2011 a las 7:06 am

    MUCHAS GRACIAS POR TU APORTE ESTA MUY BUENO Y FACIL DE ENTENDER

  626. 763 Nancy May 25, 2011 a las 4:37 pm

    Muchas gracias por esta aportación, auqnue batallé un poco, leyendo las demas respuesta lo resolví. Gracias a todos.

  627. 764 Santos Eugenio May 26, 2011 a las 6:00 pm

    Utilizo algunos softwares y en el campo fecha de nacimiento solo digito por ejm. 200165, que al darle enter se convierte en 20/01/1965; es ovbio que que el campo es de fecha, ahora esto quiero hacerlo en excel hay alguna forma de hacerlo. por favor una ayuda que estare agradecido.

    Eugene

  628. 765 Carlos May 28, 2011 a las 11:01 pm

    hola q tal yo ya cheque y si funciona muy bien, pero aun siento que le falta un poco me gustaria saber como le hago para agregar billones se q es poco usual pero si se llega a ocupar en ocaciones, espero su repuesta, gracias!

  629. 766 LUIS NOEL May 31, 2011 a las 2:46 am

    ME AGRADO MUCHO LO QUE APRENDÍ DE TI,
    LO PROVE Y FUNCIONA
    QUE DIOS TE BENDIGA
    GRACIAS POR TU ALTRUISMO
    SALUDOS.

  630. 767 peperuizh@prodigy.net.mx May 31, 2011 a las 11:29 am

    Exelente, me funciono muy bien, bravo.

  631. 768 MARTHA junio 8, 2011 a las 11:17 pm

    Hola alguien que me ayude por favor, al ingresar la formula me sale #¿nombre? y ya la guarde como complemento y me sigue saliendo este error. ayuda por fis no se si el hecho de que mi ecxel diga que es de uso no comercial tenga algo que ver.

  632. 769 J.A.SilvaG junio 9, 2011 a las 7:34 pm

    «Palitroche» esa era la palabra… como olvidarlo….!!!
    Excelente Contribución.

  633. 770 Yo!!! junio 16, 2011 a las 12:16 pm

    Hice todo copie la macro la pegué, la guardé como complemento. Pero en vez de salir el númro en letras, en la celda, me sale la fórmula!!!! si alguien mepudiera ayudar se loa gradecería 😉

    • 771 Enrique octubre 10, 2011 a las 2:55 pm

      ola mira yo tuve el mismo problema pero espero y me explique bien: abres un libro de trabajo en blanco, le pegas el nuevo modulo y lo cierras o utiliza alt+Q. despues vas a irte a guardar o guardar como: cambias el nombre le pones por asi decirlo : pesosMN. abajo de donde cambiaste el nombre esta el tipo de documento en que lo quieres guardar, dale clik a la casilla y se despliega una lista buscas en esa lista el nombre que diga: COMPLEMENTO DE EXCEL. Y LE DAS GUARDAR, automaticamente se guarda en c en una carpeta llamada complementos. y listo. AHORA abres un nuevo libro de excel te vas a la parte superior izquierda de tu pantalla le das clik al icono te vas a opciones de excel (aveces solo dice opciones)le das clik te vas a donde dice complementos( una vez en complementos hasta abajo hay una casilla que dice complementos de excel de las en LA CASILLA QUE DICE: IR, te abre una ventanita y ahi tiene que aparecer el nuevo complemento que creamos llamado pesosMN, si no aparece a simple vista le das examinar y escribes el nombre con el que guardaste el complemento. le das aceptar y listo ahora es usable en todos los libros que kieras abrir… sin nececidad de estar ingresando el modulo de nuevo.
      SUGERENCIA: solo no olvides de no borrar el complemento creado..si lo borras tienes que empezar de ceros.
      NOTA: si al abrir el libro de excel no te funciona, solo tienes que irte a opciones y añades el complemento que creamos..
      graciassss……
      asi queda anexado a tu excel..

  634. 772 Anónimo junio 17, 2011 a las 11:44 am

    muy agradecido. me ayudaste un buen

  635. 773 cecilia junio 21, 2011 a las 6:17 pm

    genial muchas gracias

  636. 774 perher12 junio 25, 2011 a las 3:59 pm

    Excelente ayuda la que me ha dado, muchas gracias…

  637. 775 LIA ASTE junio 27, 2011 a las 11:17 pm

    GRACIAS, ME HA IDO BIEN Y NO PUEDO IGNORARLO ME HA IDO SUPER CON TU CODIGO.

  638. 776 luis junio 30, 2011 a las 11:44 am

    ERES UN CHINGON. GRACIAS

  639. 777 DAVID LARA VEGA junio 30, 2011 a las 8:49 pm

    MUY BUENA E IMPORTANTE LA MACRO
    YO LA MODIFIQUE PARA ADECUARLA A MI PAIS COLOMBIA:
    PesosMN = «SON: (» & PesosMN & IIf(tyCantidad > 1, » PESOS CON «, » PESO CON «) & Format(Str(lyCentavos), «00») & «/100 MONEDA CORRIENTE.)»

    ME QUEDA LA INQUIETUD PARA NOMBRAR MILES DE MILLONES O HASTA BILLONES

  640. 778 DAVID LARA VEGA junio 30, 2011 a las 9:07 pm

    Felicitaciones
    Tengo una macro para responder cartas a diferentes destinatarios que me gustaria compartir para que me ayudes

  641. 779 Anónimo junio 30, 2011 a las 11:29 pm

    Espectacular…. desde Guayaquil un saludo…

  642. 780 NESTOR ANTONIO julio 4, 2011 a las 8:11 pm

    AMIGOS AQUI LES ENVIO PARA LA CONVERSION EN NUEVOS SOLES PARA TODOS LOS CHOCHES DE NUESTRO QUERIDO PERU

    Public Function NL(ByVal Numero As Double) 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")
    c01 = 1
    pos = 1
    TFNumero = ""
    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 = «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
    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 Soles"
    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 = «uno »
    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 = «»

  643. 782 DAVID LARA VEGA julio 5, 2011 a las 10:19 am

    y aqui como seria la fòrmula en la hoja de cálculo.. tambien me gustaria para solo centavos

  644. 783 Anónimo julio 7, 2011 a las 12:04 pm

    MUCHISIMAS GRACIAS GONZALO TE LO AGRADECEMOS MUCHISIMO POR TU VALIOSA AYUDA

  645. 784 Anónimo julio 8, 2011 a las 7:19 pm

    GRACIAS ERES UN GENIO

  646. 785 Anónimo julio 15, 2011 a las 9:40 am

    MUCHAS GRACIAS EH!!! ME HAN SALVADO, MUY BUEN APORTE

  647. 786 Erick julio 15, 2011 a las 8:45 pm

    Gracias amigo, ke sencillo es usarlo y modificarlo, tengo XP y OFFICE 2007 y sin ningún problema funciono…

    Saludos desde Monterrey MX

  648. 787 JORGE julio 17, 2011 a las 4:26 pm

    MUCHAS GRACIAS ME FUE DE MUCHA UTILIDAD !!

  649. 788 karolina coronel julio 18, 2011 a las 12:55 pm

    UUUF BUSKE KOMO LOKA Y NO ENCONTRABA NAAAAADA Q ME AYUDARA PERO ESTE FUE EFECTIVO =) AUNQ YO USO DOLARES PERO ESO SI SE COMO ARREGLARLO GRACIIIAAAAAAAAAS

  650. 789 VIDAL ALMAZAN julio 19, 2011 a las 4:34 pm

    GRACIAS POR TU APORTE ESTO ES EXCELENTE…

  651. 790 Anónimo julio 19, 2011 a las 6:12 pm

    HOMBRE MUCHAS GRACIAS MUY BUENO QUE LAS PERSONAS COMPARTA LAS COSAS

  652. 791 Roberto B julio 19, 2011 a las 10:01 pm

    Hola. No me acuerdo cuánto tiempo busqué algo así. En serio simple.
    El único problema es que empiezo a usar el Calc de OpenOffice, me dije, seguro sirve. Me las ingenié para abrir el OpenOffice Basic y lo copié. Se detiene en la línea 4 ó 5 que empieza tyCantidad = Round(tyCantidad, 2)
    Alguna solución?

  653. 792 Manuel julio 20, 2011 a las 11:01 pm

    muy buena, gracia por compartir tus conocimientos

  654. 793 AngelO julio 21, 2011 a las 11:55 am

    Muy buen aporte,
    gracias y pa’lantee!!!!!

    Cuidense la banda de gchable!!!

    Deberían de subirlo a wikipedia =P

  655. 794 mitzi h julio 21, 2011 a las 5:32 pm

    Muchas gracias!! 😀 Fue de graaan ayuda

  656. 795 vero julio 22, 2011 a las 10:35 am

    Gracias!!!! simplemente me facilitaste la existencia…..!!!! te sacaste un 10

  657. 796 Joserra julio 22, 2011 a las 6:41 pm

    MUCHISIMAS GRACIASS MUY MUY BIEN POR TI me sirvio

  658. 797 Wallas julio 26, 2011 a las 1:20 pm

    Hola;

    Excelente Macro, solo que tengo una pregunta ¿para que aplique a todos mis libros es necesario abrir cada uno y cargar la macro o existe alguna manera de cargar esta macro para que en cualquier libro que abra este activada?

    De antemano muchas gracias!!. . .

    • 798 Enrique octubre 10, 2011 a las 2:53 pm

      hola mira yo tuve el mismo problema pero espero y me explique bien: abres un libro de trabajo en blanco, le pegas el nuevo modulo y lo cierras o utiliza alt+Q. despues vas a irte a guardar o guardar como: cambias el nombre le pones por asi decirlo : pesosMN. abajo de donde cambiaste el nombre esta el tipo de documento en que lo quieres guardar, dale clik a la casilla y se despliega una lista buscas en esa lista el nombre que diga: COMPLEMENTO DE EXCEL. Y LE DAS GUARDAR, automaticamente se guarda en c en una carpeta llamada complementos. y listo. AHORA abres un nuevo libro de excel te vas a la parte superior izquierda de tu pantalla le das clik al icono te vas a opciones de excel (aveces solo dice opciones)le das clik te vas a donde dice complementos( una vez en complementos hasta abajo hay una casilla que dice complementos de excel le das clik en LA CASILLA QUE DICE: IR, te abre una ventanita y ahi tiene que aparecer el nuevo complemento que creamos llamado pesosMN, si no aparece a simple vista le das examinar y escribes el nombre con el que guardaste el complemento. le das aceptar y listo ahora es usable en todos los libros que kieras abrir… sin nececidad de estar ingresando el modulo de nuevo.
      SUGERENCIA: solo no olvides de no borrar el complemento creado..si lo borras tienes que empezar de ceros.
      NOTA: si al abrir el libro de excel no te funciona, solo tienes que irte a opciones y añades el complemento que creamos..
      graciassss……
      asi queda anexado a tu excel..

  659. 799 Edni julio 28, 2011 a las 3:24 pm

    Excelente =) me sirvió de mucho, muchas gracias.
    Saludos

  660. 800 Anónimo julio 29, 2011 a las 12:33 pm

    Hola Gonzalo muy buen aporte esta formula,solo que en el formato de mi factura me marca error y no me da el resultado,podras enviarme tu correo para enviate mi archivo y ver que es lo que tengo mal,de antemano telo agradezco.

  661. 801 C.P. Daniel agosto 1, 2011 a las 7:29 pm

    Que gran aporte nos hiciste, realmente agradezco a blogueros como tu! Muchas gracias y felicidades!

  662. 802 julio agosto 2, 2011 a las 10:32 am

    Acá hay una función que convierte números a letras con decimales y hasta miles de billones.
    http://vba-para-excel.blogspot.com/2011/08/convertir-numeros-letras-con-decimales.html

  663. 804 MacUser agosto 5, 2011 a las 5:52 pm

    Hola. Primero que nada, gracias por el aporte. Muy bien explicado y sencillo hasta… jejeje… necesitamos variar algo. A ver si me puedes ayudar: verás, yo facturo en pesos y en dolares, por lo que mi formato en excel, tiene un botón donde marcamos que moneda corresponde, me pregunto si se puede incluir esta variante en la macro, dependiendo qué botón marquemos. De nuevo, gracias por tu ayuda,
    Saludos desde la Sultana del Norte

  664. 805 Lalo agosto 6, 2011 a las 5:10 pm

    Gran ayuda!!! los que se les complica es por que no han grabado nunca una Macro.

    Hay que habilitar la seguridad como dijo alguien arriba, aunque yo configure que se puedan ejecutar todas las macros, claro solo abro libros en los que confió.

    En excel 2007 habiliten la cinta de opciones Programador.
    En el Botón de office – Opciones de excel.

    Casilla Mostrar ficha programador en la cinta de opciones y ahí encontraran todo lo relacionado a macros y al editor de VB

    Suerte.

  665. 806 Gerardo agosto 9, 2011 a las 6:45 pm

    Gracias !!
    Saludos a todos desde Lerdo de Tejada en Veracruz, Mexico

  666. 807 memo agosto 14, 2011 a las 1:01 am

    felicidadez excelente macro muy util gracias

  667. 808 ruben agosto 16, 2011 a las 4:25 pm

    muy didactico
    gracias x el dato man

  668. 809 Emileeeo agosto 16, 2011 a las 5:55 pm

    Utaaa, eres un magazo

  669. 810 Anónimo agosto 23, 2011 a las 11:57 am

    Mis mas sinceras Felicitaciones, Gracias por compartir tus conocimientos.

    Saludos. David Hernández Ocadiz México

  670. 811 Cornelio agosto 24, 2011 a las 10:29 am

    Muchas gracias por compartir tus conocimientos, me es de mucha utilidad y esta muy bien redactado y entendible. Nuevamente Gracias

  671. 812 Provinciana agosto 24, 2011 a las 2:03 pm

    Hola gchable, lo hice y me salio perfectamente. Pero yo soy de Venezuela y deseo colocar Bolívares en vez de pesos, Como haria?? he intentado y me sale error

  672. 816 klarys agosto 27, 2011 a las 11:03 am

    ESTIMADO CONTADOR GONZALO
    ERES UN GENIO!!!!! GRACIAS

  673. 817 mcascant agosto 29, 2011 a las 11:40 am

    Hola gchable,

    Gracias por tu aportacion

    Trabajo en una ONG en Senegal, donde se habla frances. Me gustaria poder adaptar el codigo a las variaciones del frances para poder usarlo en nuestro trabajo aqui en terreno. Pero no tengo suficiente nivel de programacion (… no tengo ninguno).

    En frances, 71 es soixante-onze (sesenta y once) y asi hasta 79 con las decenas «douze», «treize», «quatorze», «quinze», «seize», «dix-set», «dix-huit», «dix-neuf»,

    81 es «quatre-vignt un» (cuatro veintes y uno), y asi hasta 99 con «deux», «trois», «quatre», «cinq», «six», «sept», «huit», «neuf», «dix», «onze», «douze», «treize», «quatorze», «quinze», «seize», «dix-set», «dix-huit», «dix-neuf», «vingt», «vignt-un», «vigt-deux», «vigt-trois», «vigt-quatre», «vigt-cinc», «vigt-six», «vigt-sept», «vigt-huit», «vigt-neuf».

    He traducido las palabras en el codigo que presentas pero cuando llega a estos numeros aporta un resultado diferente, como es logico.

    ¿Podrias ayudarnos?

  674. 818 Andres agosto 30, 2011 a las 11:05 am

    Hola. Excelentisimo aporte el tuyo, pero no he encontrado la manera de escribir cifras superiores a los cientos de millones, por ejemplo (1’023.236.254,12) mil millones….. o noventa y cinco mil millones…..etc. Podrías ayudarnos?

    De antemano muchas gracias.

  675. 820 Anónimo agosto 31, 2011 a las 8:19 am

    que tal buen dia, le agradezco la aportacion me es de mucha ayuda en mis labores, por ejemplo si deseo que aparezcan una cantidad en pesos y la otra en dolares tomando valores de dos celdas y que el texto aparezca en una sola celda, me podrias apoyar, de antemano le agradezco la ayuda que comparte.

    saludos

  676. 821 victor agosto 31, 2011 a las 9:31 am

    hola oye, me podrias ayudar para quitar las instrucciones que no serian necesarias para mostrar unicamente en letra ejemplo:8.7 = ocho punto siete y si tambien podrias decirme como hacer que el siete sea en letra porque me lo da en numero, no encuentro donde lo declaras, gracias de antemano

  677. 822 Alejandro septiembre 7, 2011 a las 7:28 am

    Gracias Maestro, muy simple de usar y fácil de instalar…

  678. 823 Anónimo septiembre 7, 2011 a las 5:32 pm

    GRAN APORTE AMIGO¡¡¡¡¡¡¡GRACIAS

  679. 824 Camilo Fonseca septiembre 9, 2011 a las 3:40 pm

    Hola Todos, les tengo una inquietud no se si ya les haya pasado.

    la primera vez que utilice utilice el complemento, me aparecia la funcion PesosMN en la ayuda automatica al ingresar funciones, «me explico: cuando colocas el = y la primera letra de la funcion sale un menu contextual con las posibles funciones a usar». Ahi aparecia PesosMN. Se me ocurrio cambiarle el Nombre a la funcion de PesosMN a Num2Letra y ahora ya no me aparece la funcion en ese menu contextual de ayuda, ni por mas que volvi a utilizar PesosMN… Alguien sabe como revertir o hacer que la funcion aparezca en ese mini menu de ayuda…

    Muchas gracias si alguien sabe como hacerlo..

    • 825 Enrique octubre 10, 2011 a las 2:48 pm

      lo que pasa es que lo borraste.. lo que tienes que hacer es crearlo de nuevo y guardarlo como: complemento de excel, de ahi lo añades a tu lista de complementos y listo vuele a aparecer de nuevo … es sencillo solo tienes que volver a ccrer tu complemento de excel

  680. 826 Miguel septiembre 14, 2011 a las 2:01 pm

    MUCHAS GRACIAS ME SIRVIO DE MUCHO ESTA MACRO, TENIA RATO YA BUSCANDO LA FORMA DE REALIZAR ESTE PASO, QUE BUENO QUE HAY GENTE COMO TU TODAVIA QUE CADA COSA QUE SABE LA ENSEÑA A LOS DEMAS

  681. 827 cpantoniomendez septiembre 14, 2011 a las 10:46 pm

    Es verdad, bueno, te dejo este otro, que utilizo yo, hace años lo bajé de otra pagina….

    ‘Funciones para convertir de números a letras
    ‘Llamada : Letras(Número,Formato) – Formato 1-Pesos, 2-Dólares
    Function Unidades(num, UNO)
    Dim U
    Dim Cad

    U = Array(«UN», «DOS», «TRES», «CUATRO», «CINCO», «SEIS», «SIETE», «OCHO», «NUEVE»)
    Cad = «»
    If num = 1 Then
    If UNO = 1 Then
    Cad = Cad & «UNO»
    Else
    Cad = Cad & «UN»
    End If
    Else
    Cad = Cad & U(num – 1)
    End If
    Unidades = Cad
    End Function

    Function Decenas(num1, res)
    Dim D1
    D1 = Array(«ONCE», «DOCE», «TRECE», «CATORCE», «QUINCE», «DIECISEIS», «DIECISIETE», _
    «DIECIOCHO», «DIECINUEVE»)
    D2 = Array(«DIEZ», «VEINT», «TREINTA», «CUARENTA», «CINCUENTA», «SESENTA», _
    «SETENTA», «OCHENTA», «NOVENTA»)

    If num1 > 10 And num1 < 20 Then
    Cad1 = D1(num1 – 10 – 1)
    Else
    Cad1 = D2((num1 \ 10) – 1)
    If (num1 \ 10) 2 Then
    If res > 0 Then
    Cad1 = Cad1 & » Y »
    Cad1 = Cad1 & Unidades(num1 Mod 10, 0)
    End If
    Else
    If res = 0 Then
    Cad1 = Cad1 & «E»
    Else
    Cad1 = Cad1 & «I»
    Cad1 = Cad1 & Unidades(num1 Mod 10, 0)
    End If
    End If
    End If
    Decenas = Cad1
    End Function

    Function Cientos(num2)
    num3 = num2 \ 100
    Select Case num3
    Case 1
    If num2 = 100 Then
    cad2 = «CIEN »
    Else
    cad2 = «CIENTO »
    End If
    Case 5
    cad2 = «QUINIENTOS »
    Case 7
    cad2 = «SETECIENTOS »
    Case 9
    cad2 = «NOVECIENTOS »
    Case Else
    cad2 = Unidades(num3, 0) & «CIENTOS »
    End Select

    num2 = num2 Mod 100
    If num2 > 0 Then
    If num2 = 100) Then
    cad3 = Cientos(num4)
    Else
    If (num4 >= 10) Then
    cad3 = Decenas(num4, num4 Mod 10)
    Else
    cad3 = Unidades(num4, 0)
    End If
    End If
    cad3 = cad3 & » MIL »
    Miles = cad3
    End Function

    Function Millones(cant)
    If cant = 1 Then
    ter = » »
    Else
    ter = «ES »
    End If
    If (cant >= 1000) Then
    cantl = cantl & Miles(cant \ 1000)
    cant = cant Mod 1000
    End If
    If cant > 0 Then
    If cant >= 100 Then
    cantl = cantl & Cientos(cant)
    Else
    If cant >= 10 Then
    cantl = cantl & Decenas(cant, cant Mod 10)
    Else
    cantl = cantl & Unidades(cant, 0)
    End If
    End If
    End If
    Millones = cantl & » MILLON» & ter
    End Function
    Function decimales(numero As Single) As Integer
    Dim iaux As Integer
    iaux = numero – Application.Round(numero, 2)
    decimales = iaux
    End Function

    Function letras(cantm As Variant, ByVal mon As Integer) As String
    Dim cants1 As String, num1 As Variant, num2 As Variant

    num1 = cantm \ 1000000
    num2 = cantm – (num1 * 1000000)

    cents = (num2 * 100) Mod 100
    If cents = 0 Then
    cents1 = «00»
    Else
    cents1 = Format(cents)
    End If
    cantm = cantm – (cents / 100)
    If cantm >= 1000000 Then
    cantlm = Millones(cantm \ 1000000)
    cantm = cantm Mod 1000000
    End If
    If cantm > 0 Then
    If (cantm >= 1000) Then
    cantlm = cantlm & Miles(cantm \ 1000)
    cantm = cantm Mod 1000
    End If
    End If
    If cantm > 0 Then
    If cantm >= 100 Then
    cantlm = cantlm & Cientos(cantm)
    Else
    If cantm >= 10 Then
    cantlm = cantlm & Decenas(cantm, cantm Mod 10)
    Else
    cantlm = cantlm & Unidades(cantm, 1)
    End If
    End If
    End If
    If mon = 1 Then
    letras = cantlm & » PESOS, » & cents1 & «/100 M.N.»
    Else
    letras = cantlm & » DOLARES » & cents1 & «/100 U.S.D.»
    End If
    End Function

    Sub prueba()
    Dim res As String, num As Single
    num = 50899697.51
    res = letras(num, 1)
    End Sub

    Una vez que lo guardas como macro, la mandas llamar asi:
    =»(«&(letras(F7,1))&»)» donde F7 es la celda donde está el número a convertir, y el 1 es pesos, y el 2 es dólares….espero te sirva, a mi me sirve muy bien… suerte!

    Tambien encontré otra direccion lineas arriba de este blog, que hace referencia a escribir con letra sin macro, y tambien esta padrisimo, porque pone con mayuscula inicial, todas mayusculas o mayuscula en cada palabra, repito: muy interesante.. saludos!

  682. 828 MABEL septiembre 15, 2011 a las 8:49 am

    TE DARÍA UN BESO DONDE NO LLEGA EL SOL!!!!!

  683. 830 Omar Vergara V septiembre 15, 2011 a las 11:16 am

    muy bueno, muchas gracias desde veracruz, mexico!!!

  684. 831 Ery septiembre 20, 2011 a las 2:17 pm

    Gracias q buen aporte, sobre todo la explicacion llevaba tiempo buscando algo asi, me agilizaste mi trabajo
    saludos

  685. 832 Erika Ramirez septiembre 20, 2011 a las 8:20 pm

    HOLA ME GUSTO LA EXPLICACION Y PARA EXCEL 2007 ESTA MUY BIEN AHI NO TUVE PROBLEMAS PARA INSERTAR LA MACRO

    PERO COMO LE HAGO PARA EXCEL 2010
    QUISE HACER LOS MISMOS PASOS Y NO ME DEJO
    AYUDAME POR FAVOR
    GRACIAS

    • 833 Enrique octubre 10, 2011 a las 2:46 pm

      hola mira yo tuve el mismo problema pero espero y me explique bien:
      abres un libro de trabajo en blanco, primero que nada tienes que ir a la parte superior izquierda en archivo, le das click en opciones, luego en personalizar cinta de opciones, de ahi en comandos mas utilizados, ahi buscas programador y lo agregas afichas principales lo seleccionas y le das aceptar. te sales de ahi te vas al incio del libro le pegas el nuevo modulo de visual basic(pesosMN) y lo cierras o utiliza alt+Q. despues vas a irte a guardar o guardar como: cambias el nombre le pones por asi decirlo : pesosMN. abajo de donde cambiaste el nombre esta el tipo de documento en que lo quieres guardar, dale clik a la casilla y se despliega una lista buscas en esa lista el nombre que diga: COMPLEMENTO DE EXCEL. Y LE DAS GUARDAR, automaticamente se guarda en c en una carpeta llamada complementos. y listo. AHORA abres un nuevo libro de excel te vas a la parte superior izquierda de tu pantalla le das clik al icono te vas a opciones de excel (aveces solo dice opciones)le das clik te vas a donde dice complementos( una vez en complementos hasta abajo hay una casilla que dice complementos de excel de las en LA CASILLA QUE DICE: IR, te abre una ventanita y ahi tiene que aparecer el nuevo complemento que creamos llamado pesosMN, si no aparece a simple vista le das examinar y escribes el nombre con el que guardaste el complemento. le das aceptar y listo ahora es usable en todos los libros que kieras abrir… sin nececidad de estar ingresando el modulo de nuevo.
      SUGERENCIA: solo no olvides de no borrar el complemento creado..si lo borras tienes que empezar de ceros.
      NOTA: si al abrir el libro de excel no te funciona, solo tienes que irte a opciones y añades el complemento que creamos..
      graciassss……

      • 834 furby noviembre 17, 2011 a las 4:44 pm

        muchísimas gracias, me acabas de salvar de una talacha indescriptible… esto de ponerse al corriente con el software luego es contraproducente…

        Saludos

  686. 835 LU septiembre 23, 2011 a las 2:34 pm

    HAY ME DA MUCHISIMA PENA PORQUE A PESARD E QUE AKI ESTAR SUPER EXPLICADO NO SE PORQUE FREGADOS NO ME SALE A MI YA LO HABIA HECHO ANTES CON LAS INDICACIONES Y SALIO PERFECTAMENTE PERO AHORA TENGO UNA NUEVA MAQUINA Y NO SE PUEDE MI OFICCE ES 2007 Y NO SE COMO GUARDAR LA MACRO O HABILITARLA PORFA AYUDENME NETA ME SUPER URGE EN MI TRABAJO LO SUPER OCUPO OJALA ME PUEDAN DECIR PASO POR PASO DESPUES DE QUE INGRESE LA MACRO EN EL VISUAL BASIC

    • 836 Enrique octubre 10, 2011 a las 2:38 pm

      hola mira yo tuve el mismo problema pero espero y me explique bien: abres un libro de trabajo en blanco, le pegas el nuevo modulo de visual basic(pesosMN) y lo cierras o utiliza alt+Q. despues vas a irte a guardar o guardar como: cambias el nombre le pones por asi decirlo : pesosMN. abajo de donde cambiaste el nombre esta el tipo de documento en que lo quieres guardar, dale clik a la casilla y se despliega una lista buscas en esa lista el nombre que diga: COMPLEMENTO DE EXCEL. Y LE DAS GUARDAR, automaticamente se guarda en c en una carpeta llamada complementos. y listo. AHORA abres un nuevo libro de excel te vas a la parte superior izquierda de tu pantalla le das clik al icono te vas a opciones de excel (aveces solo dice opciones)le das clik te vas a donde dice complementos( una vez en complementos hasta abajo hay una casilla que dice complementos de excel de las en LA CASILLA QUE DICE: IR, te abre una ventanita y ahi tiene que aparecer el nuevo complemento que creamos llamado pesosMN, si no aparece a simple vista le das examinar y escribes el nombre con el que guardaste el complemento. le das aceptar y listo ahora es usable en todos los libros que kieras abrir… sin nececidad de estar ingresando el modulo de nuevo.
      SUGERENCIA: solo no olvides de no borrar el complemento creado..si lo borras tienes que empezar de ceros.
      NOTA: si al abrir el libro de excel no te funciona, solo tienes que irte a opciones y añades el complemento que creamos..
      graciassss……

  687. 837 ANGEL septiembre 23, 2011 a las 3:08 pm

    POR FAVOR QUIE PODRIA AYUDARME, TENGO UNA DUDA ESTO, RESPECTO A COMO COLOCAR FECHAS A TRAVES DE FORMULA PERO NO COMO LA DE =HOY() ESA FORMULA ESTA MUY BIEN, MI PROBLEMA RADICA EN QUE QUIERO COLOCAR EL DIA, EL MES Y AL AÑO CADA UNO DE ELLOS EN DIFERENTES CELDAS EJEMPLO QUE EN UNA VAYA EL DIA EN OTRA EL MES Y OTRA EL AÑO. AGRADESCO SU AYUDA

    • 838 cfdsolution septiembre 23, 2011 a las 3:29 pm

      Hola Angel, lo que puedes hacer es poner =HOY() en las tres celdas y darle un formato a cada una dando un click derecho sobre donde quieres que aparezca el dia dar click en la pestaña Numero y luego donde dice Categoria abajito en Personalizada y luego donde dice tipo pongale dd y aceptar, para el mes los mismos pasos y ahi vas a poner mmmm y para el año tambien los mismos pasos a ahi vas a poner aaa (Ejemplo dd = 01, d = 1, mm = 09 mmm = sep mmmm = septiembre, aa = 11 aaa = 2011, si pones dd mmm aaa te mostrara 01 en el, dia sep en el mes y 2011 en el año).
      Espero me explique y que te sirva. Saludos

      • 839 ANGEL septiembre 23, 2011 a las 3:53 pm

        MUCHAS GRAXIAS POR LA AYUDA CLARO Q ME SIRVIO Y SE LO AGRADESCO, AHORA MIL DISCULPAS SE ME OLVIDO PREGUNTAR QUE SE ESTE FORMATO HACE Q CAMBIE EL AUTOMATICAMENTE DIARIO LOS DIAS?……….
        GRAXIAS POR SU APOYO
        MIL GRAXIAS……

    • 840 gchable septiembre 23, 2011 a las 5:39 pm

      Ya probaste con =MES(HOY()) y =AO(HOY())

  688. 841 cfdsolution septiembre 23, 2011 a las 4:59 pm

    Afirmativo debe de cambiarse automaticamente.

  689. 843 ANGEL septiembre 24, 2011 a las 10:41 am

    ok graxias hoy lo acabo de comprobar muchasgraxias
    por su ayuda me ha servido demasiado.

    al igual q agradesco su ayuda al quien me resulva esta duda:
    como puedo hacer para que en una factura se descuente mis productos que tengo en almacen o existencia!!!
    graxias a quein m pueda ayudar

  690. 845 Moises septiembre 28, 2011 a las 10:21 am

    Me ha servido y gustado mucho el aporte

    Muchas gracias por compartirlo

  691. 846 johana octubre 3, 2011 a las 11:29 am

    COMO CONVIERTO ESTO : En la celda A1 se pagará 100 soles menos el descuento del 10% de 100 soles….. A EXCEL???

  692. 847 SELENE octubre 4, 2011 a las 4:25 pm

    SI QUIERO ELIMINAR «SON:» KE TENGO KE HACER?

  693. 848 Anónimo octubre 4, 2011 a las 5:41 pm

    ve gracias por la formula me sirvio d emucho gracias ois y para los colombianos y de mas que necesiten quitar lo de los 00 y 100 y demaas copien este en la ultima parte de la formula y borren la anterior

    PesosMN = «SON: (» & PesosMN & IIf(tyCantidad > 1, » PESOS «, » PESO «)
    End Function

  694. 849 Jesús Sánchez Sosa octubre 4, 2011 a las 10:19 pm

    Se agradese la aportación que nos haces, mil gracias.

  695. 850 JOSÉ APH octubre 5, 2011 a las 7:48 am

    Oigan, como le hago para que en excel 2010, esta función esté como todas las demás que ya trae al ser instalada. (Que aparezca no como definida por el usuario, sino como las que trae de fábrica)

    • 851 Enrique octubre 10, 2011 a las 2:35 pm

      hola mira yo tuve el mismo problema pero espero y me explique bien: abres un libro de trabajo en blanco, le pegas el nuevo modulo y lo cierras o utiliza alt+Q. despues vas a irte a guardar o guardar como: cambias el nombre le pones por asi decirlo : pesosMN. abajo de donde cambiaste el nombre esta el tipo de documento en que lo quieres guardar, dale clik a la casilla y se despliega una lista buscas en esa lista el nombre que diga: COMPLEMENTO DE EXCEL. Y LE DAS GUARDAR, automaticamente se guarda en c en una carpeta llamada complementos. y listo. AHORA abres un nuevo libro de excel te vas a la parte superior izquierda de tu pantalla le das clik al icono te vas a opciones de excel (aveces solo dice opciones)le das clik te vas a donde dice complementos( una vez en complementos hasta abajo hay una casilla que dice complementos de excel de las en LA CASILLA QUE DICE: IR, te abre una ventanita y ahi tiene que aparecer el nuevo complemento que creamos llamado pesosMN, si no aparece a simple vista le das examinar y escribes el nombre con el que guardaste el complemento. le das aceptar y listo ahora es usable en todos los libros que kieras abrir… sin nececidad de estar ingresando el modulo de nuevo.
      SUGERENCIA: solo no olvides de no borrar el complemento creado..si lo borras tienes que empezar de ceros.
      NOTA: si al abrir el libro de excel no te funciona, solo tienes que irte a opciones y añades el complemento que creamos..
      graciassss……
      asi queda anexado a tu excel..

  696. 852 Rickydj octubre 7, 2011 a las 1:22 pm

    millon y medio de gracias!

  697. 853 Mario octubre 8, 2011 a las 8:33 pm

    Muchisimas gracias por este gran aporte!

    Anduve buscando por otros lugares y solo el tuyo me funcionó perfectamente.

    Bendiciones para ti.

  698. 854 Anónimo octubre 9, 2011 a las 8:12 pm

    gracias por la invaluable ayuda.. a todos los que hacen que esta red sea un apoyo diariamente… agradecimientos a todos.

  699. 855 ANGEL octubre 10, 2011 a las 9:13 am

    una ? a la audiencia como con vertir la fecha en texto por ejemplo tengo en diferentes celdas en una tengo 10 en otra 10 (octubre) y en otra 2010 nada mas que me aparece 10 y quiero q aparesca completo como puedo hacelo!!!!

  700. 857 Anónimo octubre 10, 2011 a las 1:07 pm

    Gracias por este gran aporte, en verdad es bueno saber que existe gente tan inteligente y tan sencilla como para compartir sus conocimientos con los demas….. felicidadess

    sirve de maravilla

  701. 858 Enrique octubre 10, 2011 a las 1:08 pm

    Gracias por este gran aporte, en verdad es bueno saber que existe gente tan inteligente y tan sencilla como para compartir sus conocimientos con los demas….. felicidadess

    sirve de maravilla

  702. 859 Anónimo octubre 11, 2011 a las 3:41 pm

    SOY PROFR. JULIO CESAR CARREÑO BECERRA, AGRADEZCO ESTE APORTE, REALMENTE NO TENIA IDEA DE COMO REALIZARLO, LO PROBARE Y POSTERIOR HARÉ COMENTARIOS O SUGERENCIAS, TODO EN PRO DE MEJORAR. GRACIAS DE NUEVO

  703. 860 Luis octubre 11, 2011 a las 6:07 pm

    Que buen aporte, quisiera que me ayudaran para poder identificar si solo hubieran centavos, ej. 0.75; en mi caso soy de Guatemala (nuestra moneda es el Quetzal) y con las modificaciones que hice sale «Quetzal con 75/100», pero dado el caso que solo son centavos para que pudiera decir «75 centavos», espero haberme explicado, Agradezco mucho la ayuda que puedan brindarme.

  704. 861 javier octubre 13, 2011 a las 8:26 pm

    simplemente chingon, llevo años facturando en excel y cada vez que cambio la cantidad tenia que cambiar la leyenda…gracias

  705. 862 Carola octubre 18, 2011 a las 9:33 pm

    Excelente!!!!!! Muhas gracias por compartirlo!

  706. 863 Vivi octubre 21, 2011 a las 1:52 pm

    Muchas gracias por tu explicación y por el tiempo que te tomas en ayudarnos , fue de muchísima utilidad tu código aunque me queda una pregunta. Puedo de alguna manera quitar los paréntesis ?

  707. 865 Silvi octubre 21, 2011 a las 4:11 pm

    Muchas gracias a no saben cuanto me sirvio esta pagina

  708. 866 PAPICHULO octubre 21, 2011 a las 4:21 pm

    amigo Gonzalo muchas felicidades por tu aportacion, tendras algun portal donde pueda ver todas tus aportaciones de MACROS.

    tengo una duda como puedo extraer los datos numericos y alfanumericos de una celda
    eje en «A1» tengo RF8965 y quiero separar en «A2» RF y en «A3» 8965
    quiero comentarte que los datos alfanumericos pueden ser hasta 4 digitos y los numericos son maximos 10 digitos

  709. 867 Anónimo octubre 25, 2011 a las 2:39 pm

    Que gran explicación y aportación en verdad ¡Gracias!

  710. 868 FRANCISCO JAVIER octubre 26, 2011 a las 8:03 am

    Gonzalo, Mil Gracias por su valiosos aporte

    Saludos,

    FRANCISCO

  711. 869 César Juarez octubre 27, 2011 a las 1:02 pm

    GRACIAS AL AUTOR DE ESTE CODIGO LO PROBE Y ME ESTA FUNCIONANDO BIEN, VOY A PROBAR CON MAS CANTIDADES A VER QUE PASA.

    DAD DE GRACIA LO QUE DE GRACIA HAS RECIBIDO…

    CÉSAR JUÁREZ

  712. 870 César Juarez octubre 27, 2011 a las 1:04 pm

    GRACIAS AL AUTOR DE ESTE CODIGO LO PROBE Y ME ESTA FUNCIONANDO BIEN, VOY A PROBAR CON MAS CANTIDADES A VER QUE PASA.

    DAD DE GRACIA LO QUE DE GRACIA HAS RECIBIDO…

    CÉSAR JUÁREZ

    Guate 27-10-2011

  713. 871 isack garavito octubre 27, 2011 a las 3:49 pm

    FUNCIONANDO AL CIEN MUCHAS GRACIAS

  714. 872 Anónimo octubre 28, 2011 a las 11:06 am

    Muchas Gracias!!! me fue de mucha utilidad ;).

  715. 873 Anónimo octubre 31, 2011 a las 7:54 pm

    Chidisimo,

    Gracias!!!

  716. 874 Anónimo noviembre 2, 2011 a las 7:07 pm

    GRACIAS GRACIAS GRACIAS

  717. 875 Anónimo noviembre 6, 2011 a las 10:03 pm

    JAVIER GONZALEZ
    EXCELENTE MACRO
    FUNCIONA BIEN

  718. 876 BRYAN noviembre 7, 2011 a las 7:57 pm

    Hola amigo, muchas gracias por tu aportación, me sirvió de micho, eres Genial, grax, suerte buen día.

  719. 877 claudia noviembre 8, 2011 a las 11:30 am

    muchisimas gracias lo habia intentado con otrso pero nunca me funcionaron, este esta excelente. claudia moraels

  720. 878 Humberto Torres noviembre 8, 2011 a las 1:15 pm

    Gustavo:

    Por favor explicame si se debe hacer algun procedimiento adicional para excel 2010.

  721. 881 Anónimo noviembre 10, 2011 a las 1:32 am

    Muchas gracias por la respuesta que dejas en la red, fue de gran ayuda.
    Saludos,

  722. 882 LORD DRAKO noviembre 10, 2011 a las 11:09 am

    HOLA MUY UENA TU PUBLICACION, SE PUEDE HACER QUE SOLO APARESCA ( VEINTISIETE MIL TRESCIENTOS CINCO PESOS 95/100 M.N.) Y SE LE QUITE «SON:»
    GRACIAS

    • 883 ERIKA diciembre 13, 2011 a las 6:57 pm

      hola si es que ya te respondieron tu duda plis pasamela no xfa

      • 884 Anónimo diciembre 14, 2011 a las 7:07 pm

        Busca en los últmos renglones esto.-
        PesosMN = «SON: (» & PesosMN & IIf(tyCantidad > 1, » PESOS «, » PESO «) & Format(Str(lyCentavos), «00») & «/100 M.N.)»
        End Function
        Ahora, cambia a.- PesosMN = «(» & PesosMN & IIf(tyCantidad > 1, » PESOS «, » PESO «) & Format(Str(lyCentavos), «00») & «/100 M.N.)»

        A mi me fincionó.

  723. 885 Junatan HUrtado noviembre 10, 2011 a las 3:07 pm

    Excelente, Los felicito… Para Bolívares..

    Function Bolivares(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
    Bolívares = lcBloque
    Case 2
    Bolívares = lcBloque & IIf(lnBloqueCero = 3, Null, » MIL») & PesosMN
    Case 3
    Bolívares = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, » MILLON», » MILLONES») & PesosMN
    End Select
    lnNumeroBloques = lnNumeroBloques + 1
    Loop Until lyCantidad = 0
    Bolívares = «SON: (» & PesosMN & IIf(tyCantidad > 1, » PESOS «, » PESO «) & Format(Str(lyCentavos), «00») & «/100 M.N.)»
    End Function

  724. 887 Anónimo noviembre 12, 2011 a las 5:39 am

    MUCHISIMAS GRACIASSS ES REALMENTE AGRADABLE Q ALGUIEN SE TOME LA MOLESTIA DE EXPLICAR,,, MIL GRACIASS… ME DECLARO TU FAN….

  725. 888 Anónimo noviembre 15, 2011 a las 10:26 am

    LO HICE PERO NO LO GUARDO Y AL DIA SIQUIENTE NO ME FUNCIONA

  726. 889 Anónimo noviembre 15, 2011 a las 11:17 am

    Mil Gracias por la aportacion!!!

    Buenisima!!
    🙂

  727. 890 JN noviembre 17, 2011 a las 3:38 am

    te has de haber cansado de leer lo que te escriben, espero leas el mio…

    GRACIAS estuvo padre, felicidades por compartir tus conocimientos con los mortales (ja! y hacia gala de utilizar bien el excel)

    saludos

  728. 892 Anónimo noviembre 17, 2011 a las 1:31 pm

    Mib hermano gracias muy buen aporte 🙂

  729. 894 Cesar noviembre 22, 2011 a las 2:09 pm

    Gracias por la explicacion y el codigo, muy buen aporte te felicito !!!

  730. 895 MIR noviembre 22, 2011 a las 6:31 pm

    Muchas gracias, es una gran herramienta.

  731. 896 Anónimo diciembre 5, 2011 a las 5:40 pm

    Muchas gracias por tu ayuda, tu código funciona excelentemente bien. Le hice algunos cambios para nuestras abreviaturas en Colombia nada mas.

  732. 897 Anónimo diciembre 6, 2011 a las 11:45 am

    MUCHAS GRACIAS VIEJITO BUEN DETALLE DE TU PARTE , MUY BIEN EXPLICADO

    SALUDOS….

  733. 898 Anónimo diciembre 7, 2011 a las 9:30 pm

    Esta excelente solo me gustaría saber como hacerle para que cuando el numero sea cero aparezca así:

    CERO PESOS 00/100 M.N.

    y no

    PESO 00/100 M.N.

    Ojala alguien pudiera ayudarme.

    Saludos

  734. 899 VERONICA diciembre 8, 2011 a las 12:05 pm

    MUCHAS GRACIAS POR TU EXPLICACION SI PUDE HACERLO AHORA YA NO TENDRE QUE ESCRIBIR LA LETRA DEL NUMERO 🙂
    ME AHORRARE MUCHO TIEMPO

  735. 900 Irasema Marta diciembre 9, 2011 a las 2:05 pm

    Hola, mil gracias por la ayuda¡ se muy poco de esto, pero con la explicacion estuvo facilismo ademas baje el archivo donde ya viene listo. habra algun lugar donde bajar algo para convertir a texto en dolares? no encuentro nada y lo que leo sobre eso no le entiendo… Mil Gracias

  736. 901 nicolas lascarez guzman diciembre 10, 2011 a las 4:03 pm

    Disculpen me podrian ayudar realise todo el procedimiento y me salio bien, el unico detalle es que quisiera que no apareciera la leyenda «SON»,nada mas quisiera la cantidad con letra,ayudenme porfavor

  737. 902 oscar diciembre 13, 2011 a las 2:47 pm

    Os dejo ésta versión ligeramente modificada. Resumen de cambios:

    – Devuelve «CIENTO UNO» en lugar de «CIENTO UN»

    – Si la entrada es 1200, por ejemplo, no devuelve «UN MIL DOSCIENTOS» sino «MIL DOSCIENTOS»

    Muchas gracias por el código.

    Private Function DeletrearCantidad(tyCantidad As Long) As String
    ‘ Tomado y modificado de https://gchable.wordpress.com/2007/10/14/4/

    Dim lyCantidad As Currency, lyCentimos 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)
    lyCentimos = (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
    DeletrearCantidad = lcBloque
    If Right(DeletrearCantidad, 2) = «UN» Then DeletrearCantidad = DeletrearCantidad + «O»
    Case 2
    If lcBloque » » + laUnidades(0) Then
    DeletrearCantidad = lcBloque & IIf(lnBloqueCero = 3, Null, » MIL») & DeletrearCantidad
    Else
    DeletrearCantidad = IIf(lnBloqueCero = 3, Null, » MIL») & DeletrearCantidad
    End If
    Case 3
    DeletrearCantidad = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, » MILLON», » MILLONES») & DeletrearCantidad
    End Select
    lnNumeroBloques = lnNumeroBloques + 1
    Loop Until lyCantidad = 0
    End Function

  738. 903 ERIKA diciembre 13, 2011 a las 6:55 pm

    HOLA MUCHAS GRACIAS POR TU EXPLICACION FUE DE GRAN AYUDA SOLO QUE AL IGUAL QUE LORD DRAKO YO LO OCUPO PARA HACER CHEQUES Y NO ME SIRVE LA PALABRA SON: QUISIERA OMITIRLO OJALA TENGAS TIEMPO Y ME QUIERAS EXPLICAR

    • 904 Roberto diciembre 14, 2011 a las 7:12 pm

      Busca en las últimas líneas.-
      PesosMN = «SON: (» & PesosMN & IIf(tyCantidad > 1, » PESOS «, » PESO «) & Format(Str(lyCentavos), «00») & «/100 M.N.)»
      End Function

      Y cambiala por.-
      = «(» & PesosMN & IIf(tyCantidad > 1, » PESOS «, » PESO «) & Format(Str(lyCentavos), «00») & «/100 M.N.)»

  739. 906 Carmen Campos diciembre 14, 2011 a las 7:52 pm

    Hola, gracias por la información es muy útil y verdaderamente eficiente, busqué en muchos lados y definitivamente la tuya es la mejor.
    Éxito con tus proyectos, sigue publicando información tan precisa.
    Saludos,
    Carmen Campos

  740. 907 Antonio diciembre 18, 2011 a las 10:02 pm

    Gracias, muy claro

  741. 908 Anónimo diciembre 28, 2011 a las 12:15 pm

    Hola que tal soy nuevo en esto,pero quisiera saber como debo hacer para que me aparesca esto en un libro de excel:
    «Recibi conforme, la suma de : 1568.76 pesos»,la parte de los numeros en letras con la leyenda al principio,desde ya muchas gracias a todos

  742. 909 Javier Sánchez Serna diciembre 29, 2011 a las 1:28 am

    Realmente te felicito!
    Esta función es un verdadero monstruo.
    Me quedo corto para felicitarte: Excelente! Excelente! Excelente!

    Mil gracias y mis respetos…

  743. 910 Francisco Orduño diciembre 29, 2011 a las 1:21 pm

    Como puedo hacer para que esta funcion este disponible en todos los libros que abra en excel

  744. 911 GONZALO diciembre 29, 2011 a las 1:41 pm

    Que cosa tan fregona gracias por compartir sus conocimientos lo voy a pasar a mis compañeros.

  745. 912 Ismael Torres diciembre 31, 2011 a las 4:25 pm

    Mis respetos!

    Dos cosas me impresionan:

    El conocimientos que tienen y lo mas importante, el compartirlo sin fines de lucro.

    Saludos,

  746. 913 Anónimo enero 2, 2012 a las 12:50 pm

    EXCELENTE ME SIRVIO DE MUCHO

  747. 914 Anónimo enero 2, 2012 a las 12:52 pm

    SU EXPLICACION MUY BUENA GRACIAS POR COMPARTIRLO

  748. 915 VERONICA enero 2, 2012 a las 7:30 pm

    HOLA MUCHAS GRACIAS POR TU APORTE ESTAMOS EN 2012 Y SIGUE AYUDANDO A LA GENTE ESTE ARTICULO, Y SI JAJAJ ME ACORDE DE ESA LECTURA DE LIBRO DE PRIMARIA DONDE PITA BAUTIZA UN BICHO COMO PALITROCHE JAJJA UN SALUDO Y QUE ESTES DE LO MEJOR

  749. 916 edy enero 3, 2012 a las 1:01 pm

    de verdad muxas gracias me es de gran utilidad
    y quiero hacerte una pregunta que cuando introdusco decimales me sale error quisiera que aparesca cero en letras poe ejm.
    0.233=cero con………

    le estare muy agradecido

  750. 917 Paúl E. enero 3, 2012 a las 6:34 pm

    Oye amigo, muchas gracias, me fue gran ayuda para mi trabajo. Las nueva ley de cheques indica que debes escribir en el cheque la cantidad tanto en números como en letras… ya te imaginaras lo que sufria para no hacer a mano los cheques que emito. nuevamente gracias feliz año 2012

  751. 918 LeticiaChile enero 4, 2012 a las 12:18 pm

    PARA QUIENES LO QUIERAN EN MINUSCUL Y QUE AL FINAL DIGA SOLO PESOS

    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», «seiscientos», «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 = «» & PesosMN & IIf(tyCantidad > 1, » pesos «, » peso «)
    End Function

  752. 919 Ivan enero 4, 2012 a las 12:32 pm

    Gracias…
    Soy nuevo usando Excel, pero pude crear la macro y usar la función… es de gran utilidad

  753. 920 Jorge Martinez enero 4, 2012 a las 6:45 pm

    soy de mexico cuando escribes: $1,000,000.00 te devuelve: (un millon pesos 00/100 m.n.) y debe ser: (un millon de pesos 00/100 m.n.) ojala que alguien sepa como se corrije.

  754. 922 fer1306 enero 5, 2012 a las 10:05 pm

    Excelente macro, pero que dificil es encontrar algunas funciones como esta para las MAc

  755. 924 Anónimo enero 7, 2012 a las 9:43 am

    Viejo, mil gracias lo había estado buscando por todas partes.

  756. 925 isabel enero 9, 2012 a las 1:12 pm

    HOLA OYE Y COMO LE PUEDES HACER EN WINDOWS XP

  757. 926 Sarahi enero 10, 2012 a las 8:41 pm

    Hola, excelente macro! trabaja muy bien.
    pero si le agregas la palabra «DE» a millon, y escribes $1,200,000.00, la formula dira:
    SON: ( UN MILLON DE DOSCIENTOS MIL PESOS 00/100 M.N.)
    y pues eso no es correcto.

  758. 927 Anónimo enero 12, 2012 a las 3:03 pm

    Excelente presentacion!!! sigue asi

  759. 928 Eleazar Cabrera enero 12, 2012 a las 7:35 pm

    En verdad muchas gracias, me han ahorrado muchas horas de trabajo

  760. 929 Anónimo enero 13, 2012 a las 2:33 pm

    Excelente, mil gracias , me ha sido ed gran ayuda.

  761. 930 FILEMON MENDOZA enero 20, 2012 a las 12:34 pm

    MIL GRACIAS, SOLO NECESITABA LA CANTIDAD Y LE QUITE SON: ME FUNCIONO. DIOS TE BENDIGA EN UN MUNDO LLENO DE EGOISMO.

  762. 931 Jaime enero 20, 2012 a las 1:22 pm

    Funciona perfectamente, fue de mucha ayuda. Gracias.

  763. 932 Cesar Vera enero 22, 2012 a las 7:37 pm

    muy agradecido no sabes cuanto andaba buscando esta función, un abrazo desde Chile

  764. 933 Claudia enero 24, 2012 a las 2:04 pm

    muy buena la pagina, y el codigo, pero aun no entiendo como guardar el macro, es decir cada vez que quiero utilizar la funcion tengo q escribir el codigo de macro en la hoja excel.
    cabe decir que utilizo el excel 2007.

    Ayudenme porfa, nose casi naa de macros pero esta funcion me es sumamente importante y la necesito para mi trabajo.

    Gracias

  765. 935 vangermx enero 27, 2012 a las 11:17 am

    muchas gracias, fue de mucha ayuda para una coworker que elabora cheques, se ahorrará tiempo al dejar de escribir las cantidades con letras y dejar que lo haga la macro.

    claudia: graba el libro de excel en formato .xlsm que es el que permite mantener las macros incrustadas, así ya no tendrás que escribir el código de la macro cada vez que la quieras utilizar.

  766. 936 israel enero 28, 2012 a las 12:09 pm

    gracias por el aporte de excel magnifico

  767. 937 Anónimo febrero 3, 2012 a las 4:04 pm

    Excelente! Gracias!

  768. 938 Christian Carrasco febrero 4, 2012 a las 3:27 pm

    Estimado.
    Eres lo maximo me funciono como esperaba, reemplace los datos pesos por nuevos soles ya que en Peru la moneda es SOLES, no tuve ningun problema.

    Muchas gracias.

  769. 939 mariangela cordova febrero 6, 2012 a las 4:10 pm

    hola chicos, agradezco infinitamente su colaboración, por motivos de ahorrar trabajo necesito que esta opción fiuncione, pero uso oficce 2007 y no he podido habilitar el macro, leyendo todos sus comentarios me reconforto porque sé que también lo lograré, mas necesito que por favor me expliquen con detalle lo que debo hacer, muchisimas gracias de antemano un saludo, desde Venezuela!

    • 940 vangermx febrero 7, 2012 a las 10:06 am

      hola, con gusto te ayudo, me puedes agregar a gtalk: vangermx y te explico paso a paso

      • 941 mariangela cordova febrero 7, 2012 a las 11:02 am

        HOLA CHICO, YA TE AGREGUE AL GTALK… YA CREE EL MACRO Y PUES CUANDO COLOCO EL SIGNO DE IGUALDAD EN UNA CELDA Y EL NOMBRE DEL MACRO, AL DARLE «ENTER» SALE ?NOMBRE? Y YA GRABE EL LIBRO EN FORMATO 2007 Y AUN NO ME FUNCIONA…!! :_(
        AYUDAME POR FA..!!

  770. 942 luis febrero 6, 2012 a las 6:23 pm

    Lo probe en excel para mac y funcione excelente, gracias !!!! años buscando uno que funcionara

  771. 944 JORGE ARTURO SALCIDO GUTIERREZ febrero 7, 2012 a las 9:54 am

    muchas gracias por compartir este macro es la primera vez que me funciona gracias a que alguien me explica suficientemente bien, la verdad es que si no lo logre antes fue mi falta de pericia en excell. hasta pronto. enhorabuena por las personas que comprenden que la informacion y el conocimiento son para compartirse y que hace siglos dejamos la edad media y su oscurantismo.

  772. 945 Anónimo febrero 7, 2012 a las 5:18 pm

    exelente aporte, pero tengo un detalle cada vez que cierro el archivo y lo vuelvo a abrir sepierden todos las funciones de la formula y tengo que hacer todo el procedimiento
    de nuevo, saludos gracias

  773. 946 Doany Hidalgo febrero 9, 2012 a las 2:55 pm

    hola gonzalo, muchas gracias por este aporte. tengo una consulta, no he podido activarlo en el excel 2007, me sale un error de sintaxis que segun pantalla indica que es en la parte que dice……. :

    Dim laUnidades As Variant, laDecenas As Variant, laCentenas As Variant, I As Variant ‘Si esta como Option Explicit

    Podrias confirmarme si existe algun error o si tengo que activar alguna opcion? ya activce las oociones de programador.. Espero me puedas ayudar
    saludos
    }

  774. 947 Alberto febrero 10, 2012 a las 12:12 pm

    Hey… infinitas gracias tenia tiempo de no hacer esto, y me sirvió mucho para recordar, funciona de maravilla…

  775. 948 Juan Carlos febrero 10, 2012 a las 11:35 pm

    oye no se puede hacer que solo se ponga el número sin lo de pesos y lo de Mx?? si se puede te agradeceria mucho que me dijeras como lo puedo hacer!!

  776. 949 ISRT febrero 11, 2012 a las 2:54 pm

    YA INTENTE TODO LO QUE HE LEIDO Y AUN NO PUEDO HACERLO FUNCIONAR POR FAVOR AYUDENME. ME APARECE UNA OPCION DONDE ME DICE GUARDAR MACROS Y DICE DESHABILITADO COMO LO HABILITO

  777. 950 Anónimo febrero 13, 2012 a las 1:07 pm

    EXCELENTE GRACIAS POR TU TUTORIAL SUPER DETALLADO

  778. 951 Anónimo febrero 14, 2012 a las 10:16 am

    como debo guardar la macro para poder utilizarla en varios libros

  779. 952 Miguel Angel febrero 15, 2012 a las 10:06 am

    Excelente no hay mas que decir me ayudo mucho

  780. 953 Anónimo febrero 15, 2012 a las 7:06 pm

    muchas gracias ya lo probe y funciona muy bien

  781. 954 C.P PEDRO ZACARIAS GUTIERREZ febrero 20, 2012 a las 2:42 pm

    HOLA! BUENAS TARDES, ES UN BUEN PROGRAMITA, UNA DUDA COMO PUEDO PASARLO A MINUSCULA? GRACIAS

  782. 955 Lupita Barrientos febrero 21, 2012 a las 12:00 pm

    Está de wow tu blog, muchas gracias por tu ayuda. Exitos mil para ti.

  783. 956 Anónimo febrero 22, 2012 a las 3:22 pm

    Muchas gracias por toda tu ayuda…

  784. 957 Fernando febrero 29, 2012 a las 5:56 pm

    Eres todo un genio, sin mayor problema lo pude realizar

    gracias

  785. 958 jorge Cerda marzo 1, 2012 a las 9:30 am

    estimado no tengo palabras para agradecer tu aporte, gracias por compartir.. saludos de Temuco, Chile

  786. 960 jorge Cerda marzo 1, 2012 a las 9:36 am

    estimado nuevamente escribiendo, al principio de tu blog dice que se puede usar en word. cual seria la forma?

    saludos desde temuco

  787. 962 Erick Morales marzo 4, 2012 a las 6:53 pm

    Una excelente herramienta, le realice cambios y le puse la moneda de mi país «Quetzales» y funciono a la perfección, gracias

  788. 964 Ramon marzo 5, 2012 a las 4:32 am

    Hola gonzalo, Saludos Cordiales

    de verdad muchisimas gracias, en toda la web, el mejor, una duda:

    como puedo cambiar a minusculas, ejemplo (UN MIL DOSCIENTOS PESOS 00/100 M.N.) a (Un mil doscientos pesos 00/100 m.n.)

    Gracias por tu atencion

      • 966 Mario marzo 5, 2012 a las 11:19 am

        hola ramon, me podrias ayudar a instalarlo en mi excel? yo no puedo hacerlo con exito. mi correo es mariodoany@gmail.com. Gracias

      • 967 Ramon marzo 5, 2012 a las 12:41 pm

        Seleccionas el codigo, lo copias, vas al libro en el que estas trabajando, oprimes ALT+F11 se habre una ventana ahi en insertar modulo, habre una ventana en blanco, ahi mismo, pegas lo que copiaste y listo, solo cierras la ventana con ALT+Q. Para aplicar esta formula solo das =PESOSMN(B4) celda de numero y ya lo tienes.

        Para cambiar SON: MIL PESOS, solo borra en el codigo SON:, sin mover ni borrar otra cosa, listo.

      • 968 Mario marzo 5, 2012 a las 12:52 pm

        ramon, gracias por tu tiempo.
        Mira eso es lo que h agopero cuando pongo la formula sale una ventana que dice

        Error de compilación:

        Error de sintaxis

        y se abre la ventana con el codigo resaltando supuestamente el error, pero no logro identificarlo. si me pudieras ayudar con esto por favor. Me das tu correo para enviarte la pantalla?. Gracias

      • 969 Ramon marzo 5, 2012 a las 1:25 pm

        Ok, si ya creaste el modulo borra todo el codigo, luego te pones en le modulo que creaste y lo borras, cierras en libro y vuelves a iniciar de nuevo, copias el codigo tal cual, no selecciones ni mas no menos.

      • 970 Mario marzo 5, 2012 a las 2:44 pm

        Ramon, sorry que te moleste, pero soy una completa tabaza en este tema. me podrias dar tu mail para enviarte lo que me sale? Gracias

  789. 971 Ramon marzo 5, 2012 a las 4:35 am

    Hola gonzalo

    como lo puedo cambiar a minusculas

    gracias

  790. 972 luis marzo 5, 2012 a las 9:50 am

    HOLA SOY LUIS HICE UNAS PRUEBAS Y SI PUEDE MUCHAS GRACIAS AHORA UNA PREGUNTA SI NO QUISIERA QUE SALIERA SON UNICAMENTE LA PURA CANTIDAD QUE PUEDO HACER

  791. 973 JOSE JUAN MEDRANO marzo 5, 2012 a las 3:06 pm

    WOW GRACIAS MIL GRACIAS MI SIRVIO MUCHO TU FUNCION SOLO QUIERO SABER COMO HACERLE PARA QUE NO APARESCA LA PALABRA ( SON:)

  792. 974 JOSE JUAN MEDRANO marzo 5, 2012 a las 3:34 pm

    JEJEJ NO ME HABIA DADO CUNETA JEJEJEJE SI YA LO RESOLVII GRACIAS MIL GRACIAS

  793. 975 De Paz Virginia marzo 5, 2012 a las 6:37 pm

    Muchas gracias! Magnífica ayuda y muy claramente explicado. Saludos!

  794. 976 EdgarCastro marzo 12, 2012 a las 12:30 pm

    Estos son lo aportes que se pueden clasificar como excelentes, FUNCIONA PERFECTO!!!!

  795. 977 Mary Delgado marzo 12, 2012 a las 2:08 pm

    Por fis ya intente pegarlo en pesos me sale espectacular pero soy peruana y lo necesito en soles intente con otra que pegaron mas abajo pero me dice que hay error de sintaxis..podrias ayudarme???? que como dicen muchos te aligera la vida y tambien la estuve buscando muchisimo, gracias

  796. 978 Arthur marzo 12, 2012 a las 9:32 pm

    Funciono al 100%!!!!!, Muchas Gracias!!!!

  797. 979 Renato marzo 13, 2012 a las 7:53 am

    Hola amigo. Genial el código para conversion de numeros a letras, funciona muy bien!!!. Pero necesito uno que sea para Dólares. Cómo puedo hacer???

  798. 980 Anónimo marzo 13, 2012 a las 3:28 pm

    uuuu muy bueno lo probe pero el tema e que soy de chile y necesito que la ultima parte donde dice algo como 21/100MN solo necesito que diga hasta el pesos. como lo puedo hacer porque trate de borrar algunas cosillas y se borro todo jajja si me puedes ayudar te lo agradecereeeeee mucho¡¡¡¡¡¡

  799. 981 Mile Rivers marzo 14, 2012 a las 1:17 pm

    Justo lo que buscaba! muchas gracias!!

  800. 982 flackoman marzo 15, 2012 a las 10:52 am

    Muchas gracias amigo por tu ayuda, es muy valioso tu trabajo felicitaciones

  801. 983 ricardo marzo 17, 2012 a las 11:15 am

    bueno solo puedo decir que es un excelente aporte ya que en verdad muchos manejamos el excel pero bien es cierto que no todos tenemos el conocimiento de todas las aplicaciones como las macros y solo puedo decir de verdad muchas gracias

  802. 984 Anónimo marzo 22, 2012 a las 5:08 pm

    Esto funciona en una hoja de excel que corre en MAC?

  803. 987 rebeca marzo 23, 2012 a las 3:27 pm

    ya son muchos agradecimientos y te mereces mas muchas gracias por ayudarnos un saludo enorme probe con muchooooosss y en todos me botaba error menos con el tuyo gracias en verdad

  804. 988 rebeca marzo 23, 2012 a las 3:28 pm

    si funciona anonimo por eso me conflictue porque uso mac office 2011 pero si funciono super bien

  805. 990 Anónimo marzo 24, 2012 a las 9:08 pm

    grax___-por la info men me sirvio para un proyecto importante

  806. 991 Esther marzo 26, 2012 a las 1:12 pm

    Hola!
    Me gustaría saber si me pueden ayudar con lo siguiente:
    En mi caso quiero convertir números a letras pero no son pesos, sino cantidad de mercancía. Por ejemplo:
    25.46 y quiero que diga como tal: veinticinco punto cuarenta y seis. ¿Es posible hacer esto?
    Les agradezco mucho!
    Saludos!

    • 992 Omar Alonso Manzano Cháidez noviembre 3, 2012 a las 10:00 pm

      Esther, por supuesto que se puede hacer. Mándame tu correo y te envío la solución en hoja de cálculo EXCEL. Saludos desde Durango, México.

  807. 993 may marzo 26, 2012 a las 3:42 pm

    hola.. muchas gracias!!pero cuando cierro excel y abro otro documento en blanco regreso a lo mismo tengo ke copiar todo.. como le puedo hacer para ke y a no tenga ke hacer el mismo movimiento?….gracias ojala y me puedas ayudar…

  808. 994 Ragnar marzo 28, 2012 a las 8:15 pm

    Buenisimo muchas gracias!

  809. 995 Ferney marzo 29, 2012 a las 9:43 pm

    Hola
    lo que me pas esque yo tengo un formulario hecho por medio de visuall,,
    en macros y quisera que todos los datos insertados por el formulario se pudieran sumar en excel ,,,lo he hco con la formula de la suma pero no esposible ya que el ultimo dato insertado no lo puede sumar ya que la fila va hacia abajo…..
    me gustaria si algien me podia pasar el codigo……….
    Gracias

  810. 996 Anónimo abril 1, 2012 a las 7:26 pm

    MUCHAS GRACIAS, de verdad que chido que no seas envidioso con el codigo, me sirvio muchisimo excelente aporte

  811. 997 Lic. Alfredo Jimènez abril 4, 2012 a las 2:06 pm

    Despues de algunos años sigues recibiendo agradecimientos por tu gran ayuda, pues me agrego a ellos. MUCHAS GRACIAS

  812. 998 juan abril 4, 2012 a las 10:18 pm

    Excelente…..muy bueno jejejejeje

  813. 999 Herácleo abril 8, 2012 a las 3:38 pm

    Muchas, pero muchas gracias Gonzalo.
    El que da, se le multiplica.
    Asi sea.

  814. 1000 antony abril 9, 2012 a las 4:38 pm

    hola muy bueno tus conocimientos una pregunta ¿de donde sacas los codigos para realizar las formulas en la hoja de excel? es muy importante para mi que me enseñes todo eso sos bueno

  815. 1001 Arturo Garcia abril 9, 2012 a las 9:20 pm

    Gonzalo, Muchas Gracias por tu ayuda… no mas errores en mi facturacion, que dios te lo multiplique para que nos ayudea.

    Solo dos preguntas Como le quito son:?

    Como lo pongo en USD?

  816. 1002 Ivan Dario abril 16, 2012 a las 3:47 pm

    Buenas tardes, excelente trabajo de mucha ayuda, mil gracias, solo quiero preguntar si se puede hacer que el valor en letras no quede entre parentesis me sale SON: (CIEN PESOS 00/100 M.L.) en colombia se usa M.L. pero eso ya lo cambie, solo quiero que quede SON: CIEN PESOS 00/11 M.L. sin los parentesis, gracias por tu ayuda

  817. 1004 Anónimo abril 17, 2012 a las 10:56 pm

    que tal excelente trabajo en verdad gracias solo que tengo un problema
    sigo todos los pasos y funciona correctamente pero me encuentro en un problema ya que al cerrar el documento pues ya se guardan los cambios pero al volver abrir el archivo y escribo la cantidad y me sale un error de nombre entonces vuelvo a hacer todo el procediemiento nuevamente y vuelve a funcionar entonces aqui algo que esta pasando es que no me esta guardando la macro o algo asi por el estilo..

    De antemano gracias..!!

  818. 1005 Anónimo abril 18, 2012 a las 1:15 pm

    Excelente trabajo, muchas gracias.

  819. 1006 Anónimo abril 22, 2012 a las 4:42 pm

    NO ME AYUDAN EN NADA
    GRcias

  820. 1007 anavy hernandez abril 22, 2012 a las 4:43 pm

    ayudenme

  821. 1010 Anónimo abril 23, 2012 a las 3:08 pm

    Buenisimo !!!!! Mil Gracias

  822. 1011 Osmar Enrique Ibarra Brito abril 24, 2012 a las 6:54 am

    Muy buena la explicación

  823. 1012 EDUARD CORDOBA abril 24, 2012 a las 11:45 am

    EXCELENTE TU TRABAJO, ME SIRVIO MUCHO, ME GUSTARIA CONOCER MAS SOBRE TUS TRABAJOS QUE NOS PUEDAN SERVIR A OTRAS PERSONAS … TE FELICITO

  824. 1013 salina abril 25, 2012 a las 11:26 am

    Muchas gracias por el codigo si funciona….

  825. 1014 Anónimo abril 25, 2012 a las 3:23 pm

    Excelente Me funcion Gracias!!!

  826. 1015 Excel abril 25, 2012 a las 9:12 pm

    Muy bueno. Funciona perfectamente.

  827. 1016 Anónimo May 1, 2012 a las 10:28 am

    GRACIAS ME FUNCIONO MUY BIEN AHORRA MUCHO TRABAJO

  828. 1017 Anónimo May 2, 2012 a las 1:23 pm

    hola, buenas tardes. una pregunta, como guardar para que cada ves que abra el archivo se pueda manipular, porque si lo cierro y luego lo abro ya no se puede modificar y apareca ?nombre

  829. 1018 Christina Castro Mallma - Bateria May 4, 2012 a las 2:58 pm

    Lo máximo me ayudo de mucho…. De la PTM
    Recontra lokaso… sigan aportando
    Gracias..

  830. 1019 Maribel Vázquez de Santiago May 4, 2012 a las 3:14 pm

    ¡Muchas gracias!

    Muy util el macro y buena onda en compartirlo, saludos.

  831. 1020 Fabio Vargas May 5, 2012 a las 7:32 pm

    Para calcular los billones agregamos el siguiente caso al codigo a partir del caso 3 del codigo original

    Case 3
    PesosMN = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, » MILLON», » MILLONES») & PesosMN
    Case 4
    PesosMN = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0 And lnCuartoDigito = 0, » BILLON», » BILLONES») & PesosMN
    End Select

  832. 1021 Luipa May 6, 2012 a las 12:48 pm

    exelente compadre esto es super

  833. 1022 Anónimo May 6, 2012 a las 2:42 pm

    necesito de tu ayuda como me puedo contactar contigo?

  834. 1023 Paco May 9, 2012 a las 11:33 am

    BUENISIMO, ME SIRVIO DE MARAVILLA, MUCHAS GRACIAS Y SUERTE. SALUDOS

  835. 1024 Anónimo May 9, 2012 a las 5:34 pm

    fabuloso!!!!! primero me marcaba error al copiar a VB pero me llevó todo el día intentando, hasta que por fin!!!! mil gracias

  836. 1025 Anónimo May 10, 2012 a las 8:43 am

    te agradesco infinitamente esta informión es muy valioate que dios te bendigasa cuidate
    Manuel Bravo

  837. 1026 pepegoya23 May 10, 2012 a las 10:53 pm

    ola oye para hacerlo en Mac OS en donde esta Visualbasic

  838. 1028 Anónimo May 11, 2012 a las 6:19 pm

    Gracias amigo por compartirlo. . . me sirvió mucho

  839. 1029 Yueni May 13, 2012 a las 7:36 pm

    5 años después, todavía útil. ¡Gracias! =)

  840. 1030 Yessicca Urdaneta May 14, 2012 a las 12:39 pm

    EXCELENTE EXPLICACIÓN! SOLO UN PROBLEMA: NO PUEDO HACER QUE CAMBIE A BOLIVARES. CÓMO LO HAGO?

  841. 1031 Anónimo May 14, 2012 a las 9:00 pm

    barbarooo maestroo!!!

  842. 1032 lety May 16, 2012 a las 4:24 pm

    ESTA FUNCION LA USO PARA CORRESPONDENCIA PERO CUANDO PASO LAS CANTIDADES A WORD NO CIERR LOS DECIMALES SINO ME PONE MUCHOS QUE HAGO PARA CORREGIR.
    GRACIAS

  843. 1034 Anónimo May 21, 2012 a las 1:13 pm

    Que tal! la verdad tenía mucho tiempo buscando esta función; muchas gracias… es de gran utilidad. Bien dicen, todos los dias se aprende algo nuevo…. digo, en mi vida, habia trabajado con macros… Gracias…

  844. 1035 yurbis May 22, 2012 a las 11:45 am

    Gracias por compartir esta ayuda tan util. Felicitaciones

  845. 1036 Anónimo May 24, 2012 a las 12:49 pm

    Mill Graciiias !!! Ahora mi contabiilidad sera muuucho Eficiiente !!!!
    saludos desde Mtyy !!
    ** Carolina vzz **

  846. 1037 roman jimenez May 26, 2012 a las 11:57 am

    hola buen dia, me podrias explicar como es ke siguiendo todos los pasos no puedo insertar la formula? mi equipo tiene windows vista, dime si puedo trabajar en el con tu formula? de antemano gracias. dokie

  847. 1040 DUANER OVANDO May 28, 2012 a las 5:59 pm

    CONVERSION DE NUMEROS A LETRAS «BOLIVIANOS» (DUANER OVANDO)

    Para los bolivianos la formula sería =bolivianos(celda) ……y gracias al creador de la fórmula original……..

    Function Bolivianos(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
    Bolivianos = lcbloque
    Case 2
    Bolivianos = lcbloque & IIf(lnbloquecero = 3, Null, » mil») & Bolivianos
    Case 3
    Bolivianos = lcbloque & IIf(lnprimerdigito = 1 And lnsegundodigito = 0 And lntercerdigito = 0, » millon», » millones») & Bolivianos
    End Select
    lnnumerobloques = lnnumerobloques + 1
    Loop Until lycantidad = 0
    Bolivianos = «(» & Bolivianos & IIf(tycantidad > 1, » «, » «) & Format(Str(lycentavos), «00») & «/100 Bolivianos)»
    End Function

  848. 1041 Anónimo May 29, 2012 a las 11:31 am

    Estoy muy agradecido, excelente funcion, gracias por compartirla

  849. 1042 Anónimo May 29, 2012 a las 2:07 pm

    Esta genial muchisimas gracias, muy simple en comparacion con otras. Gracias por compartirla 😉

  850. 1043 Maru May 30, 2012 a las 12:26 pm

    AMIGO, LO UNICO QUE TE PUEDO DECIR ES «E X C E L E N T E »
    Y MEJOR AUN, QUE COMPARTAS TU INFORMACION Y CONOCIMIENTOS, DE VERDAD GRACIAS MIL !!!

  851. 1044 El Serch May 30, 2012 a las 1:13 pm

    Muy bueno, muchas gracias, me hicieron el día!!! saludos

  852. 1045 CYBER May 30, 2012 a las 5:40 pm

    DEFINITIVAMENTE UN BUEN APORTE MUY BIEN EXPLICADO Y DESARROLLADO

  853. 1046 TOM TOM May 31, 2012 a las 3:11 pm

    MAESTRO CON TODO RESPETO, ES USTED EL PUTO AMO…¡¡¡¡ LO FELICITO

  854. 1047 Claudia May 31, 2012 a las 7:21 pm

    Mil gracias me fué muy util toda la información y comentarios

  855. 1048 LZapata junio 2, 2012 a las 1:57 am

    la verdad esto esta genial, llevaba años buscando como hacerlo y funciona a la perfeccion, GRACIAS!!!!!!

  856. 1049 Anónimo junio 3, 2012 a las 10:33 pm

    ME PONGO DE PIE ERES UN SABIO

  857. 1051 BVIELMA junio 5, 2012 a las 10:44 am

    Si esta buenisimo el mejor explicado y aparte sencillo y con el correcto formato que usamos en México, simplemente el MEJOR!!!!!

  858. 1052 Anónimo junio 5, 2012 a las 11:30 am

    ME AYUDO MUCHO SU INFORMACION, MUCHAS GRACIAS, LA VERDAD PENSE QUE NO IBA A PODER.

  859. 1053 Anónimo junio 5, 2012 a las 12:56 pm

    POR FAVOR SI YO QUISIERA QUE NO APARESCA EL SON:, COMO LE HAGO, AGRADESCO DE ANTEMANO TODA SU AYUDA BRINDADA HASTA EL MOMENTO.

    • 1054 maurooro junio 5, 2012 a las 2:31 pm

      «POR FAVOR SI YO QUISIERA QUE NO APARESCA EL SON:, COMO LE HAGO, AGRADESCO DE ANTEMANO TODA SU AYUDA BRINDADA HASTA EL MOMENTO.»

      CUANDO ESTÉS EN EL EDITOR PRESIONA CRTL+F Y BUSCAS M.N. LO ELIMINAS Y LISTO, (ACTUALIZA LA FORMULA SI YA LA HICISTE O HAZLA OTRA VEZ)

      y gracias gonzalo_conta fue de gran ayuda…!!!

      • 1055 Anónimo junio 5, 2012 a las 4:10 pm

        ya intente lo que me dice, pero no me quita el SON: LO QUE ME QUITA ES LA CANTIDAD POR EJEMPLO 30,000.00 LE DOY LO QUE ME MENCIONA Y ME PONE SON: (PESOS 00/100 M.N.) PERO NO ME PONE TREINTA MIL.

      • 1056 maurooro junio 6, 2012 a las 8:51 am

        En la misma linea al principio de ella le borras el SON o lo remplazas.

        la linea es

        PesosMN = «SON: (» & PesosMN & IIf(tyCantidad > 1, » PESOS «, » PESO «) & Format(Str(lyCentavos), «00») & «/100 M.N.)»

        esta al final del codigo espero te sirva

  860. 1057 Anónimo junio 5, 2012 a las 3:38 pm

    hola por favor no encuentro o creo que no tengo visual basic mi office es 2010 que hago gracias

    • 1058 maurooro junio 6, 2012 a las 8:56 am

      Seguro que lo tienes, sigue los pasos

      Abre un libro nuevo y presiona ALT+F11 sin soltar ALT

      ahí veras al el editor de visaul basic, insertas el modulo y copias adentro el codigo.

      Saludos

  861. 1059 Anónimo junio 5, 2012 a las 5:57 pm

    ESTA SUPER PADRE, TE AHORRA UN BUEN DE TIEMPO

  862. 1060 Anónimo junio 6, 2012 a las 10:23 am

    LO LOGRE YA PUDE QUITAR EL SON:, CLARO QUE NO HUBIERA PODIDO SIN SU VALIOSA AYUDA, MUCHISIMAS PERO MUCHISIMAS GRACIAS, QUE ESTE MUY BIEN.

  863. 1061 Villa junio 6, 2012 a las 1:24 pm

    Excelente explicacion, muchisimas gracias!!

  864. 1062 yeyos junio 7, 2012 a las 10:44 am

    está excelente la aportación. te felicito, solo una duda… como le hago para que salga como 8.9 OCHO PUNTO NUEVE

  865. 1063 Rafael Vital junio 11, 2012 a las 9:48 am

    Favor necesito me colaboren, metí el código para la conversión de número a letras y se me presentó un problema, cuando doy enter en cualquier programa me sale asterisco y un paréntesis, no sé si tuve alguna falla, o no sé a que se deba esto, tengo Officce 2007, borré el código de visual básic y aún así me sigue saliendo el asterisco y paréntesis al final de cada palabra cuando le doy enter. Les agradezco su ayuda.

  866. 1064 Anastacio junio 12, 2012 a las 7:57 pm

    muy buen aporte, justamente lo que andaba buscando, y funciona de maravilla

  867. 1065 Anónimo junio 12, 2012 a las 9:49 pm

    voz sos un genio!!!!!!!!!!

  868. 1066 HALC junio 13, 2012 a las 1:44 pm

    Esta Macro es muy buena

  869. 1067 Anthony junio 13, 2012 a las 3:47 pm

    fue una buena ayuda

    gracias

  870. 1068 Arcadio junio 13, 2012 a las 3:48 pm

    Gracias mi estimado, esto me ahorra tiempo
    hasta pronto

  871. 1069 Anónimo junio 15, 2012 a las 6:15 pm

    excelente mil gracias

  872. 1070 Anónimo junio 17, 2012 a las 9:20 pm

    muchas gracias por la publicacion, estos aportes son muy buenos y nos ayudan mucho, yo le hice el cambio de PESOS a BOLIVIANOS.
    MIL GRACIAS GONZALO

  873. 1071 kamui8 junio 19, 2012 a las 4:14 am

    Gracias por el aporte, me servirá de mucho y ya comencé a modificarlo. (yo le quite la palabra «son», los paréntesis, M.N., puse algunos acentos en los números, y la parte «un mil millones») quedando así:

    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», «DIECISÉIS», «DIECISIETE», «DIECIOCHO», «DIECINUEVE», «VEINTE», «VEINTIUN», «VEINTIDÓS», «VEINTITRÉS», «VEINTICUATRO», «VEINTICINCO», «VEINTISÉIS», «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
    Case 4
    PesosMN = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0 And lnCuartoDigito = 0, » MIL», » MIL») & PesosMN
    End Select
    lnNumeroBloques = lnNumeroBloques + 1
    Loop Until lyCantidad = 0
    PesosMN = «» & PesosMN & IIf(tyCantidad >= 2, » PESOS CON «, » PESO «) & Format(Str(lyCentavos), «00») & «/100»
    End Function

    **Y ENCONTRÉ OTRO CÓDIGO DIFERENTE, SE LOS DEJO PARA QUE LO REVISEN, A MI ME SIRVIÓ. INGRESAN (una vez insertado el Modulo) LA FUNCIÓN COMO: =Numletra

    Sub Convertir()

    End Sub
    Function Numletra(Number As Double, Optional Kurrencys As String, Optional Kurrency As String) As String

    If Kurrencys = «» Then
    Kurrencys = «PESOS»
    Kurrency = «PESO»
    End If
    If Kurrency = «» Then Kurrency = Kurrencys

    Const MinNum = 0#
    Const MaxNum = 4294967295.99

    Dim Result As String
    If (Number >= MinNum) And (Number = 2 Or Number < 1 Then Kurrenzy = Kurrencys

    Result = RecurseNumber((Fix(Number)))

    If Round((Number – Fix(Number)) * 100) < 10 Then
    Result = "" + Result + " " + Kurrenzy + " 0" + Mid(Str(Round((Number – Fix(Number)) * 100)), 2, 1) + "/100 M.N."
    Else
    Result = "" + Result + " " + Kurrenzy + " " + Mid(Str(Round((Number – Fix(Number)) * 100)), 2, 2) + "/100 M.N."
    End If
    Else
    Result = "Error, verifique la cantidad."
    End If

    Numletra = Result

    End Function

    Function RecurseNumber(N As Long) As String

    Dim Numbers, Tenths, Hundrens
    Numbers = Array("CERO", "UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE", "DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIECISÉIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE", "VEINTE", _
    "VEINTIÚN", "VEINTIDÓS", "VEINTITRÉS", "VEINTICUATRO", "VEINTICINCO", "VEINTISÉIS", "VEINTISIETE", "VEINTIOCHO", "VEINTINUEVE")
    Tenths = Array("CERO", "DIEZ", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA", "SETENTA", "OCHENTA", "NOVENTA", "CIEN")
    Hundrens = Array("CERO", "CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", "QUINIENTOS", "SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS")

    Dim Result As String
    Select Case N
    Case 0
    Result = "CERO"
    Case 1 To 29
    Result = Numbers(N)
    Case 30 To 100
    Result = Tenths(N \ 10) + IIf(N Mod 10 0, » Y » + RecurseNumber(N Mod 10), «»)
    Case 101 To 999
    Result = Hundrens(N \ 100) + IIf(N Mod 100 0, » » + RecurseNumber(N Mod 100), «»)
    Case 1000 To 999999
    Result = RecurseNumber(N \ 1000) + » MIL» + IIf(N Mod 1000 0, » » + RecurseNumber(N Mod 1000), «»)
    Case 1000000 To 1999999
    Result = RecurseNumber(N \ 1000000) + » MILLÓN» + IIf(N Mod 1000000 0, » » + RecurseNumber(N Mod 1000000), » DE»)
    Case 2000000 To 999999999
    Result = RecurseNumber(N \ 1000000) + » MILLONES» + IIf(N Mod 1000000 0, » » + RecurseNumber(N Mod 1000000), » DE»)
    Case 1000000000 To 1999999999
    Result = RecurseNumber(N \ 1000000000) + » MIL MILLONES» + IIf(N Mod 1000000000 0, » » + RecurseNumber(N Mod 1000000000), » DE»)
    Case 2000000000 To 4294967295.99
    Result = RecurseNumber(N \ 1000000000) + » BILLONES» + IIf(N Mod 1000000000 0, » » + RecurseNumber(N Mod 1000000000), » DE»)

    End Select

    RecurseNumber = Result

    End Function

  874. 1072 Silvia Rocio junio 19, 2012 a las 1:03 pm

    Muchísimas gracias! Fue muy buena tu ayuda

  875. 1073 Silvia Rocio junio 19, 2012 a las 1:35 pm

    Lo siento Gustavo pero quisiera saber cómo guardo la macro como un complemento de Excel (office 2007), para después habilitarla desde Opciones de Excel Complementos. y Usarla como se usa cualquier función y desde cualquier hoja (gracias por tu ayuda)

  876. 1074 ignacio carmona junio 19, 2012 a las 5:03 pm

    lo que puedo comentar es que mucho tiempo estuve buscando como hacerlo, muchas gracias, no entiendo toda la sintaxis pero he estado haciendole algunas modificaciones para mi trabajo, me han salido bien, muchisimas gracias por toda la información

    Saludos

  877. 1075 Anónimo junio 19, 2012 a las 7:36 pm

    Super my friend saludos desde Colombia un abrazo

  878. 1076 memofe junio 25, 2012 a las 9:21 am

    Muchas gracias, solo copie en modulo y a correrlo.
    Me evito estar explicandole por teléfono a mi hermano. Es una macro muy sencilla.
    GRACIAS POR COMPARTIR LO QUE SABES.

  879. 1077 Anónimo junio 25, 2012 a las 6:18 pm

    HOLA …… DÉJAME DECIRTE QUE ME QUITO EL SOMBRERO.. GENIAL GENIAL … HACE BASTANTE TIEMPO ESTA CACHARRIANDO CON ESTE TEMA Y POR CASUALIDAD ME ENCONTRÉ CONTIGO… FELICITACIONES Y MIL GRACIAS. QUE DIOS TE BENDIGA.

  880. 1078 Anónimo junio 29, 2012 a las 2:06 pm

    Muchas gracias… Sólo queda agradecer tu gentileza

  881. 1079 adriun julio 1, 2012 a las 12:39 am

    una pregunta, ejecuto el macro y guardo el archivo, al abrirlo nuevamente no me ejecuta el macro, esto a que se debe????

  882. 1080 Anónimo julio 3, 2012 a las 4:02 pm

    gracias exelente aporte

  883. 1081 Anónimo julio 4, 2012 a las 1:14 pm

    Muchas gracias…. me sirvio bastante….

  884. 1082 Anónimo julio 4, 2012 a las 2:42 pm

    MUCHAS GRACIAS POR COMPARTIR TUS CONOCIMIENTOS……

  885. 1083 Juan CLG julio 4, 2012 a las 4:56 pm

    Hola, mil gracias por impartir tus conocimientos, una pregunta: que debo hacer para que me funcione cuando digito $1’000.000.000,00 $2’000.000.000,00 etc., de antemano mil gracias por tu colaboracion.

  886. 1084 JOSE FERNANDEZ julio 10, 2012 a las 6:32 am

    Gonzalo, Gracias sinceras por este aporte más que útil. Saludos cordiales desde Bogotá, Colombia.

  887. 1085 Anónimo julio 11, 2012 a las 2:43 pm

    que tal Gonzalo muchas gracias por el video, yo lo aplique y me funciona muy bien, pero en el trabajo tengo una mac y no me funciona espero me puedas ayudar con el procedimiento, gracias.

  888. 1086 Cesar julio 13, 2012 a las 3:08 pm

    Muchas gracias por este aporte, es demaciado útil.

  889. 1087 jhon sanchez julio 16, 2012 a las 10:15 am

    Hola quiero saber porque al momento de registrar un valor de miles de millones no me registra y me saca el error de #VALOR, muchas gracias si me ayudas con el código para ajustarlo.

  890. 1088 Marcela A.V. julio 19, 2012 a las 12:12 pm

    Excelente…..muchas gracias Gonzalo……muy buen aporte, con personas como tu, habemos más personas que aprendemos cosas nuevas…..
    Atte.
    Marcela. A.V.
    Chile.

  891. 1089 Anónimo julio 22, 2012 a las 11:43 am

    Muchisimas Gracias
    SAludos..

  892. 1090 Anónimo julio 24, 2012 a las 12:34 pm

    Mil gracias agilizaron mucho mi trabajo…se les agradece muchooo!!

  893. 1091 Alexandra Calderon julio 25, 2012 a las 1:28 pm

    Hola

    Muchísimas gracias por tu INFORMACION tengo un pequeño problema necesito que al final de la formula cuando ya me la ha convertido números a letra me indique que son m/cte, ya que me esta mostrando 40/100 nm dejo mi correo: aleja21_7@hotmail.com

  894. 1092 Juan Manuel julio 27, 2012 a las 1:21 pm

    Felicidades….excelente macro y se agradece que existan personas con el conocimiento y que quieran compartir sus conocimientos asi como tu. GRACIAS…

  895. 1093 Jose Manuel Zelaya O julio 28, 2012 a las 8:48 pm

    Quiero agradecer a Gonzalo que es la persona que realizo este macro ya que le a serbido a muchas personas, y en especial a mi que me a llebado meses tratando de encontrar una macro de pudiera hacer esta conversion
    como dice tu paisano si hubieran, otras personas como tu desprendidas, no solo Mexico seria diferente si no todo el mundo saludos a la distancia desde Honduras C.A.

  896. 1094 Ricardo julio 28, 2012 a las 9:11 pm

    no puedo me puedes esplicar bien lo que pasa que tengo xp

  897. 1095 ALE MAR julio 29, 2012 a las 2:14 am

    ¡Gracias!, de verdad que esto de compartir sólo lo hacen los genios y grandes de corazón, Dios t bendiga. ¡Excelente blog!

  898. 1096 JMR julio 29, 2012 a las 9:09 am

    Hola desde Rep. Dominicana
    Antes que nada aprecio la colaboración de Gonzalo y mis respetos y admiración por todos los que desinteresadamente aportan soluciones tan útiles.

    Luego de tomar el código publicado, me tomé la libertad de agregar dos argumentos a la funcion CONVIERTENUMLETRA:

    El primero es «DENOMINACION», con este podrán indicar el tipo de Moneda Ej.: «Dolares», «Pesos mexicanos», «Soles», etc.

    El segundo es «CONDECIMALES», es una variable booleana (Falso/verdadero) y se usa indicarle a la función si se quiere incluir decimales en el resultado.

    Abajo algunos ejemplos y el código completo modificado.

    Juan Manuel Rodríguez

    Ejemplos:
    ———–

    =CONVIERTENUMLETRA(50,»»,FALSE)
    Resultado: CINCUENTA

    =CONVIERTENUMLETRA(50,»SOLES»,FALSE)
    Resultado: CINCUENTA SOLES

    =CONVIERTENUMLETRA(50,»SOLES»,TRUE)
    Resultado: CINCUENTA SOLES CON 00/100

    Codigo VB:
    ————–

    Function CONVIERTENUMLETRA(NUMERO, Optional DENOMINACION, Optional CONDECIMALES As Boolean)
    Dim TEXTO
    Dim MILLONES
    Dim MILESC
    Dim CIENTOS
    Dim DECIMALES
    Dim CADENA
    Dim CADMILLONES
    Dim CADMILES
    Dim CADCIENTOS

    TEXTO = NUMERO
    TEXTO = FormatNumber(TEXTO, 2)
    TEXTO = Right(Space(14) & TEXTO, 14)
    MILLONES = Mid(TEXTO, 1, 3)
    MILES = Mid(TEXTO, 5, 3)
    CIENTOS = Mid(TEXTO, 9, 3)
    DECIMALES = Mid(TEXTO, 13, 2)
    CADMILLONES = CONVIERTECIFRA(MILLONES, 1)
    CADMILES = CONVIERTECIFRA(MILES, 1)
    CADCIENTOS = CONVIERTECIFRA(CIENTOS, 0)
    If Trim(CADMILLONES) > «» Then
    If Trim(CADMILLONES) = «UN» Then
    CADENA = CADMILLONES & » MILLON»
    Else
    CADENA = CADMILLONES & » MILLONES»
    End If
    End If
    If Trim(CADMILES) > «» Then
    CADENA = CADENA & » » & CADMILES & » MIL»
    End If

    ENTRE100 = «/100″
    TCON = » CON »
    If CONDECIMALES = False Then
    DECIMALES = «»
    ENTRE100 = «»
    TCON = «»
    End If

    If Trim(CADMILES & CADCIENTOS) = «UN» Then
    CADENA = CADENA & «UNO » & » » & DENOMINACION & TCON & DECIMALES & ENTRE100 & » »
    Else
    If MILES & CIENTOS = «000000» Then
    CADENA = CADENA & » » & Trim(CADCIENTOS) & » » & DENOMINACION & TCON & DECIMALES & ENTRE100 & » »
    Else
    CADENA = CADENA & » » & Trim(CADCIENTOS) & » » & DENOMINACION & TCON & DECIMALES & ENTRE100 & » »
    End If
    End If

    CONVIERTENUMLETRA = Trim(CADENA)
    End Function

    Function CONVIERTECIFRA(TEXTO, SW)
    Dim CENTENA
    Dim DECENA
    Dim UNIDAD
    Dim TXTCENTENA
    Dim TXTDECENA
    Dim TXTUNIDAD
    CENTENA = Mid(TEXTO, 1, 1)
    DECENA = Mid(TEXTO, 2, 1)
    UNIDAD = Mid(TEXTO, 3, 1)
    Select Case CENTENA
    Case «1»
    TXTCENTENA = «CIEN»
    If DECENA & UNIDAD «00» Then
    TXTCENTENA = «CIENTO»
    End If
    Case «2»
    TXTCENTENA = «DOSCIENTOS»
    Case «3»
    TXTCENTENA = «TRESCIENTOS»
    Case «4»
    TXTCENTENA = «CUATROCIENTOS»
    Case «5»
    TXTCENTENA = «QUINIENTOS»
    Case «6»
    TXTCENTENA = «SEISCIENTOS»
    Case «7»
    TXTCENTENA = «SETECIENTOS»
    Case «8»
    TXTCENTENA = «OCHOCIENTOS»
    Case «9»
    TXTCENTENA = «NOVECIENTOS»
    End Select

    Select Case DECENA
    Case «1»
    TXTDECENA = «DIEZ»
    Select Case UNIDAD
    Case «1»
    TXTDECENA = «ONCE»
    Case «2»
    TXTDECENA = «DOCE»
    Case «3»
    TXTDECENA = «TRECE»
    Case «4»
    TXTDECENA = «CATORCE»
    Case «5»
    TXTDECENA = «QUINCE»
    Case «6»
    TXTDECENA = «DIECISEIS»
    Case «7»
    TXTDECENA = «DIECISIETE»
    Case «8»
    TXTDECENA = «DIECIOCHO»
    Case «9»
    TXTDECENA = «DIECINUEVE»
    End Select
    Case «2»
    TXTDECENA = «VEINTE»
    If UNIDAD «0» Then
    TXTDECENA = «VEINTI»
    End If
    Case «3»
    TXTDECENA = «TREINTA»
    If UNIDAD «0» Then
    TXTDECENA = «TREINTA Y »
    End If
    Case «4»
    TXTDECENA = «CUARENTA»
    If UNIDAD «0» Then
    TXTDECENA = «CUARENTA Y »
    End If
    Case «5»
    TXTDECENA = «CINCUENTA»
    If UNIDAD «0» Then
    TXTDECENA = «CINCUENTA Y »
    End If
    Case «6»
    TXTDECENA = «SESENTA»

    If UNIDAD «0» Then
    TXTDECENA = «SESENTA Y »
    End If
    Case «7»
    TXTDECENA = «SETENTA»
    If UNIDAD «0» Then
    TXTDECENA = «SETENTA Y »
    End If
    Case «8»
    TXTDECENA = «OCHENTA»
    If UNIDAD «0» Then
    TXTDECENA = «OCHENTA Y »
    End If
    Case «9»
    TXTDECENA = «NOVENTA»
    If UNIDAD «0» Then
    TXTDECENA = «NOVENTA Y »
    End If
    End Select

    If DECENA «1» Then
    Select Case UNIDAD
    Case «1»
    If SW Then
    TXTUNIDAD = «UN»
    Else
    TXTUNIDAD = «UNO»
    End If
    Case «2»
    TXTUNIDAD = «DOS»
    Case «3»
    TXTUNIDAD = «TRES»
    Case «4»
    TXTUNIDAD = «CUATRO»
    Case «5»
    TXTUNIDAD = «CINCO»
    Case «6»
    TXTUNIDAD = «SEIS»
    Case «7»
    TXTUNIDAD = «SIETE»
    Case «8»
    TXTUNIDAD = «OCHO»
    Case «9»
    TXTUNIDAD = «NUEVE»
    End Select
    End If
    CONVIERTECIFRA = TXTCENTENA & » » & TXTDECENA & TXTUNIDAD
    End Function

  899. 1098 mario garcia julio 30, 2012 a las 6:09 pm

    muchas gracias hermano, hoy aprendo algo

  900. 1099 Anónimo agosto 2, 2012 a las 11:34 am

    hola me aparece error de sintaxis? como se soluciona esto? Aguardo una respuesta, gracias.

  901. 1100 Anónimo agosto 6, 2012 a las 10:42 pm

    Mira Amigo gonzalo
    Tengo la celdas A1, B1 y C1(Constante); lo que quiero es hacer una formula en la celda D1(Resultado) que multiplique a1*c1 y b1*c1 osea que al ingresar un dato en la celda a1 automaticamente salga el resultado en la celda D1 o que ingrese un dato en la celda B1 hago lo mismo ¿habra alguna forma de hacerlo? estare muy agradecido por la ayuda gracias de antemano

    • 1101 Complexjp agosto 7, 2012 a las 11:05 am

      HOLA ANONIMO, para lo que estas requiriendo, solo requieres usar la función «SI» de forma anidada; ya que sería como se escribe a continuación: en D1 vas a escribir; =SI(a1=0;a1*c1;b1*c1) y listo…. esa sería una parte de la condición, prueba y sigue intentando que es muy facil una vez que lo aprendes a hacer.

      saludos

  902. 1102 Yizeth agosto 7, 2012 a las 11:54 am

    Muchisimas gracias!! Llevaba un buen tiempo buscando una respuesta tan concreta y util!! 🙂 gracias!!!

  903. 1103 lola agosto 7, 2012 a las 12:20 pm

    he probado con todas los odigos publicados, y lo unico que funciona sin error es la primera en pesos, pero necesito en nuevos soles, se agredece su apoyo, para los que no sabemos,se aprende mucho aca. Por favor si alguien puede facilitar el codigo correcto en nuevos soles (PERÚ), les quedare muy agradecida.

    • 1104 Octavio agosto 11, 2012 a las 11:13 pm

      Yo lo que hize fue cambiar en el programa de visual todo lo que dijera pesos y cambie a Lempiras la cual es mi moneda en Honduras, y tambien elimine lo que dice m.n. luego me sali del programa con alt Q y me duncionó.

  904. 1105 Gera agosto 10, 2012 a las 2:23 pm

    AMIGO MUCHAS GRACIAS POR ESTA VALIOSA INFOMRACION

  905. 1106 Anónimo agosto 10, 2012 a las 3:28 pm

    HOLA MUCHISIMAS GRACIAS, ME SIRVIO MUCHISIMO, SE LO AGRADEZCO, SALUDOS DESDE VERACRUZ, VER

  906. 1107 Octavio agosto 11, 2012 a las 11:25 pm

    Muchisimas gracias por el aporte, me fué muy util.

  907. 1108 Heri agosto 13, 2012 a las 10:15 am

    Excelente!!!!son una bruta para el excel y pude hacer mi macro…
    Gracias por el dato 🙂

  908. 1109 Miguel agosto 14, 2012 a las 6:13 pm

    Muchas gracias hermano, como dicen aya arriba, me quito el sombrero. Es muy practica y la verdad es el sueño de todo contador.
    Saludos desde Mexicali Mexico y espero estes muy bien, un abrazo y que viva Mexico por siempre!!!

  909. 1110 Ruth D agosto 20, 2012 a las 4:44 pm

    Buen dia:
    Probe la macro y funciono de maravilla, pero al convertirla a excel 2007 me aparece el error:
    «The following features cannot be saved in macro-free wok books:
    . VB project
    to save a file whit these features, click NO, and the choose a macro-enabled file type in the File Type List.
    To continue savingas a macro-free workbook, click YES.
    SI NO»

    La copie directamente en el archivo 2007 y tampoco se gurada el modulo…

    ¡Porfavor ayuda…!!!!!!!! ¿Que estoy haciendo mal??

    • 1111 Anónimo agosto 22, 2012 a las 9:14 am

      Muchisimas gracias no te imaginas cuantos dolores de cabeza me causo mi trabajo pero gracias a ti todo me resulto super tus aportes sirven para muchas personas y la forma de explicacion es excelente gracias!!!

  910. 1112 Anónimo agosto 21, 2012 a las 6:59 pm

    son un asko y los pienso de mandar

  911. 1113 lola agosto 27, 2012 a las 2:25 pm

    yo quiero poner el numero y que me salga enletra no quiero informacion

  912. 1115 HESNUZ agosto 30, 2012 a las 12:29 pm

    Gracias por el aporte me sirvió mucho ahora lo estoy aplicando a una lista de calificaciones, funciona a las mil maravillas salvo cuando tengo un caso como este 18.90 me muestra el resultado en letras DIECIOCHO CON, solo pasa cuando los decimales son .10, .20, .30 …90 adjunto el código modificado y la formula modificada que estoy utilizando si alguien tiene alguna solución se agradecería que la comparta,
    Codigo VB
    Function num_letras(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
    num_letras = lcBloque
    Case 2
    num_letras = lcBloque & IIf(lnBloqueCero = 3, Null, » MIL») & num_letras
    Case 3
    num_letras = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, » MILLON», » MILLONES») & num_letras
    End Select
    lnNumeroBloques = lnNumeroBloques + 1
    Loop Until lyCantidad = 0
    num_letras = «» & num_letras & IIf(tyCantidad > 1, «», » «)
    num_letras = num_letras
    End Function

    Formula en celda
    =SI(RESIDUO(B28,1)=0,num_letras(B28),»»&num_letras(B28)&SI(B28>1,» CON»,»»)&num_letras(DERECHA(B28,2))&»»)

    Gracias

  913. 1116 Angela agosto 30, 2012 a las 4:34 pm

    Me podrías ayudar, por que si tecleeo la cifra 180270420008.00 me marca error?

    Saludos y Gracias

  914. 1117 luisa agosto 30, 2012 a las 5:08 pm

    excelente… al fin encontre lo que tanto andaba buscando.

  915. 1118 Brauliot septiembre 3, 2012 a las 10:43 pm

    Tengo un inconveniente en el uso, si me pueden ayudar cuando pones 0,75 o 1,25 por ejemplo PESO 75/100 UN PESOS 25/100 deberia decir CERO PESOS 75/100 UN PESO 25/100
    GRacias por su ayuda

  916. 1121 Enrique septiembre 4, 2012 a las 2:54 pm

    Excelente Macro, yo lo tenia pero estaba incompleto, felicidades y gracias.

  917. 1122 enrique septiembre 4, 2012 a las 3:51 pm

    MUY BUENO GRACIAS ME SACASTE DE UN APURO

    • 1123 juan septiembre 8, 2012 a las 7:09 pm

      Hola yo dejo acá un macro para convertir, números en letras en este caso a pesos colombianos, espero les sea de ayuda.
      Es Asi:

      ‘**********************************************************************
      ‘** **’
      ‘** CONVERTIR DE NUMEROS A LETRAS **’
      ‘** AUTOR: juan jaramillo **’
      ‘** **’
      ‘** **’
      ‘** FECHA DE CREACION:agosto 1/2012 **’
      ‘** **’
      ‘**********************************************************************

      Public Function CLetras(ByVal numero As Double, Optional fmtoUnidad As Integer = 0, Optional Unidades As String = «Kilos», Optional Unidad As String = «Kilo», Optional Genero As String = «M») As String
      Dim strUnidad(0 To 5) As String
      Dim strUnidades(0 To 5) As String
      Dim strCifras(0 To 4) As String
      Dim NumeroCifras As Byte
      Dim NumeroTercios As Byte
      Dim strNumero As String
      Dim strTMP As String
      Dim dblNumeroEntero As Double
      Dim intNumeroTmp As Integer
      Dim intCentavos As Integer
      Dim J As Integer
      Dim intNumTmp As Integer

      strUnidades(0) = » pesos m/cte»: strUnidades(1) = » unidades»: strUnidades(2) = » dolares»: strUnidades(3) = » euros»: strUnidades(4) = » » & Unidades: strUnidades(5) = «»
      strUnidad(0) = » peso m/cte»: strUnidad(1) = » unidad»: strUnidad(2) = » dolar»: strUnidad(3) = » euro»: strUnidad(4) = » » & Unidad: strUnidad(5) = «»
      strCifras(1) = «»: strCifras(2) = » mil «: strCifras(3) = » millones «: strCifras(4) = » mil «: strCifras(0) = » millón »

      intCentavos = Int((Round(numero, 2) * 100) – (Int(numero) * 100))
      dblNumeroEntero = Round(numero, 2) – (intCentavos / 100)
      strNumero = CStr(Abs(dblNumeroEntero))
      NumeroCifras = Len(strNumero)
      NumeroTercios = Abs(Int(-NumeroCifras / 3))

      Select Case dblNumeroEntero
      Case 0
      strTMP = «cero»
      Case 1
      If fmtoUnidad 5 Then
      strTMP = «un»
      strUnidades(fmtoUnidad) = strUnidad(fmtoUnidad)
      Else
      strTMP = «uno»
      End If
      If Genero «M» Then strTMP = «una»
      Case 2 To 999
      strTMP = CLetrasS1(CLetrasS3(dblNumeroEntero, 1), Genero)
      Case 1000
      strTMP = «mil»
      Case 1000000
      strTMP = «un millón»
      Case 1000001 To 1999999
      strCifras(3) = » millón »
      For J = NumeroTercios To 1 Step -1
      intNumTmp = CLetrasS3(dblNumeroEntero, J)
      If intNumTmp 0 Then strTMP = strTMP & CLetrasS1(intNumTmp, Genero) & strCifras(J)
      Next J
      Case Else
      For J = NumeroTercios To 1 Step -1
      intNumTmp = CLetrasS3(dblNumeroEntero, J)
      If intNumTmp 0 Then strTMP = strTMP & CLetrasS1(intNumTmp, Genero) & strCifras(J)
      Next J
      End Select
      If Right(strTMP, 9) = «millones » Then strTMP = Mid(strTMP, 1, (Len(strTMP) – 9)) & «millones de»
      If Right(strTMP, 6) = «millón» Then strTMP = Mid(strTMP, 1, (Len(strTMP) – 6)) & «millón de»
      strTMP = strTMP & strUnidades(fmtoUnidad)

      If intCentavos > 0 Then
      Select Case fmtoUnidad
      Case 0
      strTMP = strTMP & » con » & CLetrasS1(intCentavos, Genero) & » centavos»
      Case 5
      strTMP = strTMP & » punto » & CLetrasS1(intCentavos, Genero)
      End Select
      End If

      ‘cambiar «un mil» o «una mil» por «mil»
      strTMP = Replace(strTMP, «una mil», «mil», , , vbTextCompare)
      strTMP = Replace(strTMP, «un mil», «mil», , , vbTextCompare)

      CLetras = strTMP
      End Function

      ‘función que secundaria que calcula las decenas
      Private Function CLetrasS2(numero As Integer, Genero As String) As String
      Dim strUnidades(0 To 20) As String: Dim strDecenas(2 To 9) As String: Dim Unidades As Byte: Dim Decenas As Byte: Dim strTMP As String

      strUnidades(0) = «»: strUnidades(2) = «dos»: strUnidades(3) = «tres»: strUnidades(4) = «cuatro»: strUnidades(5) = «cinco»: strUnidades(6) = «seis»: strUnidades(7) = «siete»: strUnidades(8) = «ocho»: strUnidades(9) = «nueve»: strUnidades(10) = «diez»: strUnidades(11) = «once»: strUnidades(12) = «doce»: strUnidades(13) = «trece»: strUnidades(14) = «catorce»: strUnidades(15) = «quince»: strUnidades(16) = «diez y seis»: strUnidades(17) = «diez y siete»: strUnidades(18) = «diez y ocho»: strUnidades(19) = «diez y nueve»: strUnidades(20) = «veinte»
      strDecenas(2) = «veinti»: strDecenas(3) = «treinta»: strDecenas(4) = «cuarenta»: strDecenas(5) = «cincuenta»: strDecenas(6) = «sesenta»: strDecenas(7) = «setenta»: strDecenas(8) = «ochenta»: strDecenas(9) = «noventa»
      If Genero = «M» Then
      strUnidades(1) = «un»
      Else
      strUnidades(1) = «una»
      End If
      Decenas = Int(numero / 10)
      Unidades = Int(numero – (Decenas * 10))

      Select Case numero
      Case 1 To 20
      strTMP = strUnidades(numero)
      Case 21 To 29
      strTMP = strDecenas(Decenas) & strUnidades(Unidades)
      Case 30 To 99
      If (Decenas > 0) And (Unidades > 0) Then strTMP = strDecenas(Decenas) & » y » & strUnidades(Unidades)
      If (Decenas > 0) And (Unidades = 0) Then strTMP = strDecenas(Decenas)
      End Select
      CLetrasS2 = strTMP
      End Function

      ‘Funcion secundaria que calcula las centenas

      Private Function CLetrasS1(numero As Integer, Genero As String) As String
      Dim strCentenas(1 To 9) As String: Dim Centenas As Byte: Dim strTMP As String: Dim intNumeroEntero As Integer

      intNumeroEntero = Int(numero)
      Centenas = Int(numero / 100)
      If Genero = «M» Then
      strCentenas(1) = «ciento»: strCentenas(2) = «doscientos»: strCentenas(3) = «trecientos»: strCentenas(4) = «cuatrocientos»: strCentenas(5) = «quinientos»: strCentenas(6) = «seiscientos»: strCentenas(7) = «setecientos»: strCentenas(8) = «ochocientos»: strCentenas(9) = «novecientos»
      Else
      strCentenas(1) = «ciento»: strCentenas(2) = «doscientas»: strCentenas(3) = «trecientas»: strCentenas(4) = «cuatrocientas»: strCentenas(5) = «quinientas»: strCentenas(6) = «seiscientas»: strCentenas(7) = «setecientas»: strCentenas(8) = «ochocientas»: strCentenas(9) = «novecientas»
      End If
      Select Case numero
      Case 0 To 99
      strTMP = CLetrasS2(intNumeroEntero, Genero)
      Case 100
      strTMP = «cien»
      Case 200, 300, 400, 500, 600, 700, 800, 900
      strTMP = strCentenas(Centenas)
      Case Else
      strTMP = strCentenas(Centenas) & » » & CLetrasS2(Int(numero – (Centenas * 100)), Genero)
      End Select
      CLetrasS1 = strTMP
      End Function

      ‘Funcion secundaria que saca un tres cifras del numero
      Private Function CLetrasS3(numero As Double, Tercio As Integer) As Integer
      Dim CadaCifra As Integer
      Dim OrdenInverso As Integer
      Dim intNumeroTmp As Integer
      Dim NombreCifra(1 To 12) As String

      OrdenInverso = Len(CStr(numero))

      ‘Borra la matriz
      For CadaCifra = 1 To 12: NombreCifra(CadaCifra) = «0»: Next CadaCifra

      For CadaCifra = 1 To Len(CStr(numero))
      NombreCifra(OrdenInverso) = Val(Mid(CStr(numero), CadaCifra, 1))
      OrdenInverso = OrdenInverso – 1
      Next CadaCifra
      intNumeroTmp = Val(NombreCifra((Tercio * 3)) & NombreCifra((Tercio * 3) – 1) & NombreCifra((Tercio * 3) – 2))
      CLetrasS3 = intNumeroTmp
      End Function

      • 1124 Karynna octubre 27, 2012 a las 11:51 pm

        Muy bueno! Juan! gracias! mas explicito ni pedirlo….gracias!

      • 1125 Jairo A. Molina May 2, 2013 a las 4:21 pm

        Muchas gracias Juan.
        Sin embargo te cuento que probé la del seño GCHABLE y me funciona perfecto.
        Cuando pruebo la tuya me salen cantidad de errores.
        Quería saber si alguien te había contactado y dicho que estos errores aparecían.
        Me gusta mucho tu fórmula porque le da solución al problema de MILLON y MILLON DE para cifras como 1.000.000 o 2.000.000, etc.

        Tu me podrías decir si revisaste tu macro antes de pegarla para cerciorarte que estuviera bien?
        Me interesaría mucho usarla, gracias, Jairo

  918. 1126 Miguel Enrique Tuj CHocoy septiembre 13, 2012 a las 10:39 am

    Hola necesito su ayuda por favor, necesito convertir números enteros y decimales a texto, ejemplo:

    4,545.47 Cuatro mil quinientos cuarenta y cinco con cuarenta y siete

    4,545.00 Cuatro mil quinientos cuarenta y cinco exactos.

    Por favor necesito su ayuda si me pudieran ayudar…

    miguel.tuj@hotmail.com

  919. 1128 David León septiembre 16, 2012 a las 12:41 am

    Gracias amigo, me evitaste quebrarme la cabeza.

  920. 1130 Carlos septiembre 17, 2012 a las 5:04 pm

    Muchas Gracias, hay varios tutoriales pero el tuyo lo mas explicito, Felicidades

  921. 1131 Anónimo septiembre 17, 2012 a las 8:14 pm

    HOLA, MUCHAS GRACIAS POR TU AYUDA Y EN VERDAD QUE BUENA FORMA DE EXPLICAR COMO SE REALIZAN Y ESTO DA PAUTA PARA QUE CADA UNO PODAMOS IR CREANDO MACROS SENCILLAS E IR AVANZANDO PARA REALIZAT YA UNAS COMPLEJAS.
    MUCHAS GRACIAS Y SALUDOS A TODOS.

  922. 1132 affordable web designing services in dubai septiembre 18, 2012 a las 7:52 am

    My spouse and I stumbled over here by a different page and
    thought I should check things out. I like what I see so i am just
    following you. Look forward to looking into your web page again.

  923. 1133 Agostina septiembre 18, 2012 a las 8:52 am

    Hola! Quisiera que me ayuden ya que al escribir 1000 me sale «Uno mil» y quisiera que me salga solo «Un mil».

    Desde ya, gracias.

  924. 1134 Anónimo septiembre 18, 2012 a las 2:46 pm

    Gracias, muy bueno!

  925. 1135 Jonathan septiembre 26, 2012 a las 10:09 am

    MUCHAS PERO MUCHAS, GRACIAS, ME ACABO DE LUCIR EN MI TRABAJO GRACIAS A ESTA FUNCION

  926. 1136 SILVERIO FERNANDEZ septiembre 30, 2012 a las 11:19 am

    CONTADOR GONZALO, FELICIDADES POR SER TAN PROFESIONAL, SUS CONCEJOS Y ENSEÑANZAS EXCELENTES.SALUDOS DESDE LAS COSTAS DE.OAXACA,MEXICO.SILVERIO

  927. 1137 Luis Ernesto Sanchez octubre 2, 2012 a las 5:56 pm

    Quisiera que me ayuden porque yo hago cheques y quisiera que me quedara 1250.24= Mil docientos cincuenta 24/100

  928. 1139 Anónimo octubre 2, 2012 a las 10:32 pm

    GRACIAS AL AUTOR DE LA GUIA, ME SIRVIO MUCHISIMO, LO NECESITABA EN DOLARES Y SOLO CAMBIE EN LA MACRO PESOS POR DOLARES Y MN POR USD Y LISTO…..YA PUEDEN USARLO CON DOLARES…..GRACIAS NUEVAMENTE…..JSOLANO

  929. 1140 Anónimo octubre 6, 2012 a las 11:01 pm

    Hey, gracias el aporte… me ahorre la programacion. creo que no imaginabas que 5 años despues se te seguiria agradeciendo.

  930. 1141 luis octubre 7, 2012 a las 2:35 am

    para habilitar este macro en excel 2010 por que me aparece como nombre

    • 1142 SILVERIO FERNANDEZ octubre 8, 2012 a las 11:26 am

      Nuevamente te agradezco, y logre implementar la macro, no soy diseñador, pero vi tu trabajo y me gustó.un saludo pendiente de tus nuevos conocimientos.

  931. 1143 hugo octubre 10, 2012 a las 8:09 am

    Muchisimas gracias en verdad muy bueno

  932. 1144 SILVERIO FERNANDEZ octubre 10, 2012 a las 12:09 pm

    CONTADOR GONZALO GUSTO EN SALUDARLO, QUIERO PEDIRLE SI ES POSIBLE UNA MACRO PERO QUE NO SEA PARA MONEDA, SIMPLEMENTE PARA CONVERTIR NUMEROS A LETRAS, ESPERO SUS COMENTARIOS ESTA VIA O EN MI MAIL. DE ANTEMANO GRACIAS

  933. 1145 Anónimo octubre 11, 2012 a las 8:45 pm

    hola donde puedo descargar un manual para aprender todo esto de macros….gracias..

  934. 1146 frederick octubre 11, 2012 a las 8:46 pm

    holaaaaa donde puedo descargar un manual para aprender todo esto de macros como funciona etc…gracias

  935. 1147 YOLANDA octubre 12, 2012 a las 11:35 am

    MUCHISSSIMMMMAS GRACIAS HACE TIEMPO ESTABA TRATANDO DE HACERLO…,MUY UTIL Y FELICITACIONES SINCERAMENTE

  936. 1148 Anónimo octubre 12, 2012 a las 11:50 am

    Gonzalo_Conta….te felicito por compartir tus conocimientos,,,,excelente trabajo y sobre todo la explicacion, te mando un sincero saludo desde Chihuaha, Mexico,,,,un abrazo, y ojala existiera mas gente como tú…..

  937. 1149 Hugo César Ramírez (@RamrezCsar) octubre 15, 2012 a las 10:36 am

    Eternamente agradecido, tu explicación ha sido tan clara que sabiendo poco o nada de programación ya lo he cambiado a dólares y me ha funcionado muy bien.

  938. 1150 Gianna octubre 16, 2012 a las 4:29 pm

    MIL GRACIAS COTADOR, LE FELICITO POR SU EXPLICACION TAN CLARA PORQUE FUNCIONA EXCELENTE

  939. 1152 Gisella octubre 18, 2012 a las 11:17 am

    Muchísimas Gracias … sabia que existia, pero tu explicación paso a paso… fue simplemente genial !!

  940. 1153 Anónimo octubre 21, 2012 a las 11:55 am

    Facilisimo muchas gracias que buen trabajo….

    The Best – Colombia

  941. 1154 Anónimo octubre 22, 2012 a las 2:39 pm

    gracias fue muy facil con tu explicacion asi deberia ser todo facil

  942. 1155 Diego Freirei octubre 22, 2012 a las 3:42 pm

    Muchas gracias por tu aporte. Le hice unas pequeñas modificaciones y lo dejé tal como yo lo necesitaba.

  943. 1156 Anónimo octubre 23, 2012 a las 12:17 am

    HERMANO MUCHISIMAS GRACIAS, ME SIRVIO MUCHISIMO …..SALUDOS DE CORAZA!!!

  944. 1157 myVideo converter online octubre 23, 2012 a las 3:38 am

    Wow, awesome blog layout! How long have you been blogging for?
    you make blogging look easy. The overall look of your website is great, let alone the content!

  945. 1158 Oscar Sanchez octubre 23, 2012 a las 6:13 pm

    Hola, primero gracias por el aporte funciona muy bien, le hice unas modificaciones pero me interesa hacer una que no puedo, la cantidad me sale asi:
    ( CINCO MIL TRESCIENTOS TREINTA Y SEIS PESOS 00/100 M.N.)
    me gustaria que el parentesis estuviera pegado a la primer letra osea asi (CINCO MIL TRESCIENTOS TREINTA Y SEIS PESOS 00/100 M.N.)

    Se que es poco pero es solo por estetica del documento, y ya por ultimo no se me queda grabada la función, yo uso office 2007 y por mas que he buscado no lo logro, si funciona en el libro en el que lo puse, pero si abro uno nuevo no, espero me puedas ayudar ya sea por aqui o por mi mail, saludos y nuevamente gracias por el aporte.

  946. 1160 Christian Castellanos octubre 23, 2012 a las 6:34 pm

    Muy funcional, pero que tendria que modificar si no quiero que me de las cantidades en moneda, sino simplemente la cantidad como lo mencionas en tu ejemplo:

    23 = Veintitrés

    Sin mas ni mas?

    De antemano muchas Gracias.

    Saludos y Felicitaciones.

  947. 1161 betto octubre 25, 2012 a las 12:11 pm

    SI FUNCIONA Y MUY BIEN, palitroche

  948. 1162 Ricardo León Yepes Uribe octubre 27, 2012 a las 12:13 pm

    Excelente aporte :
    De antemano muchas Gracias.

    Saludos y Felicitaciones.

  949. 1163 Omar Alonso Manzano Cháidez octubre 27, 2012 a las 10:11 pm

    A todos los interesados, tengo una hoja de excel (no es macro), que les hace la conversión de número a letra, hiperfácil de usar, y sobre todo que pueden observar las fórmulas utilizadas. El límite superior que utilicé fue $999,999,999.99, pero por supuesto que se puede ampliar. A todo aquel que se interese se lo puedo enviar gratuito, solo les pido que me citen y me den el crédito en sus trabajos si les llega a ser útil. Saludos desde Durango, México.

  950. 1167 German R. octubre 31, 2012 a las 2:34 pm

    Estimado. como lo puedo modificar para que en cantidades menores a $1.00 me devuelva algo asi como: $0.50 = «50/100 de Pesos M.N.» en lugar de el actual «Pesos 50/100 M.N.»

  951. 1168 Omar Alonso Manzano Cháidez noviembre 1, 2012 a las 11:44 pm

    De nueva cuenta, y a todos los interesados, adicional a la hoja de cálculo que hace la conversión de números a letra, también estoy trabajando y ya prácticamente la terminé, una hoja de cálculo que convierte coordenadas UTM a Geodésicas y viceversa. Estoy incluyendo en ella los elipsoides de referencia más utilizados (20 elipsoides), donde por supuesto aparecen el WGS84 y el ITRF92. Se basa en el formulario de traslación desarrollado por Molodensky. A todo aquel que se interese se lo puedo enviar gratuito, solo les pido que me citen y me den el crédito en sus trabajos si les llega a ser útil. Saludos desde Durango, México.

  952. 1169 SILVERIO FERNANDEZ noviembre 2, 2012 a las 10:22 am

    Muy agradecido Omar por tus aportaciones, continuamos en comunicación.

  953. 1170 Erick Galarza noviembre 3, 2012 a las 10:35 am

    Este macro lo uso para todo, cantidad de botellas, cajas, con una pequeña modificacion y claro importes en moneda de mi pais, gracias.

  954. 1171 SILVERIO FERNANDEZ noviembre 3, 2012 a las 1:17 pm

    Erick, como queda la macro para cajas, y sin monedas. gracias

    • 1172 Omar Alonso Manzano Cháidez noviembre 3, 2012 a las 8:19 pm

      Acabo de enviarle a Silverio la hoja de Cálculo que resuelve sus dudas. Para los que amamos Excel, creo yo que se deben de resolver con las mismas herramientas que nos proporciona el programa. Estoy abierto para todos aquellos que tengan dudas acerca de la programación en Excel. Saludos desde Durango, México.

      • 1173 SILVERIO FERNANDEZ noviembre 4, 2012 a las 8:27 am

        Excelente trabajo Omar, en hora buena felicidades, muy profesional y sobre todo muy bien explicada tu hoja de calculo.Continúa cosechando éxitos.

  955. 1174 Roberto Alvarez Mendoza noviembre 4, 2012 a las 5:40 pm

    excelente, gracias por su ayuda

  956. 1175 N@r noviembre 5, 2012 a las 2:53 pm

    Excelente muchas gracias tenia esa duda de tiempo atras gracias por ayudar muy bien explicado

  957. 1176 Anónimo noviembre 7, 2012 a las 4:41 pm

    Muchas gracias!!!!!

  958. 1177 Anónimo noviembre 7, 2012 a las 10:04 pm

    Excelente tu explicacion y funciona a la perfeccion. MIL GRACIAS

  959. 1178 Emilio Vicencio garcia noviembre 10, 2012 a las 6:50 pm

    Por ejemplo, si quiero que la calificacion de un alumno que es de 9.5 aparezca de la siguiente manera (Siete Punto Cinco), como le podria hacer?
    No quiero que aparezca pesos moneda nacional.

    • 1179 Oscar Sanchez noviembre 10, 2012 a las 7:17 pm

      Perdón no me pude contener, pero si quieres que una calificación de 9.5 aparezca como siete punto cinco estarías siendo un mal maestro jajajaja perdón de nuevo.

    • 1180 Omar Alonso Manzano Cháidez noviembre 11, 2012 a las 11:49 am

      Es muy sencilla de modificar la hoja de cálculo, solo dime que requieres UNO o DOS decimales, ya que si son dos decimales aparecería como nueve punto cincuenta, y es obvio de que si es solo uno, diría nueve punto cinco. Tú decides. Saludos desde Durango, México.

  960. 1181 Jose Manuel Abascal noviembre 14, 2012 a las 11:16 am

    Me sirvio mucho, gracias por la formula…

  961. 1182 ingris noviembre 14, 2012 a las 2:45 pm

    hola, estoy tratando de habilitar la macro pero me pide que copie el codigo pero no se donde lo encontrarlo =( gracias..!

  962. 1183 FARRELL noviembre 14, 2012 a las 5:51 pm

    ERES EL MEJOR!
    GRACIAS!!!!

  963. 1184 ABEL MENDEZ noviembre 14, 2012 a las 8:43 pm

    MUCHAS GRACIAS!!!! DIOS Y EL UNIVERSO CONSPIRAN A TU FAVOR EN TODOS TUS PROPOSITOS!!!!

  964. 1185 SILVERIO FERNANDEZ noviembre 15, 2012 a las 11:00 am

    Omar manzano: He de agradecerte si me puedes enviar la hoja de calculo que te pedi por correo, de antemano muchas gracias y tus conocimientos ya somos un sinnumero de personas que estamos agradecidos.

  965. 1186 Anónimo noviembre 15, 2012 a las 11:44 am

    Muchas gracias mi amigo. Habia visto muchas funciones parecidas, pero hasta ahora ninguna me habia funcionado.
    Nuevamente, gracias por tu aportacion.

  966. 1187 Adri noviembre 15, 2012 a las 3:12 pm

    muchas gracias, esta super facil!!! solo tengo una preguntita!! como le hago para que no aparezca ( SON:) gracias…

  967. 1188 IVONNE noviembre 18, 2012 a las 11:24 pm

    NO HAY MUCHAS PALABRAS…. GRACIAS , FELICIDADES Y ESPERO QUE TUS BUENAS OBRAS (ES DECIR LAS PUBLICACIONES DESINTERESADAS) SEAN RECOMPENSADAS AL 100% DE NUEVO GRACIAS Y SUERTE EN TUS FUTUROS PROYECTOS

  968. 1189 Anónimo noviembre 19, 2012 a las 3:11 pm

    muy bueno el aporte gracias

  969. 1190 Anónimo noviembre 20, 2012 a las 6:11 pm

    excelente la informacion, lo aplicable y me es de mucha utlidad… gracias …

  970. 1191 Anónimo noviembre 21, 2012 a las 6:00 pm

    muy buena aporte saludos nos sirvio de mucho

  971. 1192 Richard noviembre 21, 2012 a las 7:00 pm

    Sorprendente! ya van 5 años del post y todavia lo seguimos usando!, el problema mio es éste, cada vez que quiero modificar alguno que encuentro o solo pegar los codigos que en su lista estan, no me sale, mi office 2007 me sale #¿NOMBRE? a veces no escriben las claves para que funcione, en micaso es en nuevos soles, Gracias Gonzalo.

  972. 1193 Ulises noviembre 22, 2012 a las 3:19 pm

    Extraordinario, el mejor que encontre.
    Gracias por tu gran aporte, no importa el tiempo que lleva
    sigue siendo la mejor solucion.

  973. 1194 Bayardo Mendoza noviembre 22, 2012 a las 3:55 pm

    Me ha sido de mucha utilidad, te estoy eternamente agradecido.

  974. 1195 Anónimo noviembre 22, 2012 a las 4:57 pm

    como guardo la macro en excel 2010

  975. 1197 raul noviembre 23, 2012 a las 2:11 pm

    Gonzalo, como puedo tener en un mismo libro MN y Dolares,?

  976. 1199 JOSE noviembre 26, 2012 a las 9:59 pm

    QUIERO PONER UNA LETRA A UN VALOR QUE ESTE ENTRE 135 -144 COMO LE PUEDO HACER UN EJEMPLO C1 139 C4 B

  977. 1200 SERGIO RINCON noviembre 28, 2012 a las 11:09 am

    GRACIAS HACE RATO ESTABA BUSCANDO ALGO ASI

  978. 1201 Anónimo noviembre 28, 2012 a las 12:06 pm

    excelente esto es exactamente lo que estaba buscando. mchas Gracias Gonzalo

  979. 1202 Anónimo noviembre 28, 2012 a las 11:15 pm

    muchisisisisisimas gracias mies estimado tenia muchos años buscando esto, mil mil mil gracias. de verdad mil gracias

  980. 1203 sugin noviembre 29, 2012 a las 2:55 pm

    hola
    gracias por compartir tu macro tengo una pregunta yo soy de Chile y aquí se usa el peso por lo que al escribir la cifra de $1.000 pesos me aparece un mil pesos pero aquí no se escribe así debería decir solo mil pesos como puedo modificar y lo otro para cuando uno escribe en millones como por ejemplo $1.000.000 pesos en el macro aparece solo un millón pesos y debería ser un millón de pesos como lo puedo cambiar por favor ayúdame plisss

  981. 1204 Jose Antonio Gonzalez noviembre 30, 2012 a las 12:05 pm

    Master!!!! Gracias por el aporteeee!!! Saludos…

  982. 1205 Nancy14 diciembre 2, 2012 a las 12:11 am

    Gracias Gonzalo_conta, esto me sirvió muchísimo, sólo tuve que modificar el código para que no dijera «SON» y me sirviera para Colombia y listo. También me sirvió mucho la explicación de Tavo sobre guardar el documento como complemento y habilitarlo desde opciones de Excel para poder usarlo en todos los libros nuevos que hago. Gracias, mil gracias.

  983. 1206 Jose Luis diciembre 3, 2012 a las 6:55 pm

    Excelente función, haces que sea super fácil, agradecimiento también a los autores.

  984. 1207 Felipe diciembre 5, 2012 a las 12:53 am

    Que excelente aporte. Me salvó de horas de investigación. Felicitaciones al autor o autores y al colaborador que la propuso en este sitio.

  985. 1208 Anónimo diciembre 7, 2012 a las 10:30 am

    Excelente trabajo. pero sobre todo mil gracias por tu aporte. Saludos

  986. 1209 jose guadalupe duran romero diciembre 13, 2012 a las 9:51 pm

    BUENAS NOCHES MI NOMBRE ES JOSE GUADALUPE SOY PROFESOR DE UNA ESCUELA PRIMARIA PERO TENGO QUE ENTREGAR UNA LISTA DE CALIFICACIONES CON NUMEROS DEL 5 AL 10, PERO ACTUALMENTE ME PIDEN UNA LISTA MAS DONDE LAS CALIFICACIONES 10 Y 9 SEAN A, 8 SEA B, 7 Y 6 SEA C Y 5 SEA D EN OTRA LISTA COMO LE PUEDO HACER PARA NO HACER DOBLE TRABAJO SINO UNO SOLO Y EN LA OTRA LISTA DE MANERA AUTOMATICA APAREZCAN LAS LETRAS, SE LO AGRADECERIA MUCHAS GRACIAS

  987. 1210 REFUGIO MUNGUIA diciembre 13, 2012 a las 10:23 pm

    GRACIAS ES UNA MACRO MUY SENCILLA Y FUNSIONABLE, LO HICE RAPIDO Y ME SIRVIO

  988. 1211 Juan Carlos Grandio diciembre 17, 2012 a las 7:48 pm

    Hola, segui las instrucciones y solo me aparece M.N.) en el lugar donde debiera de aparecer la cantidad.
    Que podre estar haciendo mal? uso el office 2010.
    Gracias

    • 1212 Carlos diciembre 19, 2012 a las 6:49 pm

      Hola mi estimado Juan Carlos, seguramente no has direccionado la celda numérica, en el ejemplo aparece =»PesosMN(A1)» lo que parece que falta es que en lugar de A1, le pongas la celda donde tienes la cantidad numérica. por ejemplo, si el número que quieres convertir esta en la D50, solo deberás sustituir la A1 por la D50.

      Espero te sirva

      Saludos

  989. 1213 Gidget diciembre 21, 2012 a las 5:56 am

    Hi there to all, for the reason that I am actually eager of reading this
    webpage’s post to be updated regularly. It carries fastidious information.

  990. 1214 Diego diciembre 24, 2012 a las 10:51 am

    me ha servido mucho, Gracias

  991. 1215 josue diciembre 26, 2012 a las 1:12 pm

    ola oye como le hago para que no tenga que hacer todo el procedimiento en cada uno de los formatos de excel solo hacerlo una sola vez y ya ojala me puedas contestar me urge y gracias

  992. 1216 Edgar Luna diciembre 29, 2012 a las 5:35 am

    Muchas gracias por la aportacion, funciona muy bien.

    Saludos

  993. 1217 clarisa enero 5, 2013 a las 6:50 pm

    muchas gracias, me sirve bien aunque hice cambios porque necesitos los numeros en ingles, solo que sigo con problemas al guardar como Libro de Excel abilitado para macros (Excel7) cuando la buelvo abrir me dice #¿nombre?, no se que tengo que hacer antes. espero me ayudes. gracais

  994. 1219 Anónimo enero 9, 2013 a las 1:24 pm

    Muchas gracias por su ayuda; muy clara y completa; el detalle del palitroche de Pita, sí, lo recuerdo, encantador gesto. Saludos.

  995. 1220 Rocio enero 10, 2013 a las 9:12 am

    Excelente ayuda! felicitaciones, esto es lo que hace el internet interesante y de mucho provecho!!!

  996. 1221 juan enero 13, 2013 a las 2:10 pm

    como le podria hacer para que lo marque en 2 lineas de una misma celda
    es decir que me de hasta la cantidad y desde pesos en otro renglon o celda

  997. 1222 alex enero 21, 2013 a las 5:43 pm

    excelente!! muchas gracias!! me fue de mucha utilidad!!

  998. 1224 Anónimo enero 23, 2013 a las 11:05 am

    Excelente ayuda, y veo que por mucho tiempo ha funcionado

  999. 1225 David Gonzaleez enero 30, 2013 a las 4:00 pm

    es calida hacer eso

  1000. 1226 Javier enero 31, 2013 a las 12:55 pm

    HOLA TAVO COMO HABILITO LOS MACROS TENGO EXCEL 2010,, SALUDOS

  1001. 1228 Anónimo febrero 2, 2013 a las 11:32 am

    MUCHISIMAS GRACIAS, ME VA A YUDAR MUCHISIMO!!!

  1002. 1229 shayara febrero 7, 2013 a las 3:19 pm

    Gracias por tu aportacion ya lo instale esta increible, estoy feliz por facilitarme este programita tan especial

  1003. 1230 Anónimo febrero 15, 2013 a las 12:15 pm

    muchas gracias por compartir, te agradezco en infinito

  1004. 1231 Anónimo febrero 16, 2013 a las 7:17 pm

    Pocas veces coloco mi comentario en la Web, pero realmente el agradecimiento lo vale. Excelente trabajo, Gracias por Compartirlo

  1005. 1233 Aracelly febrero 19, 2013 a las 4:45 pm

    Gracias… funciona excelente… me han sacado de un apuro administrativo.

  1006. 1234 Anónimo febrero 22, 2013 a las 5:51 pm

    Perfecto, funciona de Maravilla.
    Saludos

  1007. 1235 R2D2 febrero 24, 2013 a las 10:20 pm

    Sorprende que este trabajo lo compartas de este modo, como podemos remunerarte , creo que es lo justo, saludos

  1008. 1236 Anónimo febrero 25, 2013 a las 2:20 am

    excelentisimo!!!! gracias.

  1009. 1237 LEIDY SUAREZ febrero 25, 2013 a las 5:21 pm

    HOLA TAVO ME PODRIAS AYUDAR ES QE HAGO TODO EL PROCESO Y ME APARECE #NOMBRE
    HAY QUE PUEDO HACER GRACIAS

  1010. 1238 Karina Romero febrero 28, 2013 a las 11:35 am

    Chicos, necesito de su ayuda!!! Hice el procedimiento y todo salió perfecto, pero al querer eliminar la palabra «SON» para que solo saliera la cantidad, no se que hice que ahora en lugar de hacer la conversión me aparece #¿NOMBRE? y al intentar hacer el procedimiento nuevamente sin quitarle nada, ya no se puede… que hago?

  1011. 1239 Anónimo marzo 9, 2013 a las 12:22 pm

    Muchas gracias fue de gran utilidad y facil de instalar.

  1012. 1240 LEONARDO FLORES marzo 9, 2013 a las 9:16 pm

    CHIDO CARNAL TE LO AGRADEZCO CREEME SI TE CONOCIERA TE PAGO UNOS 100 O MAS. SALUDOS

  1013. 1242 Anónimo marzo 13, 2013 a las 10:45 am

    Muy bueno tu codigo, una pregunta como hacer para enviar el resultado en
    negrita

  1014. 1243 Heberto Villegas marzo 13, 2013 a las 5:42 pm

    Excelente muy bien explicado y de mucha ayuda, gracias por compartir sus conocimientos.
    Saludos.

  1015. 1244 Anónimo marzo 14, 2013 a las 12:49 am

    GRACIAS MUCHAS GRACIASSSSS

  1016. 1245 Yali marzo 16, 2013 a las 10:46 pm

    Excelente mi tutora me lo sugirió y me fue super, había ensayado otros que encontré en la web y no tuve resultado

  1017. 1246 Anónimo marzo 17, 2013 a las 12:00 am

    GRACIAS Amigo…. Excelente

  1018. 1247 Anónimo marzo 19, 2013 a las 1:26 pm

    Gracias! rápido y fácil. Muy buen aporte. saludos!!

  1019. 1248 patty marzo 20, 2013 a las 1:48 pm

    GONZALO UNA PREGUNTA DISCULPA CUANDO ESCRIBO EN No. 16,17,18 Y 19 ME LO CONVIERTE ASI EJ. (DIECISEIS, DIECISIETE, DIECIOCHO, DIECINUEVE) Y YO QUIERO QUE ME LO SEPARE EJ. (DIEZ Y SEIS, DIEZ Y SIETE) ME PUEDES AYUDAR A MODIFICAR LA FORMULA, TE LO AGRADECERIA MUCHICIMO, GRACIAS

  1020. 1249 Yeimar marzo 21, 2013 a las 9:08 am

    Muchas muchas gracias me no sabes una explicacion bien hecha cuanto le sirve a las persona

  1021. 1250 Anónimo marzo 21, 2013 a las 10:54 pm

    Muchas gracias, no se requiere grandes explicaciones cuando se es conciso Saludos

  1022. 1251 Gbetus marzo 22, 2013 a las 12:59 pm

    Muchas gracias, es algo que necesitaba

  1023. 1252 Gbetus marzo 22, 2013 a las 1:00 pm

    Reblogged this on Gbetus and commented:
    Está es una buena solución para «Convertir Números a letras en Excel»

  1024. 1253 paco cueto abril 4, 2013 a las 12:34 pm

    hola buen dia me pueden ayudar es que ayer realice el procedimiento y funciono bien pero hoy que abri el archivo ya me aperece ¿nombre me podrian explicar que hay que hacer please

  1025. 1255 Anónimo abril 5, 2013 a las 7:51 am

    LA REMIL PUTA MADRE Q TE RE PARIO… NO ENTIENDO UNA GUASCA

  1026. 1256 AKBAL abril 9, 2013 a las 8:02 pm

    EXCELENTE, UNA EXPLICACIÓN SENCILLA Y FUNCIONA MUY BIEN, GRACIAS.

  1027. 1257 MAURO abril 10, 2013 a las 12:13 pm

    GRACIAS MIL, ENORME APORTACIÓN…!!

    • 1258 David Ruiz abril 12, 2013 a las 3:30 pm

      Un cordial saludo. Tengo una situación la cual quiero consultarle a ver de que forma se puede solucionar.

      Resulta que tengo una hoja de cálculo programada para llevar mi asistencia en mi trabajo. Me contabiliza horas trabajadas cuando es de am a pm, sin embargo

      Cuando necesito que me contabilice de pm hacia am me da error.

      Adjunto copia de las formulas para que puedas ver lo que te quiero decir.

      Se que cuando se refiere de 6pm a 2 am, corresponde al día siguiente, pero quisiera programarla para que en ese mismo renglón me identifique que se han laborado 8 horas.

      Gracias.

  1028. 1259 eliana pérez abril 16, 2013 a las 8:08 pm

    Buenas noches, en verdad es una excelente exolicación hasta hoy todo muy bn, pero hoy estoy tratandolo de hacer con excel 2011 en mac y m sale #NOMBRE?, por ams que le hago no pude.. les agradezco m ayuden..:( mi correo es elianak118@hotmail.com

  1029. 1260 handy fishing abril 19, 2013 a las 7:33 am

    Your method of explaining the whole thing in this piece of writing is truly pleasant, all
    be able to effortlessly understand it, Thanks a lot.

  1030. 1261 GUILLERMO ALEJANDRO COLLADO FRIAS abril 19, 2013 a las 7:42 pm

    MUY BUEN APORTE, GRACIAS POR COMPARTIR

  1031. 1262 Albertina abril 22, 2013 a las 10:03 am

    Unquestionably believe that which you said.
    Your favorite reason appeared to be on the web the simplest thing to be aware of.
    I say to you, I certainly get irked while people consider worries that they plainly do not know about.
    You managed to hit the nail upon the top as well as defined out the whole thing without having
    side effect , people could take a signal. Will likely be
    back to get more. Thanks

  1032. 1263 Anónimo abril 22, 2013 a las 2:44 pm

    Muy útil, de antemano gracias!

  1033. 1264 Anónimo abril 23, 2013 a las 11:01 am

    Un codigo que todo el mundo lo usa.
    Muy practico, gracias.

  1034. 1265 alvaro Armando Barrios abril 23, 2013 a las 1:58 pm

    Muchas gracias, fijate que yo lo he usado en Excel, pero lo necesito en Access, gracias.

  1035. 1266 Anónimo abril 24, 2013 a las 2:21 pm

    Muchas muchas gracias la verdad que me gusto mucho el programa te felicito

  1036. 1267 MjBRLZ abril 25, 2013 a las 9:12 am

    HOLA, PARA LOS QUE HICIERON FUNCIONAR LA FORMULA Y LUEGO DE UN RATO LA MAQUINA LES DA ERROR (#NOMBRE?) YO LO SOLUCIONE, HABILITANDO LOS MACROS DESDE CONFIGURACIÓN DEL CENTRO DE CONFIANZA (consultar ayuda en el programa utilizado y los guía paso a paso) LUEGO DE HABILITARLOS, HAY QUE CERRAR EL PROGRAMA Y VOLVER A ABRIRLO Y LISTO, YA FUNCIONAL NORMALMENTE LA FORMULA.-

  1037. 1268 Anónimo abril 25, 2013 a las 5:44 pm

    Excelente… justo lo que buscaba.

  1038. 1269 Carlos abril 27, 2013 a las 1:27 am

    EXCELENTE APORTE!! MUCHAS GRACIAS

  1039. 1270 escuela primara en guadalajara abril 27, 2013 a las 12:45 pm

    Howdy, i read your blog occasionally and i own a similar
    one and i was just wondering if you get a lot of spam responses?
    If so how do you reduce it, any plugin or anything you can suggest?
    I get so much lately it’s driving me insane so any assistance is very much appreciated.

  1040. 1271 Yessica Vasquez abril 30, 2013 a las 2:34 pm

    QUE BUENA FUNCION, ME ENCANTO Y FACILITARA MUCHO MI TRABAJO

  1041. 1272 Jose Raul May 1, 2013 a las 12:34 am

    Gracias por la gran aportacion,.

  1042. 1273 Jairo A. Molina May 2, 2013 a las 4:24 pm

    Señor Gonzalo, muchísimas gracias por su labor tan generosa de compartir conocimiento.
    Ya leí todos los comentarios en esta página y encontré que varias personas hicieron la misma pregunta:
    Como hacer que la fórmula escriba 1.000.000 = «Un Millón DE pesos», en lugar de «Un millón pesos».
    Sin embargo, en ningún lugar encontré que usted resolviera esta duda.

    Muchas gracias, Jairo de Colombia

  1043. 1274 Anónimo May 3, 2013 a las 10:08 am

    Gracias, me ha servido mucho!! muy clara tu explicacion

  1044. 1275 Beto May 10, 2013 a las 11:57 am

    Gracias!
    Que interesante que el post es del 2007 y muchos te estemos comentando en 2013, jaja
    Otro aporte: en Excel 2007 hay que guardar el libro como «Habilitado para macros» (.XLSM) porque si lo guardas normal (.XLSX) se pierde el código y no se puede usar la función.

  1045. 1276 Anónimo May 13, 2013 a las 1:44 pm

    No cabe duda eres genial !
    Me funcionó de maravilla
    Gracias !!

  1046. 1277 EMILIANO May 17, 2013 a las 4:07 pm

    DE MARAVILLA ERES EL MEJOR, SE PUEDE ADECUAR A CUALQUIER MONEDA LO PUDE HACER CON NUEVOS SOLES ACA EN PERU

  1047. 1278 Jairo A. Molina May 17, 2013 a las 4:24 pm

    Señor Gonzalo, muchísimas gracias por su labor tan generosa de compartir conocimiento.
    Ya leí todos los comentarios en esta página y encontré que varias personas hicieron la misma pregunta:
    Como hacer que la fórmula escriba 1.000.000 = “Un Millón DE pesos”, en lugar de “Un millón pesos”.
    Sin embargo, en ningún lugar encontré que usted resolviera esta duda.

    Muchas gracias, Jairo de Colombia

    • 1279 Argelio Victoria May 19, 2013 a las 8:43 pm

      EXCELENTE PARA QUE APAREZCA 1 MILLÓN DE PESOS HAY QUE MODIFICAR LA MACRO EN SU ESTRUCTURA Y AGREGAR LA PALABRA «DE» EN «MILLÓN Y MILLONES.
      GRACIAS POR COMPARTIR ESTE CONOCIMIENTO.
      FALTA AGREGAR COMO GUARDAR ESA MACRO EN QUE FORMATO Y COMO PODER UTILIZARLA EN TODOS LOS LIBROS DE EXCEL PERO ES EXCELENTE. GRACIAS

      • 1280 Jairo A. Molina May 19, 2013 a las 9:30 pm

        Gracias Argelio, pero si fuese asi de sencillo, no hubiera preguntado. Si se hace lo que tu aconsejas, entonces en todas las instancias donde aparezca la palabra millón, saldrá «millón de», x ejemplo: 1250000= un millon de doscientos cincuenta mil. L q hay q hacer es agregar un nuevo «loop» para las excepciones donde se necesita «millon de». El problema es q no me acuerdo como se hace. Alguien puso una macro mejorada con ese loop, pero me dio muchos errores y no sirvió. Alguien ya arregló el problema?

  1048. 1281 imelda lucio May 29, 2013 a las 11:33 am

    Hola necesito hacer un macro pero tengo el 2013 como lo pueo hacer, necesito convertir los numeros en letras me podrian ayudar ???

  1049. 1282 Anónimo junio 1, 2013 a las 6:09 pm

    como les va?

    me gustaria que me dijeran una macro para que a una letra le corresponda un horario.

    por ejemplo, si en B1 tengo N, en C1 que me devuelva 22:00/06:00

    gracias.

  1050. 1284 Anónimo junio 6, 2013 a las 11:55 pm

    Muchas gracias, muy útil.

  1051. 1285 esther junio 12, 2013 a las 12:43 pm

    Muchisima gracias y en efecto solo el tuyo esta clarisimo y sobre todo que va paso por paso y con imagenes, mil bendiciones

  1052. 1286 Harinera Santa Marta junio 13, 2013 a las 2:06 pm

    Gracias Gonzalo.

  1053. 1288 Enrique Guerrero junio 17, 2013 a las 1:53 pm

    Hola saludos desde Venezuela, me gustaria saber si ese paso de conversion es posible para word

  1054. 1289 Anónimo junio 22, 2013 a las 3:58 pm

    Excelente tu aporte.Me funciono de maravilla. Gracias

  1055. 1290 Claumary junio 24, 2013 a las 1:38 pm

    De verdad muy buen aporte si funciona, gracias.

  1056. 1291 Anónimo junio 24, 2013 a las 8:12 pm

    GRACIAS AMIGO POR TU AYUDA

  1057. 1293 Anónimo junio 25, 2013 a las 5:10 pm

    De lujo tu aporte esta muy funcional, sobre todo por que explicas la manera de aplicarlo a todos los archivos de Excel. Gracias!!!

  1058. 1294 Anónimo julio 3, 2013 a las 12:23 pm

    Gracias muy util y facil la forma de transmitir la informacion. Rapido lo consegui!!!!

  1059. 1295 Anónimo julio 3, 2013 a las 3:23 pm

    Gracias mil!!!

  1060. 1296 Miguel Peña julio 6, 2013 a las 11:50 am

    EXLENETE!!! gracias por la ayuda

  1061. 1297 Anónimo julio 6, 2013 a las 2:18 pm

    Excelente! Sencillo de instalar, gracias mil por el aporte

  1062. 1298 Gerardo julio 8, 2013 a las 5:56 pm

    EXCELENTE ME AYUDO Y SIRVIO MUCHO GRACIAS

  1063. 1299 Anónimo julio 9, 2013 a las 1:57 pm

    excelente, mil gracias super chido

  1064. 1300 Jesus Ramon julio 11, 2013 a las 10:56 pm

    Excelente macro Saludos

  1065. 1301 Nalleli julio 17, 2013 a las 2:16 pm

    Hola, como puedo quitar la palabra SON: y que solo aparezca la cantidad, muchas graacias por la ayuda, esta explicado excelentemente bien

  1066. 1303 Pachi julio 17, 2013 a las 3:28 pm

    Gracias!! Todo muy claro,,, y funciona bien,
    saludos

  1067. 1304 Anónimo julio 23, 2013 a las 5:03 pm

    hola muy buena explicación, todo funciona menos con cantidades grandes como por ejemplo:
    $2,794,410,069.25
    me sale el siguiente error:
    #¡VALOR!
    ME PODRAN AYUDAR?

    GILBERTO.

  1068. 1305 GILBERTO julio 23, 2013 a las 5:26 pm

    hola muy bueno tu aportación, pero en cantidades grandes no me sale los resultados, por ejemplo te doy un numero $2,794,410,069.25 , como resultado me sale lo siguiente:
    #¡VALOR!
    sabrán por que?

    saludos.

  1069. 1306 EDGAR julio 24, 2013 a las 10:18 am

    MUY BIEN, EXCELENTE AYUDA.

  1070. 1307 fernando julio 30, 2013 a las 5:51 pm

    Mis respetos Gonzalo_Conta, facil y bien explicado.

  1071. 1308 Rubén agosto 9, 2013 a las 4:56 pm

    Excelente, Gonzalo, muchas gracias por la ayuda. espero poder corresponder sus aportaciones con otras tantas… aunque apenas estoy empezando con esto de la tecnologia…

  1072. 1309 Anónimo agosto 10, 2013 a las 12:23 pm

    super genial!! grazie!

  1073. 1310 Rick Hawk agosto 12, 2013 a las 12:36 pm

    Buen dia,

    Yo encontré este que me parece muy bueno pero solo trabaja hasta 999.999,99, se puede mejorar para llegar a millones.

    Gracias

    ‘————————————-
    Public i

    Function num2let(importe)
    If importe = 1 Then Final = » peso» Else Final = » pesos»
    If importe > 999 Then num2let = num2letras(Int(importe / 1000)) + » mil »

    num2let = num2let + num2letras(importe – Int(importe / 1000) * 1000) + Final

    If Int(importe) = 0 Then num2let = «cero pesos»

    If importe Int(importe) Then
    num2let = num2let + » con » + num2letras((importe – Int(importe)) * 100) + » centavos.»
    End If
    End Function

    Function num2letras(importe)
    ‘Pasa de numero a letras, importes entre 0 y 999

    ‘Centena —————————————-
    centena2 = Int(importe / 100)
    Select Case centena2
    Case 0: num2letras = «»
    Case 1: num2letras = «cien»
    Case 2: num2letras = «doscientos»
    Case 3: num2letras = «trescientos»
    Case 4: num2letras = «cuatrocientos»
    Case 5: num2letras = «quinientos»
    Case 6: num2letras = «seiscientos»
    Case 7: num2letras = «setecientos»
    Case 8: num2letras = «ochocientos»
    Case 9: num2letras = «novecientos»
    End Select

    ‘Decena ———————————————-
    decena2 = Int((importe – centena2 * 100) / 10)
    If centena2 = 1 Then num2letras = num2letras + «to»
    Select Case decena2
    Case 1: num2letras = num2letras + » diez»
    Case 2: num2letras = num2letras + » veinte»
    Case 3: num2letras = num2letras + » treinta»
    Case 4: num2letras = num2letras + » cuarenta»
    Case 5: num2letras = num2letras + » cincuenta»
    Case 6: num2letras = num2letras + » sesenta»
    Case 7: num2letras = num2letras + » setenta»
    Case 8: num2letras = num2letras + » ochenta»
    Case 9: num2letras = num2letras + » noventa»
    End Select

    ‘Unidad ———————————————-
    unidad2 = Int((importe – centena2 * 100 – decena2 * 10))
    If decena2 = 0 Then
    ‘num2letras = Mid(num2letras, 1, Len(num2letras) – 6)
    Select Case unidad2
    ‘Case 0: num2letras = num2letras + » cero»
    Case 1: num2letras = num2letras + » un»
    Case 2: num2letras = num2letras + » dos»
    Case 3: num2letras = num2letras + » tres»
    Case 4: num2letras = num2letras + » cuatro»
    Case 5: num2letras = num2letras + » cinco»
    Case 6: num2letras = num2letras + » seis»
    Case 7: num2letras = num2letras + » siete»
    Case 8: num2letras = num2letras + » ocho»
    Case 9: num2letras = num2letras + » nueve»
    End Select
    End If

    If decena2 = 1 Then
    num2letras = Mid(num2letras, 1, Len(num2letras) – 4)
    Select Case unidad2
    Case 0: num2letras = num2letras + » diez»
    Case 1: num2letras = num2letras + » once»
    Case 2: num2letras = num2letras + » doce»
    Case 3: num2letras = num2letras + » trece»
    Case 4: num2letras = num2letras + » catorce»
    Case 5: num2letras = num2letras + » quince»
    Case 6: num2letras = num2letras + » diceciseis»
    Case 7: num2letras = num2letras + » diecisiete»
    Case 8: num2letras = num2letras + » dieciocho»
    Case 9: num2letras = num2letras + » diecinueve»
    End Select
    End If

    If decena2 = 2 Then
    If unidad2 0 Then num2letras = Mid(num2letras, 1, Len(num2letras) – 6)
    Select Case unidad2
    Case 1: num2letras = num2letras + » veintiun»
    Case 2: num2letras = num2letras + » veintidos»
    Case 3: num2letras = num2letras + » veintitres»
    Case 4: num2letras = num2letras + » veinticuatro»
    Case 5: num2letras = num2letras + » veinticinco»
    Case 6: num2letras = num2letras + » veintiseis»
    Case 7: num2letras = num2letras + » veintisiete»
    Case 8: num2letras = num2letras + » veintiocho»
    Case 9: num2letras = num2letras + » veintinueve»
    End Select
    End If

    If decena2 > 2 Then
    Select Case unidad2
    Case 1: num2letras = num2letras + » y un»
    Case 2: num2letras = num2letras + » y dos»
    Case 3: num2letras = num2letras + » y tres»
    Case 4: num2letras = num2letras + » y cuatro»
    Case 5: num2letras = num2letras + » y cinco»
    Case 6: num2letras = num2letras + » y seis»
    Case 7: num2letras = num2letras + » y siete»
    Case 8: num2letras = num2letras + » y ocho»
    Case 9: num2letras = num2letras + » y nueve»
    End Select
    End If

    If importe = 100 Then num2letras = «cien»
    End Function

    • 1311 Rick Hawk agosto 12, 2013 a las 2:53 pm

      De nuevo yo, disculpen pero me apasione buscando y logre dar con lo que necesitaba.
      Muchas gracias a su autor http://www.elguille.info.
      la formula queda como numero2letra.

      Option Explicit
      Option Compare Text

      ‘Declaradas a nivel de módulo
      Dim unidad(0 To 9) As String
      Dim decena(0 To 9) As String
      Dim centena(0 To 10) As String
      Dim deci(0 To 9) As String
      Dim otros(0 To 15) As String

      Private m_Sexo1 As String
      Private m_Sexo2 As String
      Private m_LenSexo1 As Long

      Public Enum eSexo
      Femenino ‘= 0
      Masculino ‘= 1
      End Enum

      Public Function Numero2Letra(ByVal strNum As String, _
      Optional ByVal Lo As Long = 0&, _
      Optional ByVal NumDecimales As Long = 2&, _
      Optional ByVal sMoneda As String = «», _
      Optional ByVal sCentimos As String = «», _
      Optional ByVal SexoMoneda As eSexo = Femenino, _
      Optional ByVal SexoCentimos As eSexo = Masculino) As String

      Dim i As Long
      Dim iHayDecimal As Long ‘Posición del signo decimal
      Dim sDecimal As String ‘Signo decimal a usar
      Dim sDecimalNo As String ‘Signo no decimal
      Dim sEntero As String
      Dim sFraccion As String
      Dim fFraccion As Single
      Dim sNumero As String
      Static SexoAntMoneda As eSexo
      Static SexoAntCentimos As eSexo
      Dim sSexoCents As String

      ‘ Para tener en cuenta el sexo de los céntimos (20/Jul/00)
      ‘ m_Sexo2 se usa para indicar el plural de las monedas,
      ‘ sSexoCents sustituirá a esa variable cuando se calculen los céntimos
      If SexoCentimos = Femenino Then
      sSexoCents = «as»
      Else
      sSexoCents = «os»
      End If

      ‘Dependiendo del «sexo» indicado, usar las terminaciones
      If SexoMoneda = Femenino Then
      m_Sexo1 = «o»
      m_Sexo2 = «os»
      Else
      m_Sexo1 = «a»
      m_Sexo2 = «as»
      End If
      ‘por si se cambia en el trascurso el sexo de la moneda
      If SexoMoneda SexoAntMoneda Then
      unidad(1) = «» ‘ Aquí ponía: unidad(2) = «» (08/Sep/01)
      SexoAntMoneda = SexoMoneda
      End If
      m_LenSexo1 = Len(m_Sexo1)

      ‘Si se especifica, se usarán
      sMoneda = Trim$(sMoneda)
      If Len(Trim$(sMoneda)) Then
      sMoneda = » » & sMoneda & » »
      Else
      sMoneda = » »
      End If

      sCentimos = Trim$(sCentimos)
      If Len(Trim$(sCentimos)) Then
      sCentimos = » » & sCentimos & » »
      Else
      sCentimos = » »
      End If

      ‘Si no se especifica el ancho…

      If Lo Then
      sNumero = Space$(Lo)
      Else
      sNumero = «»
      End If

      ‘Comprobar el signo decimal y devolver los adecuados a la config. regional
      strNum = ConvDecimal(strNum, sDecimal, sDecimalNo)

      ‘Comprobar si tiene decimales
      iHayDecimal = InStr(strNum, sDecimal)
      If iHayDecimal Then
      sEntero = Left$(strNum, iHayDecimal – 1)
      sFraccion = Mid$(strNum, iHayDecimal + 1) & String$(NumDecimales, «0»)


      sFraccion = Left$(sFraccion, NumDecimales)


      fFraccion = VBA.Val(sFraccion)
      ‘ Si no hay decimales… no agregar nada…
      If fFraccion < 1 Then
      If Len(Trim$(sMoneda)) Then
      sMoneda = Pluralizar(sNumero, sMoneda)
      End If
      strNum = RTrim$(UnNumero(sEntero, m_Sexo1) & sMoneda)
      If Lo Then
      LSet sNumero = strNum
      Else
      sNumero = strNum
      End If
      Numero2Letra = sNumero
      Exit Function
      End If

      If Len(Trim$(sMoneda)) Then
      sMoneda = Pluralizar(sEntero, sMoneda)
      End If

      sEntero = UnNumero(sEntero, m_Sexo1)

      If Len(Trim$(sCentimos)) Then
      sCentimos = Pluralizar(sFraccion, sCentimos)
      End If

      m_Sexo2 = sSexoCents
      If SexoCentimos = Masculino Then
      sFraccion = UnNumero(sFraccion, "")
      Else
      sFraccion = UnNumero(sFraccion, "a")
      End If
      '
      strNum = sEntero & sMoneda & "Pesos M/Legal" & " con " & sFraccion & sCentimos & "Centavos "
      If Lo Then
      LSet sNumero = RTrim$(strNum)
      Else
      sNumero = RTrim$(strNum)
      End If
      Numero2Letra = sNumero
      Else
      If Len(Trim$(sMoneda)) Then
      sMoneda = Pluralizar(strNum, sMoneda)
      End If
      strNum = RTrim$(UnNumero(strNum, m_Sexo1) & sMoneda) & " Pesos M/Legal"
      If Lo Then
      LSet sNumero = strNum
      Else
      sNumero = strNum
      End If
      Numero2Letra = sNumero
      End If
      End Function

      Private Function UnNumero(ByVal strNum As String, ByVal Sexo1 As String) As String
      '———————————————————-
      'Esta es la rutina principal (10/Jul/97)
      'Está separada para poder actuar con decimales
      '———————————————————-
      Dim dblNumero As Double

      Dim Negativo As Boolean
      Dim L As Integer
      Dim Uno As Boolean
      Dim Millon As Boolean
      Dim Millones As Boolean
      Dim vez As Long
      Dim MaxVez As Long
      Dim k As Long
      Dim strQ As String
      Dim strB As String
      Dim strU As String
      Dim strD As String
      Dim strC As String
      Dim iA As Long
      '
      Dim strN() As String
      Dim Sexo1Ant As String

      'Si se amplia este valor… no se manipularán bien los números
      Const cAncho = 12
      Const cGrupos = cAncho \ 3

      'Por si se especifica el sexo, para el caso de los decimales
      'que siempre será masculino
      Sexo1Ant = m_Sexo1
      m_Sexo1 = Sexo1

      m_LenSexo1 = Len(m_Sexo1)
      '
      ' idea aportada por Harvey Triana
      ' para no tener que estar reinicializando continuamente los arrays
      '
      ' Se ve que lo anterior fallaba si se usaba varias veces seguidas (05/Mar/99)
      If unidad(1) «un» & Sexo1 Then
      InicializarArrays
      End If

      ‘ If m_Sexo1 Sexo1Ant Then
      ‘ unidad(2) = «»
      ‘ End If
      ‘ ‘
      ‘ If unidad(2) «dos» Then
      ‘ InicializarArrays
      ‘ End If

      ‘Si se produce un error que se pare el mundo!!!
      On Local Error GoTo 0

      If Len(strNum) = 0 Then
      strNum = «0»
      End If

      dblNumero = Abs(CDbl(strNum))
      Negativo = (dblNumero CDbl(strNum))
      strNum = LTrim$(RTrim$(Str$(dblNumero)))
      L = Len(strNum)

      If dblNumero < 1 Then
      UnNumero = "cero"
      Exit Function
      End If
      '
      Uno = True
      Millon = False
      Millones = False
      If L 999999 Then Millon = True
      If dblNumero > 1999999 Then Millones = True
      strB = «»
      strQ = strNum
      vez = 0

      ReDim strN(1 To cGrupos)
      strQ = Right$(String$(cAncho, «0») & strNum, cAncho)
      For k = Len(strQ) To 1 Step -3
      vez = vez + 1
      strN(vez) = Mid$(strQ, k – 2, 3)
      Next
      MaxVez = cGrupos
      For k = cGrupos To 1 Step -1
      If strN(k) = «000» Then
      MaxVez = MaxVez – 1
      Else
      Exit For
      End If
      Next
      For vez = 1 To MaxVez
      strU = «»
      strD = «»
      strC = «»
      strNum = strN(vez)
      L = Len(strNum)
      k = VBA.Val(Right$(strNum, 2))
      If Right$(strNum, 1) = «0» Then
      k = k \ 10
      strD = decena(k)
      ElseIf k > 10 And k 0 Then
      k = VBA.Val(Mid$(strNum, L – 1, 1))
      strD = deci(k)
      End If
      End If
      ‘—Parche de Esteve
      If L – 2 > 0 Then
      k = VBA.Val(Mid$(strNum, L – 2, 1))
      ‘Con esto funcionará bien el 100100, por ejemplo…
      If k = 1 Then ‘Parche
      If VBA.Val(strNum) = 100 Then ‘Parche
      k = 10 ‘Parche
      End If ‘Parche
      End If
      strC = centena(k) & » »
      End If
      ‘——
      If strU = «uno» And Left$(strB, 4) = » mil» Then strU = «»
      strB = strC & strD & strU & » » & strB

      If (vez = 1 Or vez = 3) Then
      If strN(vez + 1) «000» Then strB = » mil » & strB
      End If
      If vez = 2 And Millon Then
      If Millones Then
      strB = » millones » & strB
      Else
      strB = «un millón » & strB
      End If
      End If
      Next
      strB = Trim$(strB)
      If Right$(strB, 3) = «uno» Then
      strB = Left$(strB, Len(strB) – 1) & m_Sexo1 ‘»a»
      End If
      Do ‘Quitar los espacios dobles que haya por medio
      iA = InStr(strB, » «)
      If iA = 0 Then Exit Do
      strB = Left$(strB, iA – 1) & Mid$(strB, iA + 1)
      Loop

      If Left$(strB, 5 + m_LenSexo1) = «un» & m_Sexo1 & » un» Then
      strB = Mid$(strB, 4 + m_LenSexo1)
      End If
      ‘—Nueva comparación (01:16 25/Ene/99)
      If Left$(strB, 5) = «un un» Then
      strB = Mid$(strB, 4)
      End If

      ‘ Comprobar sólo si se especifica «un* mil «, (05/Mar/99)
      ‘ no «un* mil» ya que puede ser «un* millón»
      ‘If Left$(strB, 6 + m_LenSexo1) = «un» & m_Sexo1 & » mil» Then
      If Left$(strB, 7 + m_LenSexo1) = «un» & m_Sexo1 & » mil » Then
      strB = Mid$(strB, 4 + m_LenSexo1)
      ‘ Puede que el importe sea sólo «un mil» o «una mil» (19/Ago/00)
      ElseIf strB = «un» & m_Sexo1 & » mil» Then
      strB = Mid$(strB, 4 + m_LenSexo1)
      End If

      ‘—Nueva comparación (15:11 25/Ene/99)
      ‘If Left$(strB, 6) = «un mil» Then
      ‘ Que debe estar así, para que no quite «un millón» (05/Mar/99)
      If Left$(strB, 7) = «un mil » Then
      strB = Mid$(strB, 4)
      End If

      If Right$(strB, 15 + m_LenSexo1) «millones mil un» & m_Sexo1 Then
      iA = InStr(strB, «millones mil un» & m_Sexo1)
      If iA Then strB = Left$(strB, iA + 8) & Mid$(strB, iA + 13)
      End If
      ‘—Nueva comparación (15:13 25/Ene/99)
      If Right$(strB, 15) «millones mil un» Then
      iA = InStr(strB, «millones mil un»)
      If iA Then strB = Left$(strB, iA + 8) + Mid$(strB, iA + 13)
      End If

      ‘ De algo sirve que la gente pruebe las rutinas… (05/Mar/99)
      ‘ ¡¡¡ Gracias gente !!!
      If Millones Then
      ‘ Comprobación de -as ??? millones
      ‘ convertir en -os ??? millones
      ‘ Pero sólo si el sexo es femenino
      If m_Sexo1 = «a» Then
      ‘If (strB Like «*as * millones*») Then
      ‘ Usar un bucle Do por si hay varias coincidencias (07/Dic/00)
      Do While (strB Like «*as * millones*»)
      ‘ Buscar la primera terminación «as » y cambiar por «os »
      k = InStr(strB, «as «)
      If k Then
      Mid$(strB, k) = «os »
      End If
      Loop
      ‘End If
      ‘ La comparación anterior no funciona con x00 millones (30/Jun/00)
      ‘If (strB Like «*as millones*») Then
      ‘ Usar un bucle Do por si hay varias coincidencias (07/Dic/00)
      Do While (strB Like «*as millones*»)
      ‘ Buscar la primera terminación «as » y cambiar por «os »
      k = InStr(strB, «as millones»)
      If k Then
      Mid$(strB, k) = «os millones»
      End If
      Loop
      ‘End If


      ‘——————————————————————
      ‘ Comprobar si dice algo así …una millones (08/Jul/00)
      ‘ Por ejemplo en 821.xxx.xxx decia ochocientos veintiuna millones
      ‘——————————————————————
      k = InStr(strB, «una mill»)
      If k Then
      strB = Left$(strB, k + 1) & Mid$(strB, k + 3)
      End If


      End If
      End If


      ‘————————————————————————–
      ‘ Cambiar los veintiun por veintiún, etc por sus acentuadas (08/Jul/00)
      Do
      k = InStr(strB, «veintiun «)
      If k Then
      Mid$(strB, k) = «veintiún »
      End If
      Loop While k
      ‘ El veintidos creo que nunca lo he acentuado… (08/Jul/00)
      ‘ pero en la enciclopedia consultada lo acentúa
      Do
      k = InStr(strB, «veintidos «)
      If k Then
      Mid$(strB, k) = «veintidós »
      End If
      Loop While k
      Do
      k = InStr(strB, «veintitres «)
      If k Then
      Mid$(strB, k) = «veintitrés »
      End If
      Loop While k
      Do
      k = InStr(strB, «veintiseis «)
      If k Then
      Mid$(strB, k) = «veintiséis »
      End If
      Loop While k
      ‘————————————————————————–


      If Right$(strB, 6) = «ciento» Then
      strB = Left$(strB, Len(strB) – 2)
      End If
      If Negativo Then strB = «menos » & strB

      UnNumero = Trim$(strB)

      ‘ Restablecer el valor anterior
      m_Sexo1 = Sexo1Ant
      m_LenSexo1 = Len(m_Sexo1)
      End Function

      Private Sub InicializarArrays()
      ‘Asignar los valores
      unidad(1) = «Un» & m_Sexo1
      unidad(2) = «Dos»
      unidad(3) = «Tres»
      unidad(4) = «Cuatro»
      unidad(5) = «Cinco»
      unidad(6) = «Seis»
      unidad(7) = «Siete»
      unidad(8) = «Ocho»
      unidad(9) = «Nueve»

      decena(1) = «Diez»
      decena(2) = «Veinte»
      decena(3) = «Treinta»
      decena(4) = «Cuarenta»
      decena(5) = «Cincuenta»
      decena(6) = «Sesenta»
      decena(7) = «Setenta»
      decena(8) = «Ochenta»
      decena(9) = «Noventa»

      centena(1) = «Ciento»
      centena(2) = «Doscient» & m_Sexo2
      centena(3) = «Trescient» & m_Sexo2
      centena(4) = «Cuatrocient» & m_Sexo2
      centena(5) = «Quinient» & m_Sexo2
      centena(6) = «Seiscient» & m_Sexo2
      centena(7) = «Setecient» & m_Sexo2
      centena(8) = «Ochocient» & m_Sexo2
      centena(9) = «Novecient» & m_Sexo2
      centena(10) = «Cien» ‘Parche

      deci(1) = «Dieci»
      deci(2) = «Veinti»
      deci(3) = «Treinta y »
      deci(4) = «Cuarenta y »
      deci(5) = «Cincuenta y »
      deci(6) = «Sesenta y »
      deci(7) = «Setenta y »
      deci(8) = «Ochenta y »
      deci(9) = «Noventa y »

      otros(1) = «1»
      otros(2) = «2»
      otros(3) = «3»
      otros(4) = «4»
      otros(5) = «5»
      otros(6) = «6»
      otros(7) = «7»
      otros(8) = «8»
      otros(9) = «9»
      otros(10) = «10»
      otros(11) = «Once»
      otros(12) = «Doce»
      otros(13) = «Trece»
      otros(14) = «Catorce»
      otros(15) = «Quince»
      End Sub

      Private Sub Class_Initialize()
      m_Sexo1 = «o»
      m_Sexo2 = «os»
      End Sub

      Public Function Pluralizar( _
      ByVal sNumero As String, _
      ByVal sMoneda As String, _
      Optional ByVal bCadaPalabra As Boolean = False) As String
      ‘————————————————————————–
      ‘ Pluraliza la moneda, si el valor de número es distinto de uno

      ‘ Ahora es una función pública (07/Jul/00)

      ‘ Parámetros:
      ‘ sNumero Importe, para saber si hay que pluralizar o no
      ‘ sMoneda Cadena con la palabra a pluralizar
      ‘ bCadaPalabra Si se pluralizan todas las palabras (08/Jul/00)
      ‘————————————————————————–
      Dim dblTotal As Double
      Dim sTmp As String
      Dim i As Long

      If Len(Trim$(sMoneda)) Then
      ‘ He quitado el Val (08/Jul/00)
      ‘dblTotal = Val(sNumero)

      ‘ Si entra una cadena vacia, da error (08/Jul/00)
      If Len(sNumero) = 0 Then
      sNumero = «0»
      End If
      dblTotal = (sNumero)

      If dblTotal 1# Then
      sMoneda = Trim$(sMoneda)
      ‘ Si se pluralizan todas las palabras (08/Jul/00)
      If bCadaPalabra Then
      sMoneda = sMoneda & » »
      sTmp = «»
      For i = 1 To Len(sMoneda)
      If Mid$(sMoneda, i, 1) = » » Then
      ‘ pluralizar
      If InStr(«aeiou», Right$(sTmp, 1)) Then
      sTmp = sTmp & «s»
      Else
      sTmp = sTmp & «es»
      End If
      End If
      sTmp = sTmp & Mid$(sMoneda, i, 1)
      Next
      sMoneda = » » & Trim$(sTmp) & » »
      Else
      If InStr(«aeiou», Right$(sMoneda, 1)) Then
      sMoneda = » » & sMoneda & «s »
      Else
      sMoneda = » » & sMoneda & «es »
      End If
      End If
      End If
      End If
      Pluralizar = sMoneda
      End Function

      Public Function ConvDecimal(ByVal strNum As String, _
      Optional ByRef sDecimal As String = «,», _
      Optional ByRef sDecimalNo As String = «.») As String
      ‘Attribute ConvDecimal.VB_Description = «Si la cadena contiene decimales, convertirlo al adecuado para usar con Val»
      ‘Attribute ConvDecimal.VB_HelpID = 21080
      ‘ Asigna el signo decimal adecuado (o lo intenta) (10/Ene/99)
      ‘ Devuelve una cadena con el signo decimal del sistema
      Dim sNumero As String
      Dim i As Long
      Dim j As Long

      On Error Resume Next ‘ Si se produce un error, continuar (07/Jul/00)

      ‘ Averiguar el signo decimal
      sNumero = Format$(25.5, «#.#»)
      If InStr(sNumero, «.») Then
      sDecimal = «.»
      sDecimalNo = «,»
      Else
      sDecimal = «,»
      sDecimalNo = «.»
      End If

      strNum = Trim$(strNum)
      If Left$(strNum, 1) = sDecimalNo Then
      Mid$(strNum, 1, 1) = sDecimal
      End If

      ‘ Si el número introducido contiene signos no decimales
      j = 0
      i = 1
      Do
      i = InStr(i, strNum, sDecimalNo)
      If i Then
      j = j + 1
      i = i + 1
      End If
      Loop While i

      If j = 1 Then
      ‘ cambiar ese símbolo por un espacio, si sólo hay uno de esos signos
      i = InStr(strNum, sDecimalNo)
      If i Then
      If InStr(strNum, sDecimal) Then
      Mid$(strNum, i, 1) = » »
      Else
      Mid$(strNum, i, 1) = sDecimal
      End If
      End If
      Else
      ‘En caso de que tenga más de uno de estos símbolos
      ‘convertirlos de manera adecuada.
      ‘Por ejemplo:
      ‘si el signo decimal es la coma:
      ‘ 1,250.45 sería 1.250,45 y quedaría en 1250,45
      ‘si el signo decimal es el punto:
      ‘ 1.250,45 sería 1,250.45 y quedaría en 1250.45

      ‘Aunque no se arreglará un número erróneo:
      ‘si el signo decimal es la coma:
      ‘ 1,250,45 será lo mismo que 1,25
      ‘ 12,500.25 será lo mismo que 12,50
      ‘si el signo decimal es el punto:
      ‘ 1.250.45 será lo mismo que 1.25
      ‘ 12.500,25 será lo mismo que 12.50

      i = 1
      Do
      i = InStr(i, strNum, sDecimalNo)
      If i Then
      j = j – 1
      If j = 0 Then
      Mid$(strNum, i, 1) = sDecimal
      Else
      Mid$(strNum, i, 1) = » »
      End If
      i = i + 1
      End If
      Loop While i
      End If

      j = 0
      ‘ Quitar los espacios que haya por medio
      Do
      i = InStr(strNum, » «)
      If i = 0 Then Exit Do
      strNum = Left$(strNum, i – 1) & Mid$(strNum, i + 1)
      Loop

      ConvDecimal = strNum

      Err = 0
      End Function

  1074. 1312 Anónimo agosto 14, 2013 a las 9:14 pm

    EL COMENTARIO ORIGINAL SE EXPLICA MUY BIEN X LAS GRÁFICAS!!! MUCHAS GRACIAS!!!

  1075. 1313 Francisco Cuevas agosto 26, 2013 a las 3:35 pm

    muy util tu macro, muchas gracias

  1076. 1314 hector agosto 29, 2013 a las 8:45 am

    Muchas gracias me sirvió mucho

  1077. 1315 RUBEN MERCADO A septiembre 5, 2013 a las 7:09 pm

    MUCHISISISISIMAS GRACIAS, TU INFORMACION ME FUE DE MUCHA UTILIDAD

  1078. 1316 Anónimo septiembre 6, 2013 a las 12:08 pm

    Un mil gracias, me ha servido mucho te agradezco el detalle y el tiempo para ayudarnos

  1079. 1317 Sally septiembre 6, 2013 a las 9:22 pm

    EXCELENTE!!! LA EXPLICACIÓN MUY ENTENDIBLE Y ES UNA EXCELENTE AYUDA PARA EL TRABAJO EN EXCEL. MUCHAS GRACIAS

  1080. 1318 Anónimo septiembre 11, 2013 a las 12:51 pm

    MUCHAS GRACIAS POR COMPARTIR ESTA INFORMACION, ES DE MUCHA AYUDA 🙂
    ME SIRVIO BASTANTE

  1081. 1319 iván aburto septiembre 11, 2013 a las 2:03 pm

    Muchas gracias Gonzalo-conta, muy útil la información.

  1082. 1320 Edr septiembre 11, 2013 a las 3:55 pm

    muchas gracias. me sirvio. saludos

  1083. 1321 Anónimo septiembre 12, 2013 a las 8:29 pm

    Muchisimas gracias…excelente ayuda!!!

  1084. 1322 Anónimo septiembre 17, 2013 a las 7:44 am

    ¡Gracias amigo! Excelente aporte, muy claro (más claro no se puede) y totalmente desinteresado, ¡saludos!

  1085. 1323 Latogue septiembre 18, 2013 a las 6:29 am

    Muy bueno tu aporte, pero quisiera que me ayudaras a cambiar a bolivares y los decimales a centimos?

    • 1324 Latogue septiembre 18, 2013 a las 8:18 am

      Encontre la solución a mi pregunta¡¡¡ igual gracias tuve que modificar una que otras cosas de pesos a bolivares y de centavos a céntimos espero sea de ayuda:

      Function BolivaresCTMS(tyCantidad As Currency) As String
      Dim lyCantidad As Currency, lyCentimos 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)
      lyCentimos = (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
      BolivaresCTMS = lcBloque
      Case 2
      BolivaresCTMS = lcBloque & IIf(lnBloqueCero = 3, Null, » MIL») & BolivaresCTMS
      Case 3
      BolivaresCTMS = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, » MILLON», » MILLONES») & BolivaresCTMS
      End Select
      lnNumeroBloques = lnNumeroBloques + 1
      Loop Until lyCantidad = 0
      BolivaresCTMS = «SON: (» & BolivaresCTMS & IIf(tyCantidad > 1, » BOLIVARES «, » BOLIVARES «) & Format(Str(lyCentimos), «00») & «/100 CTMS)»
      End Function

  1086. 1325 Anónimo septiembre 24, 2013 a las 3:03 pm

    excelente herramienta, muchas gracias por estas aportaciones.

  1087. 1326 GERMAN septiembre 24, 2013 a las 3:04 pm

    excelente herramienta, muchas gracias por estas aportaciones.

  1088. 1327 Nuevos Horizontes septiembre 25, 2013 a las 7:16 pm

    Gonzalo, necesito convertir letras a números, si existe una formula para excel, por favor comunicate conmigo, no soy contador, es para algo más simple, sólo necesito hacerlo vía mail. Te dejo abajo mi correo. Soy maestra, por ello deseo contactarme contigo, para poder aplicarlo con niños, no soy experta en computación.
    Espero tu respuesta, mil gracias.

  1089. 1328 migul angel septiembre 26, 2013 a las 12:40 pm

    psss.. para los que no les permite guardar la macro y cada que la abren les aparece #¿NOMBRE?, en la celda donde tendría que aparece la cantidad en letras, simplemente Habiliten las Macros y bajen la seguridad de Excel, si no saben como en gooble escriban como habilitar macros en Excel y la versión que usen y como bajar el nivel de seguridad de exceln y la versión que este usando, yo tengo office 2007 y la macro me funciona perfecto, saludos

  1090. 1329 Carlos octubre 1, 2013 a las 11:13 am

    Felicidades por tu trabajo me fue muy útil, no me explico porque no existe una función que haga esto, solo lo hace en Tailandés, ¿porque Microsoft no hace una que se acople a cada país?,. Copié el código y funciona bien, le quité la palabra «SON» y los paréntesis al final en la variable PesosMN y quedó perfecta para lo que necesito. Muchas gracias.

  1091. 1330 Anónimo octubre 4, 2013 a las 12:29 pm

    Gracias Brother… me ahorraste unas cuantas horas!

  1092. 1331 Anónimo octubre 4, 2013 a las 2:24 pm

    Excelente. Funcionó a la primera. Gracias.

  1093. 1333 mario octubre 5, 2013 a las 9:42 am

    EXCELENTE, FUNCIONA DE DIEZ… TE FELICITO, MUY BUEN APORTE.-

  1094. 1334 anonimo octubre 7, 2013 a las 12:09 pm

    me sirvió de mucho! gracias

  1095. 1335 Anónimo octubre 9, 2013 a las 3:53 pm

    Gonzalo; nuevamente molestandote, me urge una formula para convertir letras a números, si es de manera aleatoria mejor, esto es que deseo aplicarlo en la escuela, con pequeños de 2°, a algunos no les gustan los números y a otros sí pero se les dificulta la lectura, mi idea es que parezca magicamente, afortunadamente tengo un proyector y eso puede ayudar, estoy muy interesada en apoyar a mis pequeños alumnos, por favor si alguien lo sabe se los agradeceré muchisimo. El que usan aquí ciertamente no es dificil de usar y me ha sido útil y lo agradezco, pero ciertamente necesito también UNA FORMULA QUE EN EXCEL CONVIERTA LAS LETRAS A NÚMEROS Y SOBRE TODO QUE SEA DE MANERA ALEATORIA. GRACIAS A QUIEN PUEDA APORTAR ALGO EN FAVOR DE LA EDUCACIÓN DE UNOS 30 PEQUEÑOS.
    NUEVOS HORIZONTES.

    • 1336 gchable octubre 9, 2013 a las 4:53 pm

      Hola Anónimo, Realiza lo siguiente en una hoja de Excel:

      1.- En la celda B5 empieza a poner las letras de la A a la Z, hacia a bajo.
      2.- En la C5, pones del numero el numero que quieres que corresponda a la letra de la columna B.
      3.- En la columan D repites la informacion que tienes en la columna B.
      4.- En la celda B2 pon la siguiente formula =BUSCARV(ALEATORIO.ENTRE(1,25),C5:D29,2,0).
      5.- En la C2 pon la siguiente formula =BUSCARV(B2,B5:C29,2,0).

      Para cambiar los valores presiona F9

      Te debe quedar de la siguiente forma http://i159.photobucket.com/albums/t126/gchable/excel.jpg.

  1096. 1337 DIEGO octubre 10, 2013 a las 5:36 pm

    MUCHAS GRACIAS POR TU INFORMACIÓN SE TE AGRADECE DE CORAZON

  1097. 1338 Amalia octubre 11, 2013 a las 11:42 pm

    EXCELENTE EXCELENTE MIL Y MIL GRACIAS

  1098. 1339 JOSE CONTRERAS octubre 17, 2013 a las 7:20 pm

    HOLA A TODOS:

    TENGO EL PROBLEMA DE LOS TEXTOS PARA CUANDO LAS CANTIDADES REBASAN LOS MILES DE MILLONES.

    ALGUIEN YA LO SOLUCIONO?

    LES AGRADECERIA LA INFORMACION.

    GRACIAS.

  1099. 1340 ali octubre 20, 2013 a las 3:31 pm

    mucha graciass por la ayuda:)fue de mucha ayuda…

  1100. 1341 Nuevos horizontes octubre 21, 2013 a las 6:56 pm

    Gracias Gonzalo, la formula funciona pero no es lo que yo esperaba, pienso que supe explicarme, intentaré ahora hacerlo; mi idea es que si yo le pongo un número a cada letra ese número cambie y que cada letra quede como una constante, sin cambiar, únicamente los números, por ejemplo, si yo le pongo el número 5 a la letra A y el 14 a la X y el 29 a la D entonces al aplicar la formula las letras permanecieran constantes y los números cambiaran, por ejemplo la A tuviera el número 24, la X el 3 la D el 8 y aspi, que pudieran cambiar, además sí esto fuera posible de manera horizontal sería mucho mejor para mí, ya que es la manera en que usualmente escribimos. De todas formas utilizaré la formula como una entradita con los pequeños, y estaré pendiente de mi correo para checar tu respuesta, si lo que solicito no es posible, de todas maneras mil gracias, yo tengo en cuenta que ya me ayudaste mucho, un gran saludo y felicidades por tu página que veo que a muchas personas han podido resolver sus problemas de trabajo y tareas aqui.
    De nuevo, mil gracias.
    Nuevos horizontes.

  1101. 1342 Liliana octubre 25, 2013 a las 9:30 am

    MUCHAS GRACIAS MUY PRACTICO, ME SIRVIO MUCHO ESTE DOCUMENTO

  1102. 1343 GMB octubre 25, 2013 a las 2:22 pm

    GRACIAS POR TU APORTACIÓN ME HA SERVIDO ENORME

  1103. 1344 Morori octubre 26, 2013 a las 12:20 am

    Exelente te agradesco muchisimo Gonzalo_Conta por esta gran aportacion
    estrecho tu mano y te deseo lo mejor

  1104. 1345 elizabeth octubre 28, 2013 a las 3:05 pm

    buenas tardes la formaula esta super solo que me piden que le quite la palabra SON para pesos mexicanos me pueden decir como hacerlo.

    gracias

  1105. 1347 Lester octubre 29, 2013 a las 10:45 pm

    Muchas gracias Gonzalo por esta funcion. Excelente codigo !! Adjunto algunos cambios necesarios para poder manejar cantidades como las siguientes:

    1021.25 deberia de escribir «Mil veintiuno con 25/100» en lugar de «UN mil VEINTIUN con 25/100» ya que el UN no es necesario en cantidades entre 1000 y 1999.99 y el VEINTIUN al final deberia de ser VEINTIUNO.

    531.25 deberia de escribir «Quinientos treinta y uno» en lugar de «Quinientos treinta y UN»

    Este codigo corrige esos problemas; solo hay que reemplazar el primer CASE del codigo por este:

    Select Case I
    Case 1
    lcBloque = » » & IIf((lnNumeroBloques = 1 And lnDigito = 1), (laUnidades(lnDigito – 1) & «O»), (laUnidades(lnDigito – 1)))
    If tyCantidad > 1000 And tyCantidad < 2000 And lyCantidad = 1 Then
    lcBloque = ""
    End If
    lnPrimerDigito = lnDigito
    Case 2
    If lnDigito 1), (laUnidades((lnDigito * 10) + lnPrimerDigito – 1) & «O»), (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

    Gracias de nuevo !!

    • 1348 weab68Winston marzo 1, 2014 a las 11:08 pm

      Buena Noche.
      LESTER… Oye mi pana podrias copiarlo completo; es decir desde el: Function PesosMN(tyCantidad As Currency) As String … hasta el … End Function.
      Claro esta adjuntando los cambios que sugieres para poder manejar cantidades como: 1021.25.

    • 1349 Eaglegold70 junio 22, 2014 a las 10:02 am

      Lester, buen aporte solo que no se donde hacer el cambio o no funciona, me sale error de compilacion, podrias poner completo el texto desde el inicio hasta el final ya que lo hayas probado.

      muchas gracias.

  1106. 1351 liz noviembre 7, 2013 a las 10:25 am

    muchas gracias 🙂 me sirvió de mucho

  1107. 1352 ji noviembre 23, 2013 a las 4:06 pm

    Alguien podria crear una macro que cuando entro un numero de la forma a.b (texto)lo deje de la forma a,b(numero)
    Lo que deseo es, si ingreso en una celda 6.2 lo pase a 6,2 , esto se puede hacer con la funcion sustituir pero necesito de una columna auxiliar , me gustaria que opere en el momento de ingresar la informacion…gracias

    • 1353 El Observador noviembre 25, 2013 a las 10:22 am

      Hola Gonzalo, que tal! Espero te encuentre bien. Sabes, no quiero molestarte, se que estas bastante ocupado, pero si tienes oportunidad te agradecería si me puedes ayudar a solucionar un detalle. Tengo una columna en excel, con 350 correos-e, necesito agregar más en otra columna. ¿Como puedo hacer para, al final comparar A vs B e identificar si hubo correos duplicados y removerlos automáticamente. Me conformo con que me diga cuáles son los repetidos.

      Te agradezco mucho de antemano tu ayuda.

      DTB

      Saludos!

      Jesus

  1108. 1354 Liliana noviembre 28, 2013 a las 10:58 pm

    Gracias por la ayuda fue genial

  1109. 1356 Francisco mendez diciembre 6, 2013 a las 9:24 am

    PERFECTO MUCHISIMAS GRACIAS, TODO BIEN

  1110. 1357 William Melgar diciembre 7, 2013 a las 1:14 am

    QUISIERA SABER SI ESTE CODIGO LO PUEDEN MODIFICAR PARA LA MONEDA DE GUATEMALA 🙂 LES DEJO MI CORREO willyan170@hotmail.com

  1111. 1358 Christian L.B. diciembre 10, 2013 a las 9:28 am

    Buen dia, sus comentarios son las mejores repuestas en toda la wed pero soy de Ecuador y acá se maneja en dolares como me pueden ayudar con esto. gracias

  1112. 1359 diana diciembre 10, 2013 a las 5:11 pm

    COMO LE HAGO PARA QUE NO APAREZCA SON

    • 1360 José M. Martínez Poblete febrero 27, 2014 a las 5:11 pm

      copia esto

      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 = » » & PesosMN & IIf(tyCantidad > 1, » PESOS «, » PESO «) & Format(Str(lyCentavos), «00») & «/100 M.N.)»
      End Function

  1113. 1361 diana diciembre 10, 2013 a las 5:31 pm

    no quiero que salga son en la factura

    • 1362 RUBEN MERCADO A diciembre 10, 2013 a las 7:20 pm

      Hola Diana, a mi me sucede lo mismo no quiero que aparezca SON, por fa, si alguien te responde pasame el tip , te lo voy a agradecer mucho.

      • 1363 José M. Martínez Poblete febrero 27, 2014 a las 5:12 pm

        Copia Esto

        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 = » » & PesosMN & IIf(tyCantidad > 1, » PESOS «, » PESO «) & Format(Str(lyCentavos), «00») & «/100 M.N.)»
        End Function

  1114. 1364 A. CASTILLO diciembre 11, 2013 a las 2:01 am

    CREO QUE AGRADECIMIENTOS NO TE FALTAN MAS SIN EMBARGO GRACIAS POR FACILITARME MI FACTURACION

  1115. 1365 José Carlos Valdés diciembre 22, 2013 a las 12:10 am

    gracias me funciono muy bien , eres un fregonaso

  1116. 1366 Miguel Á. Tobias Hdz. diciembre 28, 2013 a las 1:08 pm

    Excelente, eres un ejemplo!!!!

  1117. 1367 wilber enero 8, 2014 a las 1:12 pm

    Excelente todo perfecto

  1118. 1368 Jose Luis Cuautle enero 22, 2014 a las 7:28 pm

    Gracias.

  1119. 1370 Darvin Reyes enero 28, 2014 a las 5:54 pm

    Excelente aporte, se te agradece por hacernos el trabajo mas liviano y por compartir tu conocimiento. saludos……

  1120. 1371 Andi Banquez Julio febrero 2, 2014 a las 3:54 pm

    Buenas Tardes agradezco, si tienen el macro de convertir numeros a letras en pesos colombianos.
    Quedo atendo 😀

  1121. 1372 Fredy Alejandro febrero 19, 2014 a las 8:32 pm

    Excelente!!!!!

  1122. 1373 Juan febrero 27, 2014 a las 2:35 pm

    Excelente explicación, Gracias Infinitas!!!

  1123. 1374 José M. Martínez Poblete febrero 27, 2014 a las 5:00 pm

    Compadre, muchas gracias… le hice una pequeña modificación, para quitarle el Son, pesos y el oo/100)… solo lo deje con las letras y me quedó perfecto… muchas gracias, fue la mejor que encontré.

  1124. 1375 José M. Martínez Poblete febrero 27, 2014 a las 5:08 pm

    Vi que algunos no quieren que aparezca el son, solo tienen que borrar unas cosas:

    En la penultima fila, dice lo siguiente:

    PesosMN = «SON: (» & PesosMN & IIf(tyCantidad > 1, » PESOS «, » PESO «) & Format(Str(lyCentavos), «00») & «/100

    Borren el SON:( todo lo que esta en comillas y dejen un solo espacio
    PesosMN = » » & PesosMN & IIf(tyCantidad > 1, » PESOS «, » PESO «) & Format(Str(lyCentavos), «00») & «/100

    Lo mismo si quieren borrar pesos u otras cosas… yo lo deje solo con las letras sin SON, pesos ni nada y quedo así

    PesosMN = » » & PesosMN & IIf(tyCantidad > 1, » «, » PESO «) & Format(Str(lyCentavos), » «) & » »

    por ende, donde el valor sea $59.425.-
    Me muestra según formula: cincuenta y nueve mil cuatrocuentos veinticinco

    espero les sirva… y gracias a gonzalo_conta que sin su ejemplo no lo hubiera hecho nunca.

  1125. 1376 Mirel marzo 4, 2014 a las 3:08 pm

    miles y miles de gracias!!!!!! nunca habia podido hacerlo lo explicas de lujo…

  1126. 1378 Elizabeth marzo 17, 2014 a las 5:59 pm

    Muchas gracias por tu aporte, muy bueno, hice todos los paso y me da correcto pero en pesos?, lo malo es que quiero cambiarlo a dolares y quitarle la palabra son pero no puedo al momento de cambiar y poner la formula en excel me da ERROR ASI: #¿NOMBRE? como puedo cambiar por favor alguien puede ayudarme??

    • 1379 Roberto septiembre 19, 2014 a las 3:30 pm

      Creo que solo cambiando, del penúltimo renglón…
      PesosMN = «SON: (» & PesosMN & IIf(tyCantidad > 1, » PESOS «, » PESO «) & Format(Str(lyCentavos), «00») & «/100 M.N.)»
      End Function
      a…
      PesosMN = «SON: (» & PesosMN & IIf(tyCantidad > 1, » DOLARES «, » DOLAR «) & Format(Str(lyCentavos), «00») & «/100 M.N.)»
      End Function

  1127. 1380 mauricio. marzo 22, 2014 a las 1:27 pm

    Muchas me sirvió mucho

  1128. 1381 Lalo marzo 31, 2014 a las 3:03 pm

    me funciono a la perfección tal cual en excel 2007

  1129. 1382 EDU abril 2, 2014 a las 12:40 pm

    GRACIAS……………

  1130. 1383 abraham abril 4, 2014 a las 2:28 am

    perfecta tu explicación sobre esta macro se te agradece

  1131. 1384 Paty abril 4, 2014 a las 12:06 pm

    Hola funciona perfectamente agradezco la informacion

  1132. 1385 Jorge llagas abril 21, 2014 a las 12:25 pm

    Muchas Gracia, es de muy buena ayuda. que tengas un exceente día…

  1133. 1386 alejandra abril 24, 2014 a las 8:12 pm

    me sirvio muchissimo gracias infinitas y en los comentarios resolvi algunas dudas me tarde pero valio la pena ojala puedas leer mi comentario
    saludos!!!!

  1134. 1388 FREDY abril 30, 2014 a las 1:35 pm

    impresionante la función de esta formula realmente mis felicitaciones, mas sin embargo tengo un problema que a continuación te explico y en el cual te agradecería mucho si me pudieses ayudar..

    yo trabajo en una empresa importadora y exportadora en la cual la moneda que toman como referencia es el dolar, ya supe como modificar esta parte para el resultado final, solo que no se si me puedas ayudar en cambiar el formato de resultado de la cantidad que arroja la formula por ejemplo «»$ 1781.80 usd»» con la formula resulta lo siguiente «»(UN MIL SETECIENTOS OCHENTA Y UN DOLARES 00/100 USD)»» y se que es correcto este formato mas sin embargo si me pudieras ayudar a que solo quede bajo el siguiente formato «»(MIL SETECIENTOS OCHENTA Y UN DOLARES 00/100 USD)»», en verdad me urge muchísimo para si me puedes ayudar lo antes posible con esta duda y si me pudieras enviar tu respuesta a mi correo willian_ng_f@hotmail.com

    saludos y muchas gracias por brindarnos tu ayuda!!!!

  1135. 1389 cristina May 12, 2014 a las 10:00 am

    gracias excelente trabajo me ayudo bastante

  1136. 1390 abraham A May 14, 2014 a las 8:05 am

    perfectro gracoas

  1137. 1391 Pauis May 27, 2014 a las 12:07 pm

    buen día, hice la macro, pero al momento de querer hacerlo en otro archivo me aparece error, y ya guarde la macro en la opción de habilitado xlsm que será lo que me falta?

  1138. 1392 Víctor Rincón May 30, 2014 a las 5:29 pm

    Hola buen día, yo lo resolví sin macros, creo que se le complica un poco a la gente usar macros

  1139. 1395 TXUS NOFX junio 6, 2014 a las 10:29 am

    MUCHAAAAAASSSSSSS GRACIAS EL ÚNICO QUE ENCONTRÉ CLARO Y PRECISO,

  1140. 1396 jorge junio 17, 2014 a las 4:07 pm

    Buenos tardes amigo.,- son muy interesantes sus comentarios.-
    me encantaría saber como cambiar moneda a guaraníes paraguayos «Gs» si no es tanta molestia
    desde ya gracias por la ayuda y que dios los bendiga-.

  1141. 1397 Claudia Espinoza junio 20, 2014 a las 5:16 pm

    HOLA BUENAS TARDES SUPER BIEN ESTE ALGORITMO PERO COMO LE PUEDO MODIFICAR EL SON POR QUE NO ME LO ACEPTAN EN EL BANCO

  1142. 1398 Remmy Toledo (Vnezuela) junio 27, 2014 a las 8:28 am

    EXCELENTE HERMANO, BUSQUE EN VARIAS OPCIONES EN INTERNET Y LA TUYA FUE LA UNICA QUE ME AYUDO GRACIAS POR COMPARTIR TUS CONOCIMIENTOS

  1143. 1399 Gely julio 1, 2014 a las 12:42 pm

    Ya hice lo que tienes en tus instrucciones pero cuando salgo del libro y vuelvo a entrar ya la formula no me sirve, y me toca volver hacer todo el procedimiento.
    En este caso que es lo que debo hacer

  1144. 1401 lucila julio 4, 2014 a las 12:49 pm

    gracias es una gran persona para explicar tan detalladamente, me fue de mucha utilidad su ayuda.
    saluditos

  1145. 1402 PAOLA julio 11, 2014 a las 12:51 pm

    Hola, esta muy util tu información, solo quiesiera saber como hago para que no me salga el SON al principo y para que no me salga entre parentesis Muchas gracias

  1146. 1403 Juancho julio 21, 2014 a las 6:06 pm

    quisiera que alguien me ayudara, en primer lugar esta excelente la formula porque se pueden hacer cambios segun la nesecidad de las personas, pero en mi caso pongo por ejemplo 1000 y me aparece Un Miluno con 00/100, y quisiera que saliera Un mil quetzales con 00/100. Ya cambie a quetzales

    gracias

  1147. 1404 Ledezma julio 24, 2014 a las 8:54 am

    SON: (UN MIL DE GRACIAS 😉

  1148. 1405 ely agosto 8, 2014 a las 4:14 pm

    HOLA BUEN DIA PRIMERO MIL GRACIAS X ESTA APORTACION LA VERDAD SI ME AYUDO PERO TENGO 2 DUDAS NO SE SI ME PODRIAS AYUDAR EN ESTO
    PRIMERO SI PODRIAS QUITAR EL PARENTESIS Y EL SON
    POR EJEMPLO 1250.00
    UN MIL DOSCIENTOS CINCUENTA PESOS .00/100MN

    ADEMAS TENGO UNA DUDA YO LO APLIQUE EN UN EXCEL 2007 PERO PONGO MACROS—GRABAR MACROS—- LUEGO LA MODIFICO PEGANDO LA FUNCION Q PROPORCIONASTE-
    Y FUNCIONA BIEN

    EL PROBLEMA ES Q UNA VEZ Q CIERRO EL EXCEL Y LO VUELVO A ABRIR YA NO TIENE LA FUNCION

    INCLUSIVE PUSE HABILITAR MACROS Y NADA CUANDO SE CIERRA Y VUELVO A ABRIR PASA

    DE VERDAD TE LO AGRADECERIA MUCHO

  1149. 1406 Allan Espinoza. agosto 25, 2014 a las 11:03 am

    Excelente, muchas gracias por el aporte.

  1150. 1407 Rosaura González Rivera septiembre 22, 2014 a las 3:26 pm

    EXCELENTE TRABAJO, LA VERDAD ME HA SIDO DE MUCHA UTILIDAD, PERO UNA PREGUNTA ¿CÓMO LE HAGO PARA QUITAR EL ESPACIO QUE HAY ENTRE EL PRIMER PARÉNTESIS Y LA PRIMER LETRA?

    EJEMPLO:

    APARECE ASÍ: SON: ( DOS MIL….
    ME GUSTARÍA: SON: (DOS MIL…

  1151. 1408 Arnulfo R septiembre 24, 2014 a las 4:35 pm

    BUENAS TARDES QUISIERA SABER LA FORMULA PARA AL TRADUCIR LOS NUMEROS EN LETRAS EN LA PARTE FINAL ME QUEDE . PESOS M/CTE ES PARA COLOMBIA LO NECESITO PARA GIRAR CHEQUES AGRADESCO SU AYUDA

  1152. 1409 Rene octubre 16, 2014 a las 4:06 pm

    DISCULPA ME RESULTO UN ERROR, LO PODRIAS VERIFICAR
    cuatro mil quinientos cuarenta y seis con 22/00 4546.23

  1153. 1410 leon octubre 23, 2014 a las 8:49 pm

    gracias pero no encontrado la solución. Solo busco ,si 100 lo quiero escribir en letras que yo quiera por ejemplo EUU como lo hago
    llevo meses y nadie me ha podido ayudar

  1154. 1411 joel noviembre 12, 2014 a las 11:57 am

    Genial! muy claro y fantastico. gracias!

  1155. 1412 allbdelfin diciembre 17, 2014 a las 9:09 pm

    hola si solo quiero que me covierta del 1 al 10 en letras mayusculas… como pongo el codigo????

  1156. 1413 allbdelfin diciembre 17, 2014 a las 9:17 pm

    hola si solo quiero que me covierta del 1 al 10 en letras mayusculas… como pongo el codigo???? Para poner calificaciones

  1157. 1414 Victor enero 9, 2015 a las 11:03 am

    MUCHAS GRACIAS!! Sirve al 100%

  1158. 1416 fer febrero 17, 2015 a las 8:22 pm

    tengo un problema hago todos los pasos que se explican y funciona el libro excel pero cuando le doy guardar el libro me sale el siguiente mensaje:
    Las siguientes características no se pueden guardar en libros sin macros:
    Proyecto VB
    Para guardar un archivo con estas caracteristicas, haz click en no y, a continuacion, elije un tipo de archivo habilitado para macros en la lista tipo de archivo
    para seguir guardando el archivo como libro sin macros, haz click en si.

    cuando le doy si o no se guarda el archivo pero cuando lo vuelvo a abrir el macro se elimina y no funciona
    que debe hacer para solucionar este problema?

  1159. 1417 CRISTOPHER marzo 2, 2015 a las 7:14 pm

    EXCELENTE, EN MENOS DE 2 MIN, TODO SALIO PERFECTO, SOLO UITE EL «SON:», MUCHAS GRACIAS.

  1160. 1418 Juan Manuel marzo 20, 2015 a las 11:24 am

    Buenas. Su código me funcio a increible. Ahora les consulto.
    existe alguna manera de agregar esta función al Excel para q no tengamos la necesidad de guardar el Excel con macros? Q en cualquier libro en blanco pueda ingresar =pesosmn() y funcione como con cualquier fórmula predeterminada.
    cualquier cosa dejo mi mail chino57@terra.com
    Y les agradezco esta ayuda increible que nos dieron

  1161. 1419 Jhon Jairo Muñoz marzo 20, 2015 a las 5:53 pm

    Hola Gchable.

    Muchas gracias por la Macro, funciona estupendo.

    Necesito un par de ayudas… espero no molestar.

    1. si escribo 1 sale = UN, quiero que salga UN PESO
    2. si escribo 1.000 Sale = UN MIL, quiero que salga MIL PESOS
    3. si escribo 1.000,58 Sale = UN MIL 58, quiero que salga MIL PESOS CON CINCUENTA Y OCHO CENTAVOS

    Muchas gracias por tu colaboración y por compartir información con nosotros.

  1162. 1420 sandra marzo 27, 2015 a las 4:34 pm

    Gracias me fue de gran ayuda esta pagina

  1163. 1421 Lex marzo 31, 2015 a las 1:28 pm

    Excelente, de gran ayuda, gracias amigo.

  1164. 1422 jose antonio junio 2, 2015 a las 6:22 pm

    muchas gracias por la ayuda
    me funciono muy bien

  1165. 1424 edwin junio 23, 2015 a las 7:26 am

    MUY BUEN EJEMPLO, GRACIAS

  1166. 1425 Victor julio 22, 2015 a las 11:50 am

    Muchas gracias! es la mejor explicacion que encontre en la red!

  1167. 1426 Churo octubre 7, 2015 a las 11:39 pm

    Realmente muy buen explicado y excelentemente ejecutado. Sos un genio. para aportar algo relacionado dejo un link de una serie de videos en youtube en donde se explica las bases de como convertir números a letras en excel pero sin macros. En la descripción de cada video está otro link que te permite descargar una planilla terminada.
    Un gran saludo a todos
    link: https://www.youtube.com/watch?v=Q8XSmaPq8gA&list=PLqGk704XqwyrtpbO3Zesn-uSsQOAZEWDU

  1168. 1427 Lidia octubre 21, 2015 a las 11:35 am

    La creé en EUROS ! Copiar la MACRO de abajo :

    Function EUROS(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
    EUROS = lcBloque
    Case 2
    EUROS = lcBloque & IIf(lnBloqueCero = 3, Null, » MIL») & EUROS
    Case 3
    EUROS = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, » MILLON», » MILLONES») & EUROS
    End Select
    lnNumeroBloques = lnNumeroBloques + 1
    Loop Until lyCantidad = 0
    EUROS = EUROS & IIf(tyCantidad >= 1, » CON «, » «) & Format(Str(lyCentavos), «00») & » CENTIMOS»
    End Function

  1169. 1428 Hortensia Sustaita octubre 28, 2015 a las 3:53 pm

    Excelentisimo!!! eres un amor, que bueno que eres compartido.

  1170. 1429 Omar Rodriguez diciembre 15, 2015 a las 5:15 pm

    viejo, que los dioses de asgard te bendigan, estaba dando a luz con una aplicacion viejisima y me solucionastes la vida con este codigo. gracias

  1171. 1431 ALFREDO D. diciembre 17, 2015 a las 9:20 pm

    MUCHAS GRACIAS POR COMPARTIR ESTO, ME SIRVIÓ MUCHISIMO Y ME AHORRÓ MUCHO TIEMPO Y ESFUERZO.

  1172. 1432 Javi Xande enero 27, 2016 a las 8:43 pm

    Muchisimas Gracias, te debo una!! 😉

  1173. 1433 Edith González febrero 5, 2016 a las 5:33 pm

    Buen día, muchas gracias, estoy ayudando a las chicas de contabilidad para agilizar la elaboración de cheques, y está macros me cayo como anillo al dedo, pero como siempre hay alguien a quien no de das gusto y quiere las letras en minúsculas. Ya vi el aporte de otro usuario, muchas gracias

  1174. 1435 Lolis marzo 2, 2016 a las 10:56 am

    EXCELENTE muchas gracias Gonzalo y Tavo

  1175. 1436 Ofe marzo 2, 2016 a las 11:56 am

    Muchas Gracias… ! muy buena herramienta auxiliar en formatos… Saludos !

  1176. 1437 Isabella marzo 2, 2016 a las 5:30 pm

    Excelente aporte, que grande es el que sabe, pero mas grande es aquel que sabe y sabe compartir con los demás. Muchas gracias, me sirvio muchisimo.

  1177. 1438 apolinar marzo 23, 2016 a las 2:55 pm

    se puede usar para office 2013 y como

  1178. 1439 Octavio abril 14, 2016 a las 4:08 pm

    mil gracias de verdad muy sencillo y practico gracias!!!!!!

  1179. 1440 Miroslava Rivera abril 28, 2016 a las 11:00 pm

    Muchas gracias, me fue de mucha ayuda tu aporte. Las instrucciones fueron dadas de una forma sencilla. 🙂

  1180. 1441 July Lopez May 9, 2016 a las 10:51 am

    Hola buen día, necesito hacer una macro donde al escribir un numero se despliegue a la derecha la sumatoria de 1 dando como resultado el numero inicial, algo así:

    9 = 1 1 1 1 1 1 1 1 1
    4 = 1 1 1 1
    3 = 1 1 1
    6 = 1 1 1 1 1 1

    me pueden ayudar

  1181. 1442 rosauragrgmailcom junio 10, 2016 a las 12:10 pm

    Excelente trabajo, me ha ayudado muchísimo en mi trabajo y ahorrado mucho tiempo, yo no sé nada de programación y este texto me puso a otro nivel, gracias.
    Tengo una pregunta cómo puedo quitarle el espacio deque hay después del paréntesis, por ejemplo:
    ( QUINCE MIL PESOS 00/100 M.N.) y me gustaría que quedará así (QUINCE MIL PESOS 00/100 M.N.)

  1182. 1443 CLAUDIA julio 26, 2016 a las 12:59 pm

    LA CANTIDAD LA TENGO EN LA COLUMNA G5 COMO PUEDO HACER PARA OBTENER LA ESCRITURA

  1183. 1444 GildardO Olivares agosto 5, 2016 a las 5:47 pm

    BUENAS YARDES, A VER SI ME PUDIERAN APOYAR , QUIERO CONVERTIR NÚMEROS A LETRAS Y ENCONTRE LA FORMULA, PERO APARENTEMENTE TENGO UN ERROR Y DICE QUE LA FORMULA CONTINE TEXTO NO RECONOCIDO.

  1184. 1445 jorge villalobos agosto 11, 2016 a las 12:47 pm

    buen dia, no puedo guardar los macros, tal vez es muy especifica su respuesta sin embargo necesito me apoyes detalle o paso a paso a este e mail jorgedvb36@outlook.com, gracias saludos

  1185. 1446 F agosto 14, 2016 a las 3:55 pm

    Gracias, excelente trabajo. Me sirvió bastante.
    Muchas gracias.

  1186. 1447 sharom soa agosto 18, 2016 a las 3:31 pm

    y para que me aparesca en dolares como hago ademas tambien como lo puedo guardar

  1187. 1448 YuRa Ca agosto 25, 2016 a las 9:24 pm

    excelente ,
    personas como usted son las que necesita este mundo.

  1188. 1449 JAIRO septiembre 18, 2016 a las 2:25 pm

    EXCELENTE TRABAJO, MUY UTIL DE VERDAD.
    AYÚDEME CON ALGO, NECESITO QUE LOS NUMEROS ME SALGAN EN LETRAS, EJEMPLO: 7,05 SIETE COMA CERO CINCO. 9,28 NUEVE COMA VEINTIOCHO 5,00 CINCO COMA CERO CERO.
    MIL GRACIAS POR SU AYUDA.

  1189. 1450 rcg area tecnica 2 octubre 15, 2016 a las 12:43 pm

    CADA VEZ QUE ABRO EXCEL TENGO QUE COPIAR ESTA FORMULA, HAY ALGUNA MANERA QUE EN AUTOMATICO QUEDE ??

  1190. 1451 Mario Miranda diciembre 20, 2016 a las 6:14 pm

    Gracias por este post lo probé con pesos mexicanos y funciona bien pero si me puedes ayudar con la moneda de Honduras que es «Lempiras» te lo agradeceré.

    • 1452 weab68 diciembre 20, 2016 a las 6:56 pm

      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

      [image: Abrimos el editor de Visual Basic]

      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

      [image: Insertando el Modulo para pegar el codigo]

      En la ventana que se abre pegamos el codigo de la macro

      [image: pegamos el codigo]

      [image: codigo pegado]

      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)

      [image: Imagen final]

      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.

      **************************************************************

      Edición 09 de Octubre de 2013.

      https://www.dropbox.com/s/c1tad1rde15rbgs/Numeros_a_letras.xls

      Pongo a su disposición un libro de Excel ya con la macro listo para usar:

      No olviden habilitar las macros.

      **************************************************************

  1191. 1453 Rous diciembre 22, 2016 a las 3:42 pm

    Muchas gracias es muy clara la explicación, me sirvió mucho y es muy fácil. Saludos

  1192. 1454 LORENA marzo 14, 2017 a las 11:44 am

    FUNCIÓN PARA QUE SE COLOQUE SOLO EL NUMERO EN LETRAS Y ELIMINAR «00/100 M.N.»

    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 = » » & PesosMN & IIf(tyCantidad > 1, » DE PESOS «, » PESO «)
    End Function

  1193. 1455 lesya889 abril 27, 2017 a las 1:24 pm

    muchas gracias por la información fue de muchíiiisima ayuda 😉

  1194. 1456 jose junio 6, 2017 a las 5:39 pm

    esta muy completa tu informacion, me agrado solo que quisiera que en lugar que sean pesos sea dolares, como se puede hacer
    espero me puedas ayudar

    saludos…

  1195. 1457 Zulma Fabiola junio 27, 2017 a las 10:08 am

    Muchisisisisimas gracias Gonzalo..!! He utilizado tu macro en mi trabajo y me ha ayudado bastante diría yo…. Pero he encontrado que al ser la cantidad $00.00 no indica el «Cero» con letra…. Me puedes ayudar de favor..??

    Otro detalle al final de la instrucción…. Como puede indicar ……. «Con» …./100 ..??
    Ejemplo: Son Cero Pesos con 00/100 MN

  1196. 1459 BRYAN octubre 2, 2017 a las 4:26 pm

    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, » Nuevos Soles «, » PESO «) & Format(Str(lyCentavos), «00») & «/100 )»
    End Function

  1197. 1460 BRYAN octubre 3, 2017 a las 12:10 pm

    ESTO ES PARA PERÚ´

    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(«», «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, » con «, » PESO «) & Format(Str(lyCentavos), «00») & «/100 » & «Nuevos Soles»
    End Function

  1198. 1461 Rodrigo noviembre 9, 2017 a las 4:56 pm

    Excelente, no siempre se encuentran explicaciones bien detalladas, GRACIAS.

  1199. 1462 aprendiendocadadía diciembre 27, 2017 a las 6:12 pm

    Muy buena informacion y con pasos muy secillos, batalle un poco como la mayoria en que no me dejaba realizarlo en otro archivos, leyendo los cometarios encontre este aporte de pelayo que fue el que me ayudo:

    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.

    MUCHAS GRACIAS, ME HA SIDO DE MUCHA UTILIDAD.

  1200. 1463 Yasmina enero 26, 2018 a las 9:32 pm

    Excelente, funciona a la primera. Muchas gracias

  1201. 1464 Germán May 25, 2018 a las 8:58 pm

    Buena noche y muchas gracias. Quisiera saber como se modifica la macro para que el resultado de miles de millones, pues la macro actual es hasta centenas de millones.

  1202. 1465 Vane septiembre 6, 2018 a las 8:52 am

    Gracias me sirvió mucho

  1203. 1466 Arlette septiembre 27, 2018 a las 12:33 pm

    Muchisimas gracias Contador de gran Bendición su blog, Dios lo Bendiga por apoyar a otros….

  1204. 1467 Julio César octubre 13, 2018 a las 1:40 pm

    Saludos esta muy bien tu desarrollo, lo único que espero puedas corregir es el uso correcto para cantidades en el rango de los 1000.00 a los 1999.99, lo correcto es escribir: «Mil pesos o Mil…» a diferencia que empleas » Un mil…»

  1205. 1468 Sthiv octubre 26, 2018 a las 10:10 am

    Hola, habría manera de mejorar el código para que pueda hacer la conversión después de 999.999.999 Pesos colombianos, al llegar a los 1.000.000.000 deja de funcionar.

  1206. 1469 Sathiel diciembre 27, 2018 a las 5:12 pm

    me ayudo mucho, pero solo que me gustaria que no apareciera al principio la palabra «son» ya que no me permiten en el trabajo que vaya asi si pudieras ayudarme te lo agradeceria….

  1207. 1470 Moisés julio 12, 2019 a las 9:22 am

    HOLA CONSULTA, Cómo puedo hacer que la macro quede graba y habilitada para cualquir libro de excel, al abrir nuevamente el archivo la funcion desaparece y tengo q volver a copiarla en visual basic

  1208. 1471 Rpo91 febrero 18, 2020 a las 12:02 pm

    ¡Sos un capo! ¡Muchisimas gracias por este aporte!

  1209. 1472 Adolfo marzo 13, 2020 a las 5:57 pm

    Buen día, una consulta, si tengo que poner en una celda con letra dos celdas en las cuales hay dos valores distintos y monedas distintas, por ejemplo en una celda tengo 15.10 pesos y en la otra de al lado tengo 25.40 dolares, como le hago para que me aparezca en una sola celda y con letra: ** QUINCE PESOS 10/100 M.N. ** MÁS ** VEINTICINCO DOLARES 40/100 USD. Y cuando sea cero la cantidad, aparezca CERO PESOS 00/100 M.N. ** MÁS** CERO DOLARES 00/100 USD., alguien podría ayudarme? Saludos!

  1210. 1473 Adolfo marzo 13, 2020 a las 7:37 pm

    Este es mi Macros:

    ‘Funcion para pasar numeros a letras
    Function NumLetras(Valor As Currency, Optional MonedaSingular As String = «», Optional MonedaPlural As String = «») 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
    Dim ValorEntero As Long
    Valor = Round(Valor, 2)
    lyCantidad = Int(Valor)
    ValorEntero = lyCantidad
    lyCentavos = (Valor – 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
    NumLetras = lcBloque
    Case 2
    NumLetras = lcBloque & IIf(lnBloqueCero = 3, Null, » MIL») & NumLetras
    Case 3
    NumLetras = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, » MILLON», » MILLONES») & NumLetras
    End Select
    lnNumeroBloques = lnNumeroBloques + 1
    Loop Until lyCantidad = 0
    NumLetras = NumLetras & » DÓLARES » & Format(Str(lyCentavos), «00») & «/100 » & IIf(ValorEntero = 1, MonedaSingular, MonedaPlural)
    End Function

    Pero quiero que me aparezca «CERO DOLARES 20/100 por ejemplo, ya que con esta función me aparece «DOLARES 20/100»

    Podrían ayudarme?

    Saludos!

  1211. 1474 Javier May 5, 2020 a las 6:15 pm

    hola yo ocupo cantidades de hasta $ 10,000,000,000.00 pero el macro llega hasta $ 999,000,000.00 por todo lo demás muy buena macro!!

  1212. 1475 Javier. May 5, 2020 a las 6:17 pm

    mi petición es podrás ayudarme con la macro hasta $ 10,000,000,000.00 en pesos mexicanos? de antemano gracias y saludos.

  1213. 1476 ENRIQUE VELAZQUEZ noviembre 18, 2020 a las 2:29 pm

    Excelente, gracias!!!

  1214. 1477 Alex marzo 10, 2021 a las 6:56 pm

    Muy buen artículo gracias, también hay una APP Android para usar en celulares y tabletas, que convierte números a palabras, ideal para escribir rápidamente, números en formato de letras para cheques,
    contratos o en documentos importantes, esta APP esta disponible en:

    https://play.google.com/store/apps/details?id=net.sabro.numerosaletras

  1215. 1478 Juan Blas junio 2, 2022 a las 1:59 pm

    Gonzalo, desde CDMX. Mil gracias por el apoyo. Eres Genial¡

  1216. 1480 Nena marzo 21, 2023 a las 2:10 pm

    CÓMO QUITAR EL ESPACIO QUE APARECE EN EL PRIMER PARENTESIS?, GRACIAS

  1217. 1481 Edward May 20, 2023 a las 8:36 am

    Saludos, yo quiero saber como poner hasta los centavos en letra, no encuentro como hacerlo y enserio lo necesito, si me pueden ayudar escríbanme al correo adonayreales98@gmail.com

  1218. 1482 Ammiel Arturo Marte marzo 6, 2024 a las 3:13 pm

    aqui te dejo un unos ejemplos para convertir numero a letras en excel usando vba mas detalle


  1. 1 Quitar contraseñas en libros de Excel « gonzalo_conta Trackback en enero 21, 2008 a las 11:40 pm
  2. 2 Hello world! « Jamesbg75's Blog Trackback en enero 17, 2010 a las 11:35 pm
  3. 3 Cómo convertir números a letras en Excel « Aprenda Excel Paso a Paso Trackback en marzo 4, 2010 a las 2:21 pm
  4. 4 Cómo convertir números a letras en Excel | Experto En Excel Trackback en May 24, 2010 a las 2:27 am
  5. 5 RECUPERACION DE ARCHIVOS Y CONTRASEÑAS | CBSMICRO Trackback en junio 16, 2013 a las 6:11 am
  6. 6 Convertir de números a letras en Word Trackback en agosto 13, 2013 a las 11:39 am
  7. 7 Cómo convertir números a letras en Excel | ExpertoEnExcel.com Trackback en febrero 28, 2014 a las 3:50 pm
  8. 8 www.exceltrabajaporti.com – Función para convertir de Números a Letras Trackback en abril 7, 2014 a las 3:27 pm
  9. 9 resultado mega sena Trackback en agosto 21, 2014 a las 9:40 pm
  10. 10 Website Trackback en diciembre 19, 2018 a las 7:36 pm
  11. 11 Coach training Procedure Trackback en diciembre 4, 2020 a las 4:29 pm
  12. 12 Couples Relationship Help Trackback en abril 11, 2021 a las 2:23 am

Replica a anna_isa1641@yahoo.com.mx Cancelar la respuesta




a

octubre 2007
L M X J V S D
1234567
891011121314
15161718192021
22232425262728
293031  

Estadisticas

  • 1.509.773 hits