none
WORD 2013, PONER EN AUTOMATICO LA CANTIDAD DE PESOS EN LETRA AL TECLEARLA EN NUMERO RRS feed

  • Pregunta

  • Hola a todos!

    Como podria configurar en un documento de Word 2013 que al teclear una cantidad en numero, a lado de dicha cantidad aparezca en letra la cantidad, asi:

    $128739.34( CIENTO VEINTIOCHO MIL SETECIENTOS TREINTA Y NUEVE PESOS 34/100 M.N.)

    Les inserto este bloque de codigo que lo inserto en un modulo en el editor de Visual Basic desde excel 2013 y que ahi si se como funciona, en Word 2013, abro el editor de Visual Basic y lo inserto en un modulo pero ya no se que sigue en word para que funcione como lo deseo.

    Saludos

    Function PesosMN(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
    PesosMN = lcBloque
    Case 2
    PesosMN = lcBloque & IIf(lnBloqueCero = 3, Null, " MIL") & PesosMN
    Case 3
    PesosMN = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, " MILLON", " MILLONES") & PesosMN
    End Select
    lnNumeroBloques = lnNumeroBloques + 1
    Loop Until lyCantidad = 0
    PesosMN = "SON: (" & PesosMN & IIf(tyCantidad > 1, " PESOS ", " PESO ") & Format(Str(lyCentavos), "00") & "/100 M.N.)"
    End Function

    • Cambiado Moderador M viernes, 12 de agosto de 2016 15:03
    jueves, 11 de agosto de 2016 16:52