Macro suma con rango variable

Estoy realizando una macro, necesito que sume un rango de celdas de una columna, la celda inicial es fija pero la celda final es variable, sería hasta la primer celda vacía.
ActiveCell.FormulaR1C1 = "=SUM(R[-1]C:RC)"

1 respuesta

Respuesta
2
Prueba el siguiente código:
Sub sumRango()
    Dim cellIni$, cellFin$, varSuma
    cellIni = "C2" 'Esta celda corresponde a la primera fila de tu tabla de valores
    Range(cellIni). Select 'Nos posiscionamos en la primera fila de valores
    Do
    If IsEmpty(ActiveCell) = False Then
    ActiveCell.Offset(1, 0).Select
    End If
    Loop Until IsEmpty(ActiveCell) = True
    cellFin = ActiveCell.Offset(-1, 0).Address 'Localizamos la ultima fila de valores de la tabla
    varSuma = Range(cellIni, cellFin) 'Asignamos el rango a sumar
    With ActiveCell.Offset(1, 0) 'Efectuamos la suma y le damos un poco de formato a la celda
        .Value = Application.WorksheetFunction.Sum(varSuma)
        .Font.Bold = True
        .Font.Size = 12
    End With
End Sub
Solo cambia tu referencia a la celda inicial, he usado la celda C2.
P.D. Si todo ha quedado resuelto no olvides finalizar tu pregunta.
Realice el comando que recomendás pero la macro se para en:
    varSuma = Range(cellIni, cellFin)
El texto completo es:
    Dim cellIni$, cellFin$, varSuma
    cellIni = ActiveCell.Offset(-1, 0).Select
    Do
    If IsEmpty(ActiveCell) = False Then
    ActiveCell.Offset(-1, 0).Select
    End If
    Loop Until IsEmpty(ActiveCell) = True
    cellFin = ActiveCell.Offset(1, 0).Address
    varSuma = Range(cellIni, cellFin)
    With ActiveCell.Offset(1, 0)
        .Value = Application.WorksheetFunction.Sum(varSuma)
        .Font.Bold = True
        .Font.Size = 12
    End With
¿Qué este mal?
Mandame por favor el libro donde tienes el código o un ejemplo a [email protected]
Por cierto, ¿qué version de XL usas? ¿Español o ingles?
Envío el archivo desde mi hotmail, [email protected]. Gracias, Ramiro.
Ya te reenvié el ejemplo corregido, avisame si todo va bien

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas