Bucle para Sumar Columnas cada 4 filas

Tengo un problema con una macro que no logro que funcione.

La idea es que suma cada filas de cada columna y me ponga la suma en la ultima fila con datos de dicha columna, luego pasar a la siguiente columna y hacer lo mismo.

El rango de filas es variable y las columnas va de de la B a la J

Por ejemplo

Col A Col B Col C Col D ... Col J

a2 x1 1 5 4 10

a3 x2 6 7 10 20

a4 X3 4 3 -1 - 50

a5 fila en blanco

a6 x4 5 10 10 20

a7 x5 10 5 5 5

a8 x6 -5 1 -5 0.50

a9 fila en blanco

a10 0.20 1 1 0.80 0.50

a11 1 10 11 0.20 1

a12 10 20 26.50 10.50 15

suma 19 30.50 4.50 -34.50

Este código es el que estoy probando pero no me funciona al ponerle el bucle de recorrer las columnas

Sub prueba()
Dim fin, i, z As Integer
fin = Range("A65000").End(xlUp).Row
Range("B4").Select
For z = 2 To 30
Cells(4, z).Select
'Range("B4").Select
For i = 4 To fin
suma = suma + ActiveCell.Value
ActiveCell.Offset(4, 0).Select
Next i
Cells(fin, z).Value = suma
Next z
End Sub

1 Respuesta

Respuesta
1

Por ejemplo, Quieres que sume todos los valores de la columna A y que ponga el resultado después de la última fila con datos.

En tus ejemplos en la fila 13 pondría las sumas, ¿correcto?

¿La suma de la columna B es 52?

La C es 69.5?

No es la suma de toda la columna, se debe sumar de la fila 4, cada 4 filas es decir, sumar B4 (importe a sumar: 4), B8 (importe a sumar: -5), B12 (importe a sumar: 20) el resultado se pondría en B13 (total de la suma: 19), luego empezaría con la siguiente columna que seria la C4 (importe a sumar: 3), C8 (importe a sumar: 1), C12 (importe a sumar: 26.50) resultado en C13 (total de la suma: 30.50).

La primera fila a sumar de cada columna seria la 4 luego tendría que bajar 4 filas y sumar lo que hay en en esa fila y seguir bajando 4 filas sumar, asi sucesivamente hasta la ultima fila con datos y baja una fila y poner el resultado, termina ese bucle y pasaría a hacer lo mismo con la siguiente columna.

Saludos

Te paso la macro, ya entendí lo que necesitas

Sub sumas_cada4_filas()
'por.dam
uf = Range("A" & Rows.Count).End(xlUp).Row
For j = 2 To 10 'columnas
    For i = 4 To uf Step 4  'filas
        suma = suma + Cells(i, j)
    Next
    Cells(uf + 1, j) = suma
    suma = 0
Next
End Sub

Saludos.Dam
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas