Calcular isr con select case

Quiero ingresar la cantidad retenida a través de un inputbox si es menor que 100 calcular el 3%, pero si es mayor que 100 que reste 100 menos lo retenido y que al resultado le calcule el 5% y le sume 200. Todo el calculo seria en un modulo y que lo guarde en la hoja1, si el inputbox esta vació que coloque el cero en lo retenido, de lo contrario la cantidad digitada.

1 respuesta

Respuesta
1

H o l a:

Te anexo la macro. Puse las condiciones según entendí, si no son correctos los resultados, entonces podrías realizar la explicación con ejemplos.

Sub Retenido()
'Por.Dante Amor
    Set h = Sheets("Hoja1")
    celda = "B5"
    h.Range(celda) = ""
    cant = InputBox("Captura la cantidad: ", "CALCULAR")
    If cant = 0 Or cant = "" Or Not IsNumeric(cant) Then
        h.Range(celda) = 0
    Else
        If cant < 100 Then
            valor = cant * 0.03
            h.Range(celda) = valor
        Else
            valor = cant - 100
            valor = valor * 0.05
            valor = valor + 200
            h.Range(celda) = valor
        End If
    End If
End Sub

' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )

 A lo que quiero que le calcule el ISR ES A las ventas que tengo en la hoja1 F26 y que le reste lo que ingrese en el inputbox. Lo demás esta bien.

si es menor que 100 calcular el 3%. Ejemplo: la venta es de 250-100 = 150*5% + valor fijo de 100 =107.5

H o l a:

Te anexo la macro actualizada

Sub Retenido()
'Por.Dante Amor
    Set h = Sheets("Hoja1")
    venta = h.[F26]
    celda = "F27"
    h.Range(celda) = ""
    cant = InputBox("Captura la cantidad: ", "CALCULAR")
    If cant = 0 Or cant = "" Or Not IsNumeric(cant) Then
        h.Range(celda) = 0
    Else
        calculo = venta - cant
        If calculo < 100 Then
            valor = calculo * 0.03
            h.Range(celda) = valor
        Else
            valor = calculo * 0.05
            valor = valor + 100
            h.Range(celda) = valor
        End If
    End If
End Sub

si la macro no pone el resultado que esperas, es porque no entiendo los resultados que esperas, entonces te pido que expliques con más claridad 2 ejemplos, me dices cuánto tienes en la celda F27, cuánto vas a poner en el inputbox y qué esperas de resultado, entre más claro sean los ejemplos, más práctico será entregarte la macro.


':)
S a l u d o s . D a n t e A m o r
':) Si es lo que necesitas. Recuerda valorar la respuesta. G r a c i a s.

Te envié un ejemplo en excel del ISR a tu correo

H o l a:

Te anexo la macro

Sub Retenido()
'Por.Dante Amor
    Set h = Sheets("Hoja1")
    c1 = "F26"
    c2 = "H26"
    venta = h.Range(c1)
    retencion = InputBox("Captura la cantidad: ", "CALCULAR")
    If retencion = 0 Or retencion = "" Or Not IsNumeric(retencion) Then
        h.Range(c2) = 0
        Exit Sub
    End If
    '
    If venta < 100 Then
        calc = venta * 0.03
        Range(c2) = (venta * 0.03) - retencion
    Else
        limite = 100
        excedente = venta - limite
        sinretencion = excedente - retencion
        renta = sinretencion * 0.05
        impuestofijo = 100
        Range(c2) = renta + impuestofijo
    End If
End Sub

' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )

No me retienen un monto todos los meses, quiero que calcule el isr cuando la retención sea 0 o vacío en ambos casos. Gracias

¿Enviaste el ejemplo?

La macro que te envié funciona para los 2 ejemplos que pusiste.

Si quieres que la macro funcione con lo que necesitas, debes explicar detalladamente cada ejemplo. Revisa el resultado con los 2 ejemplos que pusiste y la macro funciona.

si funciona para los dos casos pero cuando le pongo 0 en el inputbox me saca del proceso, por lo tanto no calcula el ISR, lo que busco es que calcule el isr si coloco el 0 en el inputbox. 

Envíame un ejemplo, para saber qué es lo que esperas de resultado cuando en el inputbox se pone 0. Si son 2 resultados diferentes uno cuando es menor a 100 y otro cuando es mayor a 100, entonces tienes que enviar 2 ejemplos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas