Macro_Suma

Hola.
Tengo la siguiente macro y necesito un pequeña modificación en el rango de celdas que debe sumar.
De esta macro necesito dos variantes:
La macro debe sumar:
Estanfo en la D5, sume desde la celda C6 hasta encontrar una cleda vacía (esta macro hace eso, solo que suma desde la celda C5, pero necesito que tome una celda más abajo C6)
La segunda variante es que haga lo mismo que la primera pero que esta vez retroceda 2 columnas, es decir estando en E5 sume desde C6 hasta que encuentre una celda vacía:
Lo que necesito es tomar unos valores que están ubicados en la Columna C y luego sumarlos y colocarlos ya sea en al columna DE o E, según corresponda, es por eso que necesito de 2 macros casi idénticas
Esepro haberme hecho entender.
Igualmente espero me puedas ayudar con el archivo que te envíe por correo.
Muchas gracias.
Sub SumaParciales()
Dim i As Integer
' Inicializa contador
i = 0
' Busca celda vacía
While ActiveCell.Offset(i, -1).Text <> ""
i = i + 1
Wend
' Compone la fórmula
ActiveCell.FormulaR1C1 = "=SUM(RC[-1]:R[" + Mid(Str(i - 1), 2) + "]C[-1])"
End Sub
La parte de la macro que no he podido adaptar es la siguiente:
ActiveCell.FormulaR1C1 = "=SUM(RC[-1]:R[" + Mid(Str(i - 1), 2) + "]C[-1])"

1 respuesta

Respuesta
1
Pues lo que veo en la macro es que está compuesta por dos partes, la primera se ubica a partir de una posición y revisa cada celda hacia abajo hasta que encuentra una vacía. Así que si lo que deseas es que comience en C6 en lugar de C5, debes hacer que la variable i comience en 1 en lugar de 0.
Pero, luego para crear la fórmula, se utiliza la función =Suma(), pero esta hace referencia a las celdas en el formato F1C1, te sugiero leer sobre ello en la ayuda de excel. Pues verás que la variable i queda con el valor de la última celda que se encontró con información, y luego el valor de esta variable se lleva al final, para hacer la referencia de la fórmula.
Espero que esto te resuelva tu problema, sino, no dudes en preguntar.
Hola.
Gracias por la respuesta, hice lo que tu dijiste, cambie la variable i por 1 y funcionó perfectamente, ahora lo que no puedo hacer es que me sume 2 columnas atrás de donde estoy ubicado, es decir, que si estoy ubicado en La columna E entonces me sume el rango correspondiente en la Columna C
Gracias
Cambia en:
While ActiveCell.Offset(i, -1).Text <> ""
Por:
While ActiveCell.Offset(i, -2).Text <> ""
Y en:
ActiveCell.FormulaR1C1 = "=SUM(RC[-1]:R[" + Mid(Str(i - 1), 2) + "]C[-1])"
Por:
ActiveCell.FormulaR1C1 = "=SUM(RC[-2]:R[" + Mid(Str(i - 1), 2) + "]C[-2])"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas