Excel

Hola, estoy intentando añadir a una macro la fórmula del sumatorio de una rango de valores..
El problema que tengo es el siguiente:
TEngo una columna ( por ejemplo AV ) que tiene datos desde la fila 11 hsta la 3000.
Aplicando una macro que me funciona correctamente, me calcula el rango de valores de la columna AV que necesito sumar.
Este rango de valores me lo calcula en la macro asignando un valor a una variable ( es ) y otra ( e).
Mi pregunta es la siguiente:
Si añado a la macro la siguiente fórmula:
Range("AV6").Select
ActiveCell.FormulaR1C1 = "=SUM(R[5]C:R[294]C)"
Si me sale realiza de manera automática el sumatorio del rango que tiene establecido, pero yo lo que quiero es que ese rago me varíe en función del valor que me toma la variable ( s) y ( e)
Cuando modifico la fórmula en VBA
ActiveCell.FormulaR1C1 = "=SUM(R[s]C:R[e]C)"
Me sale un error 1004 de fallo.
Alguien me puede ayudar.

1 respuesta

Respuesta
1
Te hago una pregunta las variables es y e de donde las sacas, ¿escribís vs el valor? Lo que tendrías que hacer en todo caso seria poner en la macro
ActiveCell.FormulaR1C1 = "=SUM("R[" & s & "]C:R[" & e & "]C)""
Pero no si te funcionara porque no se de donde sacas los valores del es y e.
Otra solución seria supongamos en AV1 pones 6 y en AW1 pones 3000, esto serán los rango de suma
Entonces a la macro le agregas estos valores
s=Range("AV1")
e=Range("AW1")
Range("AV6").Select
ActiveCell.FormulaR1C1 = "=SUM("AV" & s & ":AV" & e & ")""
Cualquier duda me consultas
Hola, a continuación te muestro el código de la macro completo. Añadiendo lo que me has comentado me sale un error de compilación.
La variable (s) y (e) no las pongo manualmente sino que van variando en función de los valores que tenga la variable ( i) como puedes ver a continuación.
Sub Calculotiempoarranqueyparadag1()
Dim final As Boolean
Dim i As Long
Dim e As Long
Dim s As Long
final = False
i = 11
Calculate
Do While final = False
    If Cells(i, 20) > 5 Then
        Cells(i, 1).Select
        Selection.Copy
    Range("S2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        final = True
      Cells(6, 19) = i
       s = i
    Else
        i = i + 1
    End If
Loop
final = False
i = 11
Do While final = False
    If (Cells(i, 20) > 180 And Cells(i, 30) < 5 And Cells(i, 31) < 5 And Cells(i, 32) < 5) Then
        Cells(i, 1).Select
         Selection.Copy
        Range("T2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
           final = True
           Cells(6, 20) = i
           e = i
    Else
        i = i + 1
    End If
Loop
   Range("AV4").Select
   ActiveCell.FormulaR1C1 = "=SUM("R[" & s & "]C:R[" & e & "]C)""
End Sub
La planilla me la podrías mandar a mi email
Ok, ¿cuál es tu email?
[email protected] este es mi email
Muchas gracias por tu ayuda... al final tal como me dijiste que lo hiciera resultó satisfactorio. El error que me daba era por un fallo en la expresión...
Gracias nuevamente.. Saldos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas