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!, desde entonces han surgido muchas variantes y modificaciones; pero muy pocos sitios o casi nunguno muestran como usarlos.
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., haciendo una pequeña modificación al código para que aparezca “SON:” como se usa aquí en México.
Function PesosMN(tyCantidad As Currency) As String
Dim lyCantidad As Currency, lyCentavos As Currency, lnDigito As Byte, lnPrimerDigito As Byte, lnSegundoDigito As Byte, lnTercerDigito As Byte, lcBloque As String, lnNumeroBloques As Byte, lnBloqueCero
Dim laUnidades As Variant, laDecenas As Variant, laCentenas As Variant, I As Variant 'Si esta como Option Explicit
tyCantidad = Round(tyCantidad, 2)
lyCantidad = Int(tyCantidad)
lyCentavos = (tyCantidad - lyCantidad) * 100
laUnidades = Array("UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE", "DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE", "VEINTE", "VEINTIUN", "VEINTIDOS", "VEINTITRES", "VEINTICUATRO", "VEINTICINCO", "VEINTISEIS", "VEINTISIETE", "VEINTIOCHO", "VEINTINUEVE")
laDecenas = Array("DIEZ", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA", "SETENTA", "OCHENTA", "NOVENTA")
laCentenas = Array("CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", "QUINIENTOS", "SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS")
lnNumeroBloques = 1
Do
lnPrimerDigito = 0
lnSegundoDigito = 0
lnTercerDigito = 0
lcBloque = ""
lnBloqueCero = 0
For I = 1 To 3
lnDigito = lyCantidad Mod 10
If lnDigito <> 0 Then
Select Case I
Case 1
lcBloque = " " & laUnidades(lnDigito - 1)
lnPrimerDigito = lnDigito
Case 2
If lnDigito <= 2 Then
lcBloque = " " & laUnidades((lnDigito * 10) + lnPrimerDigito - 1)
Else
lcBloque = " " & laDecenas(lnDigito - 1) & IIf(lnPrimerDigito <> 0, " Y", Null) & lcBloque
End If
lnSegundoDigito = lnDigito
Case 3
lcBloque = " " & IIf(lnDigito = 1 And lnPrimerDigito = 0 And lnSegundoDigito = 0, "CIEN", laCentenas(lnDigito - 1)) & lcBloque
lnTercerDigito = lnDigito
End Select
Else
lnBloqueCero = lnBloqueCero + 1
End If
lyCantidad = Int(lyCantidad / 10)
If lyCantidad = 0 Then
Exit For
End If
Next I
Select Case lnNumeroBloques
Case 1
PesosMN = lcBloque
Case 2
PesosMN = lcBloque & IIf(lnBloqueCero = 3, Null, " MIL") & PesosMN
Case 3
PesosMN = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, " MILLON", " MILLONES") & PesosMN
End Select
lnNumeroBloques = lnNumeroBloques + 1
Loop Until lyCantidad = 0
PesosMN = "SON: (" & PesosMN & IIf(tyCantidad > 1, " PESOS ", " PESO ") & Format(Str(lyCentavos), "00") & "/100 M.N.)"
End Function
Bien, ahora que ya tenemos el código vamos a insertarlo en nuestra hoja de trabajo de Microsoft Excel. Recomendable trabajar en un libro nuevo.
Hacemos clic en Herramientas->Macros->Editor de Visual Basic, o simplemente presionando Alt+F11

Es importante que cierres todos los libros que tengas abierto y dejes abierto solo el libro en el que estas trabajando ya que podría dificultarte encontrar tu libro en el explorador de proyectos (lado izquierdo de tu pantalla, si no lo ves presiona Ctrl+R)
Una vez abierto el editor de Visual Basic nos vamos a Insertar->Modulo

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


Listo, ya tenemos nuestro macro listo para trabajar, cerramos el editor de Visual Basic, lo puedes hacer con Alt+Q y regresamos a Microsoft Excel
Vamos a probarlo, en la celda A1 ponemos un importe, yo pondré 1500.21, abajo, en la celda A2 ponemos =PesosMN(A1)

Bien, si pudiste hacer el ejercio hasta aquí, ya puedes ponerlo en todos tus libros de trabajo, buena suerte.
via: Gonzalo Conta
Tengo una duda, sabes como sumar en una columna letras, es decir, si tienes
A B M
A A A B B B M M A A B = 5 4 2
Gracias
La verdad no lo se, puse este articulo porque me pareció interesante la idea de que la gente descubriera como pasar cantidades a letras en excel, ya que habemos muchos que lo utilizamos a diario, si quieres pueder dirigirte a: http://gchable.wordpress.com/2007/10/14/4/#more-4
que fue donde saque este articulo, lo publiqué tal cual porque era perfecto. al final puedes ver que esta el enlance a su blog. Espero te sirva
Muchas gracias por esta gran ayuda para convertir numeros a texto en excel, esta genial, y me funciona bien, tenia una parecida a esta pero en la cuestion de los decimales tiene un pequeño error, ya que no los escribe tal y como son no se a donde te la pueda enviar para ver si tu puedes corregirle el error y se pudiera publicar tambien, funciona bien solo cuando son cantidades mayores o son cero centavos o fracciones de centavos no lo hace bien.
Gracias
muy bueno, felicidades…..
Hola, a ver si me pueden ayudar, me intereso mucho el programa y es de gran ayuda. Solo que cuando guardo el docto. al abrirlo ya no me respeta la formula.
hace algun tiempo me pasaron un programilla, como complemento de excel que solo lo ejecutas y automaticamente puedes convertir numeros a texto. solo que perdi el archivo cuando actualizaron mi computadora, realmente no logro realizarlo con los codigos que encuentro en internet. me gustaria si alguien tiene el programa que comente me lo envie porfavor………la verdad me urge…. grax………..
Excelente aporte, mil gracias…
Excelente herramienta para ahorrar tiempo y magnífica la explicación e ilustración de cómo usar visual basic para quienes no lo hemos usado. De grandísima utilidad!!
Compañero.. si va a copiar los escritos de alguien más justo es que ponga el crédito correspondiente dentro del articulo.
Compañero, por eso estoy indicando en el comentario no. 2 que lo obtuve de:
http://gchable.wordpress.com/2007/10/14/4/#more-4
y ademas en la parte final del articulo esta tambien indicado.
Agradesco tu comentario.
Ahhh tienes razón, no lo había visto y es que eso pasa cuando solamente se copia y pega sin preocuparse un poco de como se ve la nota en tu página.
Gracias tu explicación fue muy clara y ademas propisiste un ejemplo de principio a fin, como deberia ser. sigue adelante
muchas gracias por definir exactamente la programacion para convertir numeros a letras gracias
Este codigo esta perfecto y muy clara la explicacion FELICIDADES ! Como hago para que me funcione en cada hoja de excel que abra?
GRACIAS
Oye gracias por el tip, yo tenia uno pero ya no me queria sacar la cantidad en letra, y este me quedó de perlas.
MUCHAS GRACIAS POR SUBIR ESE ARTICULO ESTA MUY BIEN Y SOBRE TODO BIEN EXPLICADO DE COMO PODER BAJARLO E INCORPORARLO A EXCEL ME FUE DE MUCHA AYUDA GRACIAS
Muchas gracias fue muy util la información de crear macros para escribir las cantidades con letra
Me fue muy util, ademas explicado paso a paso, muy bueno, muchas gracias
Excelente articulo, solo una pregunta si escribo 1,000,000.00 la formula da un millon pesos 00/100 m.n.
como hago para que ponga la palabra “de”? antes de la palabra pesos.
GRACIAS
Muy buena pregunta, no esta configurado para poner “Millones de Pesos” ya que al agregarle esa funcion pondria en cantidades como 1,234,567.00 “1 millon de pesos doscientos treinta y cuatro mil quinientos secenta y siete pesos”, pero si eres afortunado para vender millones de pesos puedes mandar a hacer un sistema mas avanzado, no ya en serio habria que investigarle yo creo que si se pueda el codigo lo obtuve de este link: http://gchable.wordpress.com/2007/10/14/4/#more-4
ya que me parecio bastante util.
Gracias por tu comentario
Gracias Amigos, esta información me va a ser de mucha utilidad en el trabajo, q mantengan ese espiritu de ayuda.
Excelente aporte, mucho que me hacia falta..
Tengo una duda, por que no se puede guardar el archivo, cuando lo cierro y lo abro de nuevo el macro desaperece
hay que habilitar los Macros cada vez que lo abras.
Queria saber si alguien me puede ayudar a desbloquear proyectos en VBA ya que no recuerdo las contraseñas.
gracias
Desconozco del tema amigo.
BUENAS TARDE! ME FUE DE GRAN UTILIDAD SEGUI TODO EL PROCESO PARA HACER LA FORMULA PERO AL CERRAR EL ARCHIVO SE DESCONFIGURA, HABRA ALGUNA MANERA PARA EVITARLO ¡GRACIAS!
ES UNA EXCELENTE MACRO SUPER