Macro para Autosumar Varios Grupos de Filas

He intentando de todo pero no me sale, el problema es el siguiente:

Quiero realizar un macro que realice la autosuma de un conjunto de datos, inicialmente donde selecciono de amarillo (Anexo Imagen) la celda esta vacía, entonces la macro recorre las celdas hacia abajo si encuentra un especio vacío introduce la suma o el autofiltro y así sucesivamente hasta que encuentre más de 2 o 3 especios en blanco se detiene.

1 Respuesta

Respuesta
1

H o l a:

No entiendo cómo tienes las sumas, en tu ejemplo el Dato B en autosuma tienes 154, pero no sé cómo llegaste a ese resultado, ¿debería ser 33?

¿Me explicas qué datos se deben sumar en cada autosuma?

Perdón, las autosuma o la suma de cada segmento están mal en la imagen, deberían ser 74, 33 y 62.

H o l a:

Te anexo la macro. Supongo que los datos están en la columna "A" y los montos en la columna "B", y que en la columna "A" después de cada segmento tienes una celda en blanco.

Sub AutoSuma()
'Por.Dante Amor
    For i = 2 To Range("A" & Rows.Count).End(xlUp).Row + 1
        If Cells(i, "A") = "" Then
            Cells(i, "B") = wsuma
            wsuma = 0
        Else
            wsuma = wsuma + Cells(i, "B")
        End If
    Next
    MsgBox "Fin"
End Sub

Prueba y me comentas.

Oye una pregunta, wsuma que es? Es una variable?

Sí, es una variable, va acumulando los montos, y cuando encuentra la celda vacía, pasa el valor de la variable a la celda.

Si es lo que necesitas. Recuerda valorar la respuesta

Si tienes dudas puedes solicitar más información

Muchísimas gracias si es lo que necesitó. Ahora mi última pregunta si no es mucha molestia. En vez de tener sólo un montón tengo N columnas de montos (Monto 1, monto 2 y monto 3...).

En la macro que me envías la columna sería B como le hago para que todas las columnas que tenga tengan su suma.?

H o l a:

Te anexo la macro actualizada, la macro revisa la última columna que tengas con título en la fila 1, es decir, si la última columna con título es la columna "H", la macro pone las sumas desde la columna "B" hasta la columna "H"

Sub AutoSuma()
'Por.Dante Amor
    ini = 2
    col = Cells(1, Columns.Count).End(xlToLeft).Column
    For i = 2 To Range("A" & Rows.Count).End(xlUp).Row + 1
        If Cells(i, "A") = "" Then
            With Range(Cells(i, "B"), Cells(i, col))
                .Formula = "=SUM(B" & ini & ":B" & i - 1 & ")"
                .Value = .Value
            End With
            ini = i + 1
        End If
    Next
    MsgBox "Fin"
End Sub

Si quieres que la macro te deje las fórmulas, quita esta instrucción de la macro:

.Value = .Value

Al final de mi respuesta, hay 2 valoraciones "Buena" y "Excelente", si la macro te funciona podrías cambiar la valoración.

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas