Función en Excel para calcular el ISPT anual

Me han pedido en el trabajo que desarrolle una función para calcular el ISPT anual en excel. Para ser sincero hace mucho tiempo que no programo en este lenguaje así que por favor sean piadosos si cometo una que otra barbaridad.

Para el cálculo del ISPT es necesario consultar un tabulador. Para hacer el cálculo más rápido decidí incluirlas en una matriz, la función busca los valores apropiados de la Cuota Fija y el Porcentaje sobre excedente.

También busca el Crédito al salario, así que el resultado de la función es negativo quiere decir que es a favor.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
Option Explicit
 
Public Function Calcular_ISPT_Anual(ByVal PercepcionesGravables As Double) As Double
'*****************************************************************************************************
'   FUNCION PARA CALCULAR EL ISPT ANUAL
'
'   Copyright (C) 2012 Francisco Javier de la Torre
'   Este código es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la
'   Licencia Pública General de GNU según es publicada por la Free Software Foundation, bien de la
'   versión 2 de dicha Licencia o bien (según su elección) de cualquier versión posterior.
'
'   Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso
'   sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR.
'   Véase la Licencia Pública General de GNU para más detalles.
'
'   Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha
'   sido así, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU.
'
'   Francisco Javier de la Torre.
'   http://linuxmanr4.com
'   inguanzo@gmail.com
'
'*****************************************************************************************************
    Dim ISPT_anual(8, 2) As Double
    Dim CREDITO_AL_SALARIO_ANUAL(10, 1) As Double
 
    Dim ISPT_LimiteInferior As Double
    Dim CuotaFija As Double
    Dim PorcentajeSobreExcedente As Double
 
    Dim i As Integer
 
    Dim ISPT As Double
    Dim CreditoAlSalario As Double
 
    'Definición de las tablas iniciales
    
    'ISPT ANUAL
    '==============================
    'Limite inferior
    ISPT_anual(0, 0) = 0.01
    ISPT_anual(1, 0) = 5952.85
    ISPT_anual(2, 0) = 50524.93
    ISPT_anual(3, 0) = 88793.05
    ISPT_anual(4, 0) = 103218.01
    ISPT_anual(5, 0) = 123580.21
    ISPT_anual(6, 0) = 249243.49
    ISPT_anual(7, 0) = 392841.97
    ISPT_anual(8, 0) = 999999999#   'Limite superior muy alto
    
    'Cuota fija
    ISPT_anual(0, 1) = 0
    ISPT_anual(1, 1) = 114.24
    ISPT_anual(2, 1) = 2966.76
    ISPT_anual(3, 1) = 7130.88
    ISPT_anual(4, 1) = 9438.6
    ISPT_anual(5, 1) = 13087.44
    ISPT_anual(6, 1) = 38139.6
    ISPT_anual(7, 1) = 69662.4
    ISPT_anual(8, 1) = 0
 
    'Porcentaje sobre excedente
    ISPT_anual(0, 2) = 0.0192
    ISPT_anual(1, 2) = 0.064
    ISPT_anual(2, 2) = 0.1088
    ISPT_anual(3, 2) = 0.16
    ISPT_anual(4, 2) = 0.1792
    ISPT_anual(5, 2) = 0.1994
    ISPT_anual(6, 2) = 0.2195
    ISPT_anual(7, 2) = 0.28
    ISPT_anual(8, 2) = 0
 
    'CREDITO AL SALARIO ANUAL
    '==============================
    'Limite inferior
    CREDITO_AL_SALARIO_ANUAL(0, 0) = 0.01
    CREDITO_AL_SALARIO_ANUAL(1, 0) = 1768.97
    CREDITO_AL_SALARIO_ANUAL(2, 0) = 2653.39
    CREDITO_AL_SALARIO_ANUAL(3, 0) = 3472.85
    CREDITO_AL_SALARIO_ANUAL(4, 0) = 3537.88
    CREDITO_AL_SALARIO_ANUAL(5, 0) = 4446.16
    CREDITO_AL_SALARIO_ANUAL(6, 0) = 4717.19
    CREDITO_AL_SALARIO_ANUAL(7, 0) = 5335.43
    CREDITO_AL_SALARIO_ANUAL(8, 0) = 6224.68
    CREDITO_AL_SALARIO_ANUAL(9, 0) = 7113.91
    CREDITO_AL_SALARIO_ANUAL(10, 0) = 7382.34
 
    'Credito
    CREDITO_AL_SALARIO_ANUAL(0, 1) = 407.02
    CREDITO_AL_SALARIO_ANUAL(1, 1) = 406.83
    CREDITO_AL_SALARIO_ANUAL(2, 1) = 406.62
    CREDITO_AL_SALARIO_ANUAL(3, 1) = 392.77
    CREDITO_AL_SALARIO_ANUAL(4, 1) = 382.46
    CREDITO_AL_SALARIO_ANUAL(5, 1) = 354.23
    CREDITO_AL_SALARIO_ANUAL(6, 1) = 324.87
    CREDITO_AL_SALARIO_ANUAL(7, 1) = 294.63
    CREDITO_AL_SALARIO_ANUAL(8, 1) = 253.54
    CREDITO_AL_SALARIO_ANUAL(9, 1) = 217.61
    CREDITO_AL_SALARIO_ANUAL(10, 1) = 0#
 
    'Iniciamos el cálculo del ISPT anual.
    
    CuotaFija = 0: PorcentajeSobreExcedente = 0
 
    'Buscamos un valor apropiado en la tabla del ISPT Anual
    i = 0
    Do
        If ISPT_anual(i, 0) > PercepcionesGravables Then
            ISPT_LimiteInferior = ISPT_anual(i - 1, 0)
            CuotaFija = ISPT_anual(i - 1, 1)
            PorcentajeSobreExcedente = ISPT_anual(i - 1, 2)
            Exit Do
        Else
            i = i + 1
        End If
    Loop Until i = 9
 
    'Ya tenemos los valores de Cuota Fija y Porcentaje sobre excedente, procedemos a calcular el ISPT Anual
    ISPT = Round(CuotaFija + ((PercepcionesGravables - ISPT_LimiteInferior) * PorcentajeSobreExcedente), 2)
 
    'Ahora Buscamos el crédito al Salario.
    
    CreditoAlSalario = 0
    i = 0
 
    Do
        If CREDITO_AL_SALARIO_ANUAL(i, 0) > (PercepcionesGravables / 12) Then
            CreditoAlSalario = CREDITO_AL_SALARIO_ANUAL(i - 1, 1)
            Exit Do
        Else
            i = i + 1
        End If
    Loop Until i = 10
 
    Calcular_ISPT_Anual = ISPT - (CreditoAlSalario * 12)
 
End Function

La función es Software Libre y claro que es perfectible, si quieren hacer alguna corrección o sugerir alguna modificación adelante.

Si lo prefieren pueden descargar una hoja de cálculo de ejemplo Calculo del ISPT.

Actualización.

Me dicen que esta función en realidad calcula la Retención del ISR para sueldos y salarios y el Crédito al salario ahora se le llama Subsidio para el empleo, la verdad no soy contador y desconozco los términos correctos. A lo único que le veo problema es con el nombre de las variables. En fin, si es necesario haré una versión 2 corregida y aumentada.

Popularity: 11%

Print Print

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">