Dec
13

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

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.

via: Gonzalo Conta

    Leer Mas   

Comments

Oscar on 10 January, 2008 at 7:10 pm #

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


lite2 on 10 January, 2008 at 7:39 pm #

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


Enrique on 6 February, 2008 at 10:32 am #

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


David on 11 February, 2008 at 9:47 pm #

muy bueno, felicidades…..


Robert on 25 April, 2008 at 1:21 pm #

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.


balio...... on 5 May, 2008 at 6:42 pm #

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


Uitzizil on 21 May, 2008 at 11:33 pm #

Excelente aporte, mil gracias…


jcv on 30 May, 2008 at 11:46 am #

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


linuxman on 17 June, 2008 at 11:16 am #

Compañero.. si va a copiar los escritos de alguien más justo es que ponga el crédito correspondiente dentro del articulo.


lite2 on 17 June, 2008 at 12:21 pm #

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.


linuxman on 17 June, 2008 at 12:31 pm #

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.


david on 10 July, 2008 at 11:27 am #

Gracias tu explicación fue muy clara y ademas propisiste un ejemplo de principio a fin, como deberia ser. sigue adelante


JUAN on 17 July, 2008 at 2:32 pm #

muchas gracias por definir exactamente la programacion para convertir numeros a letras gracias


Alejandro on 19 July, 2008 at 12:10 pm #

Este codigo esta perfecto y muy clara la explicacion FELICIDADES ! Como hago para que me funcione en cada hoja de excel que abra?
GRACIAS


Pedro Sanchez on 25 July, 2008 at 7:09 pm #

Oye gracias por el tip, yo tenia uno pero ya no me queria sacar la cantidad en letra, y este me quedó de perlas.


JULIA RIS on 7 August, 2008 at 4:36 pm #

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


KAREN on 12 August, 2008 at 1:07 pm #

Muchas gracias fue muy util la información de crear macros para escribir las cantidades con letra


Emilio on 22 September, 2008 at 12:24 pm #

Me fue muy util, ademas explicado paso a paso, muy bueno, muchas gracias


JUAN ERNESTO on 24 September, 2008 at 6:14 pm #

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


lite2 on 24 September, 2008 at 8:23 pm #

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


JUAN CARLOS on 27 September, 2008 at 12:56 pm #

Gracias Amigos, esta información me va a ser de mucha utilidad en el trabajo, q mantengan ese espiritu de ayuda.


JOSE M on 7 October, 2008 at 1:09 pm #

Excelente aporte, mucho que me hacia falta..


Gerardo Xicohténcatl on 9 October, 2008 at 4:04 pm #

Tengo una duda, por que no se puede guardar el archivo, cuando lo cierro y lo abro de nuevo el macro desaperece


lite2 on 9 October, 2008 at 4:28 pm #

hay que habilitar los Macros cada vez que lo abras.


Alberto on 6 November, 2008 at 1:33 pm #

Queria saber si alguien me puede ayudar a desbloquear proyectos en VBA ya que no recuerdo las contraseñas.
gracias


lite2 on 6 November, 2008 at 1:45 pm #

Desconozco del tema amigo.


ENNA on 26 November, 2008 at 4:49 pm #

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!


PEPE on 28 November, 2008 at 4:37 pm #

ES UNA EXCELENTE MACRO SUPER


Escribe un Comentario
Name:
Email:
Website:
Comments: