domingo, 12 de febrero de 2012

MACRO DE ISR PARA HOJA DE CALC

Esta en  una función que es útil para el calculo de la Retención del Impuesto sobre la Renta de los empleados permanentes con las tablas de la reforma del 14 de diciembre del 2011, vigentes en el Salvador.

Funciona en Calc de Open office.   En Linux, así también en Windows

se necesita copiar el código en macros de calc.luego en la hoja de Cal  se debe introducir el Monto devengado  y el código de retención  que para el caso 1 seria el calculo semanal caso 2 calculo quincenal y caso 3 el calculo mensual. 


Este es el código.


REM  *****  BASIC  *****
REM  *****  BASIC  *****
REM **********FUNCION PARA CALCULO DEL IMPUESTO SOBRE LA RENTA**********

Option Explicit
Function   ISRENTA002(sueldo As Variant , Per AS Integer) as variant
Dim AFP as Variant, MSujeto as Variant
Dim Impuesto As Variant
Dim Exceso As Variant
Dim Tabla1 As Variant, Tabla2 As Variant, Tabla3 As Variant, Tabla4 As Variant, des As Variant
Dim Cfija1 As Variant, Cfija2 As Variant,Cfija3 As Variant, Cfija4 As Variant



IF Sueldo > 0 then   
        AFP = sueldo * 0.0625
        MSujeto = sueldo - AFP
       
       
        ' SELECCION  DEL PERIODO PUEDE SER SEMANAL QUINCENAL O MENSUAL
        Select Case Per
            'CALCULO DEL IMPUESTO SOBRE LA RENTA QUINCENAL
            Case 2
               
                Tabla1 = 243.80
                Tabla2 = 321.42   
                Tabla3 = 457.90
                Tabla4 = 1029.33
                Cfija1 = 8.74
                Cfija2 = 16.35
                Cfija3 = 30.00
                Cfija4 = 144.28
                                           
                Impuesto = Calculo001(MSujeto,Tabla1,Tabla2, Tabla3,Tabla4, Cfija1,Cfija2,Cfija3,Cfija4)
               
            Case 1'CALCULO DEL IMPUESTO MENSUAL
               
                Tabla1 = 487.60
                Tabla2 = 642.85   
                Tabla3 = 915.81
                Tabla4 = 2058.67
                Cfija1 = 17.48
                Cfija2 = 32.70
                Cfija3 = 60.00
                Cfija4 = 288.57
               
                Impuesto = Calculo001(MSujeto,Tabla1,Tabla2, Tabla3,Tabla4, Cfija1,Cfija2,Cfija3,Cfija4)
                                           
            case 3'CALCULO DEL IMPUESTO SEMANAL
                       
                Tabla1 = 121.90
                Tabla2 = 160.71   
                Tabla3 = 228.95
                Tabla4 = 514.66
                Cfija1 = 4.37
                Cfija2 = 8.17
                Cfija3 = 15.00
                Cfija4 = 72.14
               
                Impuesto = Calculo001(MSujeto,Tabla1,Tabla2, Tabla3,Tabla4, Cfija1,Cfija2,Cfija3,Cfija4)
                       
            Case else
                'CALCULO DEL IMPUESTO SOBRE LA RENTA MENSUAL
                MsgBox "Error de codigo: Codigo 1 = Mensual; Codigo 2 = Quicenal; Codigo 3 = Semanal",64
                ISRENTA002 = ""
                exit Function
        end Select
       
Else
Impuesto = " "
end If

ISRENTA002 = Impuesto

end function
REM ***********FUNCION DE CALCULO GENERAL************

function Calculo001(Ms As Variant,Ran1 As Variant,Ran2 As Variant,Ran3 As Variant,Ran4 As Variant, cf1 As Variant, cf2 As Variant, cf3 As Variant, cf4 As Variant ) As Variant

Dim Impues As Variant
Dim Porc As Variant
Dim Impcont As Variant
Dim Exceso As Variant

' MS MONTO SUJETO
' Ran1 Rango de de tabla
If MS >= 0 and MS <= Ran1 Then
                    Impues = 0
                    Else If  MS > Ran1 and MS <= Ran2 Then                       
                             Exceso = MS - Ran1
                             Porc = Exceso * 0.10
                             Impues = cf1 + Porc
                             Else If MS > Ran2 and  MS <= Ran3 then
                                Exceso = MS - Ran2
                                 Porc = Exceso * 0.10
                                 Impues = cf2 + Porc
                                 Else If MS > Ran3 and MS <= Ran4 then
                                     Exceso = MS - Ran3
                                     Porc = Exceso * 0.20
                                     Impues = cf3 + Porc
                                 else
                                    Exceso = MS - Ran4
                                    Porc = Exceso * 0.30
                                    Impues = cf4 + Porc
                                end If
                            end IF
                    end if
                end if
Calculo001 = Impues


end function





Este código puede ser útil para contadores o personas que elaboran planillas.
La manera de llamarla es la siguiente.

En una columna los sueldos devengados y en la columna  del calculo escriben la función

=ISRENTA002(columna; código)