Una de las funciones de Microsoft Excel más buscadas es la de 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”.. ke no son mas ke instrucciones ke nos ayudan a automatizar tareas en Excel (también se usa en Word.. Access.. etc.).

PROCEDIMIENTO:

** primero necesitamos el código.. vamos a usar este cuyo autor es Saúl López.. con una pequeña modificación al código para ke aparezca “SON:” como se usa aquí en México.
Function PesosMN(tyCantidad As Currency) As StringDim lyCantidad As Currency, lyCentavos As Currency, lnDigito As Byte, lnPrimerDigito As Byte, lnSegundoDigito As Byte, lnTercerDigito As Byte, lcBloque As String, lnNumeroBloques As Byte, lnBloqueCeroDim laUnidades As Variant, laDecenas As Variant, laCentenas As Variant, I As Variant 'Si esta como Option ExplicittyCantidad = Round(tyCantidad, 2)lyCantidad = Int(tyCantidad)lyCentavos = (tyCantidad - lyCantidad) * 100laUnidades = 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 = 1DolnPrimerDigito = 0lnSegundoDigito = 0lnTercerDigito = 0lcBloque = ""lnBloqueCero = 0For I = 1 To 3lnDigito = lyCantidad Mod 10If lnDigito <> 0 ThenSelect Case ICase 1lcBloque = " " & laUnidades(lnDigito - 1)lnPrimerDigito = lnDigitoCase 2If lnDigito <= 2 ThenlcBloque = " " & laUnidades((lnDigito * 10) + lnPrimerDigito - 1)ElselcBloque = " " & laDecenas(lnDigito - 1) & IIf(lnPrimerDigito <> 0, " Y", Null) & lcBloqueEnd IflnSegundoDigito = lnDigitoCase 3lcBloque = " " & IIf(lnDigito = 1 And lnPrimerDigito = 0 And lnSegundoDigito = 0, "CIEN", laCentenas(lnDigito - 1)) & lcBloquelnTercerDigito = lnDigitoEnd SelectElselnBloqueCero = lnBloqueCero + 1End IflyCantidad = Int(lyCantidad / 10)If lyCantidad = 0 ThenExit ForEnd IfNext ISelect Case lnNumeroBloquesCase 1PesosMN = lcBloqueCase 2PesosMN = lcBloque & IIf(lnBloqueCero = 3, Null, " MIL") & PesosMNCase 3PesosMN = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, " MILLON", " MILLONES") & PesosMNEnd SelectlnNumeroBloques = lnNumeroBloques + 1Loop Until lyCantidad = 0PesosMN = "SON: (" & PesosMN & IIf(tyCantidad > 1, " PESOS ", " PESO ") & Format(Str(lyCentavos), "00") & "/100 M.N.)"End Function
** ahora 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


NOTA: Es importante ke cierres todos los libros ke tengas operando y dejes abierto solo el libro en el ke estas trabajando.. ya ke 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 ke se abre pegamos el codigo de la macro.

Para ver la imagen en tamaño original, haga clic aquí.



** Listo.. ya tenemos nuestro macro listo para trabajar.

** Tons cerramos el editor de Visual Basic (lo puedes hacer con Alt+Q) y regresamos a Microsoft Excel.

** Ora vamos a probarlo.. en la celda A1 ponemos un importe.. pondremos como ejemplo: 1500.21.. abajo en la celda A2 ponemos =PesosMN(A1)

Para ver la imagen en tamaño original, haga clic aquí.


Es toño.. si pudiste hacer el ejercio hasta aquí.. ya puedes ponerlo en todos tus libros de trabajo.

0 Adictos al desmadre:

 
Top
Blogger Template