Calcular ISR de clientes
Hola, buen día espero me puedan ayudar a resolver mi problema.
La cuestión es la siguiente:
Necesito calcular el ISR de clientes por lo que a a partir de una cantidad necesito que sea comparada con una tabla (limite superior) y de ahí sacar su impuesto y cuota fija para poder hacer los calculos; dejo el código que ya he escrito pero algo pasa en el ciclo "do-while-loop" por que no sigue comparando.
Sub stock()
'RUTINA PARA HACER EL CALCULO DE IMPUESTOS
'DECLARAMOS VARIABLES PARA CALCULOS
Dim importe As Double, inferior As Double, impuesto As Double
Dim cuota As Double, temp As Double
'DAMOS VALOR AL IMPORTE ANTES DE IMPUESTO
importe = Range("c5").Value
'VERIFICAMOS LOS RANGOS DE LA TABLA EN LA HOJA "TABLA IMPUESTOS
'CON UN BUCLE (do while-loop) PARA COMPARARLAS DENTRO DE LOS RANGOS
Sheets("TABLA_IMPUESTOS").Select
Range("a2").Select
temp = ActiveCell.Value
Do While temp > importe
'SI EL VALOR ESTA DEBAJO DEL RANGO ENTONCES DAMOS VALORES
'A LAS VARIABLES DE inferior E impuesto
If ActiveCell.Value < importe Then
ActiveCell.Offset(0, 1).Select
inferior = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
cuota = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
impuesto = ActiveCell.Value
End If
ActiveCell.Offset(1, 0).Select
Loop
'PONEMOS LOS VALORES DE LAS VARIABLES EN LAS CELDAS
Sheets("TEMPORAL").Select
Range("a1").Select
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = inferior
ActiveCell.Offset(0, 1).Value = impuesto
ActiveCell.Offset(0, 2).Value = cuota
ActiveCell.Offset(1, 0).Select
End Sub
También les dejo la tabla donde debe comparar el valor:
Limite superior limite inferior cuota fija %
496.07 0.01 0.00 0.0192
4,210.41 496.08 9.52 0.0640
7,399.42 4,210.42 247.23 0.1088
8,601.50 7,399.43 594.24 0.1600
10,298.35 8,601.51 786.55 0.1792
20,770.29 10,298.36 1,090.62 0.1994
32,736.83 20,770.30 3,178.30 0.2195
200,000.00 32,736.84 5,805.20 0.2800
De antemano muchas gracias.
La cuestión es la siguiente:
Necesito calcular el ISR de clientes por lo que a a partir de una cantidad necesito que sea comparada con una tabla (limite superior) y de ahí sacar su impuesto y cuota fija para poder hacer los calculos; dejo el código que ya he escrito pero algo pasa en el ciclo "do-while-loop" por que no sigue comparando.
Sub stock()
'RUTINA PARA HACER EL CALCULO DE IMPUESTOS
'DECLARAMOS VARIABLES PARA CALCULOS
Dim importe As Double, inferior As Double, impuesto As Double
Dim cuota As Double, temp As Double
'DAMOS VALOR AL IMPORTE ANTES DE IMPUESTO
importe = Range("c5").Value
'VERIFICAMOS LOS RANGOS DE LA TABLA EN LA HOJA "TABLA IMPUESTOS
'CON UN BUCLE (do while-loop) PARA COMPARARLAS DENTRO DE LOS RANGOS
Sheets("TABLA_IMPUESTOS").Select
Range("a2").Select
temp = ActiveCell.Value
Do While temp > importe
'SI EL VALOR ESTA DEBAJO DEL RANGO ENTONCES DAMOS VALORES
'A LAS VARIABLES DE inferior E impuesto
If ActiveCell.Value < importe Then
ActiveCell.Offset(0, 1).Select
inferior = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
cuota = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
impuesto = ActiveCell.Value
End If
ActiveCell.Offset(1, 0).Select
Loop
'PONEMOS LOS VALORES DE LAS VARIABLES EN LAS CELDAS
Sheets("TEMPORAL").Select
Range("a1").Select
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = inferior
ActiveCell.Offset(0, 1).Value = impuesto
ActiveCell.Offset(0, 2).Value = cuota
ActiveCell.Offset(1, 0).Select
End Sub
También les dejo la tabla donde debe comparar el valor:
Limite superior limite inferior cuota fija %
496.07 0.01 0.00 0.0192
4,210.41 496.08 9.52 0.0640
7,399.42 4,210.42 247.23 0.1088
8,601.50 7,399.43 594.24 0.1600
10,298.35 8,601.51 786.55 0.1792
20,770.29 10,298.36 1,090.62 0.1994
32,736.83 20,770.30 3,178.30 0.2195
200,000.00 32,736.84 5,805.20 0.2800
De antemano muchas gracias.
1 Respuesta
Respuesta de paramisolo
1