Numeros a Letras
-
Upload
conde-juanjo -
Category
Documents
-
view
11 -
download
0
description
Transcript of Numeros a Letras
Function QuetzalesMN(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 1QuetzalesMN = lcBloqueCase 2QuetzalesMN = lcBloque & IIf(lnBloqueCero = 3, Null, " MIL") & QuetzalesMNCase 3QuetzalesMN = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTe
rcerDigito = 0, " MILLON", " MILLONES") & QuetzalesMNEnd SelectlnNumeroBloques = lnNumeroBloques + 1Loop Until lyCantidad = 0QuetzalesMN = " " & QuetzalesMN & IIf(tyCantidad > 1, " QUETZALES ", " QUETZALES ") & Format(Str(lyCentavos), " ") & "M/CTE."End Function