Sumar bloques

Tengo hecha una macro que no consigo terminar, el motivo es que necesito, que sume en vertical las cantidades por bloques de las columnas B y C colocando el resultado en las celdas vacías.
Si siempre fueran el mismo número de filas no tendría problema pero ocurre que este reporte no es igual todos los días, es decir, por ejemplo, en la primera empresa "Gestión SL" puede ser que al día siguiente solo tenga tres filas o que por el contrario tenga 9 filas.
        A b c d
Gestión sl nominal comisión total
   117.504 7033.00 9.00 7042.00
   117.537 16043.00 75.00 16118.00
   117.585 21954.00 129.00 22083.00
   117.593 100.00 0.00 100.00
   117.608 1947.00 3.00 1950.00
             ¿5?
Bluesun sl nominal comisión total
  118.406 50.00 0.00 50.00
  118.429 3.083.00 9.00 3.092.00
  118.454 6.594.00 51.00 6.645.00
  118.483 6.194.00 48.00 6.242.00
  118.523 370.00 0.00 370.00
  118.524 55.00 0.00 55.00
             ¿6?
busnot sl nominal comisión total
  118.425 237.00 3.00 240.00
  118.449 4.818.00 15.00 4.833.00
  118.496 5.948.94 18.00 5.966.94
              ¿3?

1 respuesta

Respuesta
1
Te pregunto: cómo sumaste 5, 6 y 3... ¿con tu macro?
Mejor deja aquí la macro para que vea cómo se vuelcan esos datos (o me explicas cómo se generan los bloques) para que te pase las instrucciones justas.
Generalmente se busca el límite con algo como esto:
Finrgo = Range("B"...) .End(xlup).Row 'aquí es dónde necesito saber cómo se detectar cada bloque
Muchas gracias por contestar, te comento:
Los datos que aparecen en la columna A no son producto de ninguna macro ni fórmula, aparecen directamente en el reporte; el 5, 6 y 3 es el numero de filas que tiene cada bloque.
Todos los datos que aparecen en la columna A vienen dados de forma automática y no me sirven para nada.
Este reporte lo saco de un Crystal Report de una aplicación y lo convierto en "hoja excel solo datos". Las columnas siempre son las mismas, lo único que cambia es el número de filas. Los bloques ya vienen definidos.
En la macro que tengo hecha no hay ninguna fórmula, tan solo borro columnas que vienen vacías y que borro mediante la macro para que quede más simplificado y fácil de ver a primera vista.
Por lo que he podido leer en algunos manuales de excel debo sumar de abajo arriba, buscando la primera celda que esté vacía y ejecutar el sumatorio o algo así pero no se como se hace.
Bien, entonces tomaré tu ejemplo tal como se vé: sin filas vacías entre cada bloque y el primer dato empieza en B2.
Va explicada para que ajustes estos detalles :
Sub cuentaBloques()
'x Elsamatilde
'guardo la última fila con datos según col A
ultima = Range("A65536").End(xlUp).Row
'el primer dato a sumar empieza en fila 2
Range("B2").Select
'repito el bucle hasta la última fila guardada en variable
While ActiveCell.Row <= ultima
    'guardo el fin del 1er rango, según col B
    finrgo = ActiveCell.End(xlDown).Row
    'sumo el rango hasta el la fila que guardé en variable
    While ActiveCell.Row <= finrgo
        tot = tot + ActiveCell.Value
        tot2 = tot2 + ActiveCell.Offset(0, 1).Value
        tot3 = tot3 + ActiveCell.Offset(0, 2).Value
        ActiveCell.Offset(1, 0).Select
    Wend
    'coloco los totales obtenidos
    ActiveCell.Value = tot
    ActiveCell.Offset(0, 1) = tot2
    ActiveCell.Offset(0, 2) = tot3
    'limpio las variables de suma
    tot = 0: tot2 = 0: tot3 = 0
    ActiveCell. Offset(2, 0). Select 'salteo el título y me posiciono en el primer dato sgte.
Wend
End Sub
Sdos
Elsa
PD) Te recomiendo mi manual Programación VBA, nivel inicial

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas