Les dejo esta macro que se usa como formula para convertir cantidades numericas a letras, o sea valores de un cheque o una factura llevados a valor en letras, ejemplo: 1,500 (Mil quinientos pesos con 00/100)
Luego de pegar la macro que veran a continuacion, deben colocar una cantidad en la celda A1 o cualquier otra celda y en otra celda colocar la formula =pesos(A1) y el resultado sera:[TABLE=width: 313]
[TR]
[TD=width: 64]( UN MIL QUINIENTOS PESOS CON 00/100 )[/TD]
[/TR]
[/TABLE]
Ir al editor Visual Basic, insertar un modulo y pegar:
Function Pesos(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 Pesos = lcBloque Case 2 Pesos = lcBloque & IIf(lnBloqueCero = 3, Null, " MIL") & Pesos Case 3 Pesos = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, " MILLON", " MILLONES") & Pesos End Select lnNumeroBloques = lnNumeroBloques + 1 Loop Until lyCantidad = 0 Pesos = "(" & Pesos & IIf(tyCantidad > 1, " PESOS CON ", " CON PESO ") & Format(Str(lyCentavos), "00") & "/100 )" End Function[/PHP]
Les dejo esta macro que se usa como formula para convertir cantidades numericas a letras, o sea valores de un cheque o una factura llevados a valor en letras, ejemplo: 1,500 (Mil quinientos pesos con 00/100)
Luego de pegar la macro que veran a continuacion, deben colocar una cantidad en la celda A1 o cualquier otra celda y en otra celda colocar la formula =pesos(A1) y el resultado sera:[TABLE=width: 313]
[TR]
[TD=width: 64]( UN MIL QUINIENTOS PESOS CON 00/100 )[/TD]
[/TR]
[/TABLE]
Ir al editor Visual Basic, insertar un modulo y pegar:
valor_letras.xls