Você está na página 1de 2

Function Cletras(tyCantidad As Currency, Optional fmtoUnidad As Integer = 0, Opt ional Unidades As String = "Kilos", Optional Unidad As String = "Kilo",

Optional Genero As String = "M") As String Dim lyCantidad As Currency, lyCentavos As Currency, lnDigito As Byte, lnPrimerDi gito As Byte, lnSegundoDigito As Byte, lnTercerDigito As Byte, lcBloque As Strin g, lnNumeroBloques As Byte, lnBloqueCero Dim laUnidades As Variant, laDecenas As Variant, laCentenas As Variant, I As Var iant '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", "OCH O", "NUEVE", "DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE", "VEINTE", "VEINTIUN", "VEINTIDOS", "VEI NTITRES", "VEINTICUATRO", "VEINTICINCO", "VEINTISEIS", "VEINTISIETE", "VEINTIOCH O", "VEINTINUEVE") laDecenas = Array("DIEZ", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA ", "SETENTA", "OCHENTA", "NOVENTA") laCentenas = Array("CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", "QUIN IENTOS", "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 Cletras = lcBloque Case 2 Cletras = lcBloque & IIf(lnBloqueCero = 3, Null, " MIL") & Cletras

Case 3 Cletras = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercer Digito = 0, " MILLON", " MILLONES") & Cletras End Select lnNumeroBloques = lnNumeroBloques + 1 Loop Until lyCantidad = 0 Cletras = "SON: " & Cletras & IIf(tyCantidad > 1, " PESOS ", " PESO ") & " M/Cte ." End Function

Você também pode gostar