Cómo representar fórmula de Excel en macro

Necesito representar las siguientes fórmulas de Excel en VBA

=SUMAR.SI.CONJUNTO(J28:J30,I28:I30,5%)*(1-(J33))

=SUMAR.SI.CONJUNTO(J28:J30,I28:I30,5%)*(1-(J33))

=K32*J33

Esto es para una factura donde la primera y segunda instrucción están dadas para que sume los valores de IVA que correspondan al 5% y la segunda al 16% y aplique el descuento asignado.

La tercera instrucción es para que calcule el descuento asignado al subtotal

Ya tengo algunas instrucciones en VBA que hacen otros cálculos, les pueden servir como referencia.

Range("K" & FF + 2).FormulaLocal = "=SUMA(H28:H" & FF & ")" 'SUMA PARA SUBTOTAL
Range("K" & FF + 4).FormulaLocal = "=SUMA(J28:J" & FF & ")" 'SUMA PARA IVA 5% 
Range("K" & FF + 5).FormulaLocal = "=SUMA(J28:J" & FF & ")" 'SUMA PARA IVA 16% 
Range("K" & FF + 6).FormulaLocal = "=K" & FF + 2 & "+K" & FF + 4 & "+K" & FF + 5 & "-SUMA(K" & FF + 3 & ":K" & FF + 3 & ")" ' SUMA PARA TOTAL FACTURA

NOTA: Las fórmulas para iva que se pueden apreciar, es como estaban originalmente, sin tomar en cuenta la diferenciaciñon entre los dos tiopos de IVA ni descuento

Así es como se ve la hoja por si les sirve de referencia

1 Respuesta

Respuesta
1

Te dejo las fórmulas para las celdas de Iva:

    Range("K34").FormulaR1C1 = _
        "=SUMIFS(R28C[-1]:R[-4]C[-1],R28C[-2]:R[-4]C[-2],5%)*(1-(R[-1]C[-1]))"
    Range("K35").FormulaR1C1 = _
        "=SUMIFS(R28C[-1]:R[-5]C[-1],R28C[-2]:R[-5]C[-2],16%)*(1-(R[-2]C[-1]))"

El rango inicial siempre empieza en fila 28 (R28)

El rango final será 4 filas por encima del primer Iva (R[-4] ) y 5 filas para el 2do Iva.

Las col indicadas con C[-1]  significa que se trata de 1 col delante de la celda donde colocas la fórmulas, es decir que para la col K será J, con C[-2] será la col I

PD) Para obtener fórmulas mediante VBA seguí estos pasos:

- Escribí la fórmula tal como debieras tener en las celdas.

- Encendé la grabadora, seleccioná la fórmula desde la barra de fórmulas y presioná Enter.

- Detené la grabadora y en un módulo encontrarás el código.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas