24/07/2011 | Hola que tal amigos, el dia de hoy quiero publicar una función para microsoft Excel que esta enfocada a llenar facturas o para contadores principalmente se trata de una macros que nos permitirá convertir los números a letras
Ejemplo de 250 a Son: (DOS CIENTOS CINCUENTA PESOS 00/100 M.N.)
En MS Excel no existe ninguna función predefinida que nos permita realizar esta tarea es por eso que nos auxiliaremos de una Macros para poder hacer comencemos:
Paso 1:
Lo primero que debemos de hacer será crear la macros que utilizaremos para ello seleccionaremos la pestaña vista y a continuación en el botón macros o bien con la combinación de teclas “Alt + F8″ En la barra de texto “Nombre de la Macro” escribiremos el nombre que tendra esta macro
Paso 2:
Una vez hecho lo anterior se abrira una venta de Visual Basic en la que vamos a borrar lo que tiene la ventana y a pegar el siguiente codigo:
Sub texto()
Function CordobasMN(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 1, " CORDOBAS CON ", " CORDOBA CON") & Format(Str(lyCentavos), "00") & "/100"
End Function
Luego de insertar el codigo
Paso 3:
Despues del paso anterior podemos llamar a nuestra funcion desde la hoja de excel para llamarla lo haremos igual que llamamos cualquier otra función “=CordobasMN” en la celda donde esperamos obtener el resultado y listo
Eso es todo amigos espero que les sirva
|
|