Luis Mondelo: ¿Cómo evitar que macro para subtotales recorra hasta fila 65000?

Luis, me ayudaste con esta macro que coloca subtotales en la celda contigua a la vacía de la suma de las celdas que están debajo, hasta la próxima vacía.
(Te recuerdo lo que hace: El primer título está siempre en fila 6, sus datos desde fila 7 Columna L hasta una fila aleatoria, por ejemplo la 10 misma columna L.
La fila siguiente 11 es nuevo título con sus datos desde fila 12 a otra aleatoria por ejemplo fila 15 en la misma columna L.
Entonces debo sumar de L7 hasta L10 y que quede esa suma en M7, la fila del título, e columna contigua a los datos. Luego sumar desde L12 hasta L15 y la suma en M12 y así sucesivamente una docena de títulos con sus datos, serán en total 120 filas.)
Sub parciales()
Range("l65000").End(xlUp).Offset(1, 0).Value = "final"
Range("l6").Select
Do While ActiveCell.Value <> "final"
ubica = ActiveCell.Address
ActiveCell.Offset(1, 0).Select
Do While IsNumeric(ActiveCell)
suma = suma + ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
Range(ubica).Offset(0, 1).Value = suma
suma = 0
Loop
ActiveCell.ClearContents
End Sub
Necesito evitar que recorra todas las celdas de la columna hasta la fila 65000, pues mi planilla usa máximo 300 filas.
Ya he probado sustituyendo Range(“l65000”) por Range(“l350”) pero funciona, sigue hasta la última fila con lo cual lleva un tiempo muy largo.
Te agradecería la solución!.
Saludos

1 Respuesta

Respuesta
1

Si no recuerdo mal, la columna L estaba llena de fórmulas aunque su resultado es cero o nada ¿verdad?

¿Hasta dónde hay datos en la columna L?

Buena memoria!

Hay datos (fórmulas con resultado cero) hasta la fila 500 inclusive.

Saludos

Prueba con la macro así y me cuentas:

Sub parciales()
Range("l6").Select
Do While ActiveCell.row <130
ubica = ActiveCell.Address
ActiveCell.Offset(1, 0).Select
Do While IsNumeric(ActiveCell)
suma = suma + ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
Range(ubica).Offset(0, 1).Value = suma
suma = 0
Loop
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas