Macro para acumular datos desde varias hojas

Me podrían ayudar con una macro. El archivo consta de 6 hojas con los nombres de la semana mas una que dice resumen acumulado, todas las hojas tienen el mismo formato, cada hoja la voy llenando de acuerdo al día de la semana que le corresponde. Lo que quiero es que en la hoja que dice resumen acumulado me valla acumulando o sumando los datos que voy metiendo diariamente en las otras hojas, por ejemplo, el día lunes alimento la hoja que dice lunes y que al final que la termino de llenar con un botón pueda guardar esa información en la hoja de resumen, igualmente el martes y así sucesivamente hasta el sábado, pero que en la hoja de resumen me valla acumulando los valores del lunes, martes, miércoles... Lo que me interesa es que al final del día sábado yo tenga todos los valores acumulados de la semana. Pero también quiero que los valores que aparecen en las hojas de cada día se mantengan hasta la siguiente semana que nuevamente comienzo pero ya esto si lo se hacer con un macro para limpiar.

¿Hay forma que les adjunte el archivo para que lo puedas ver?

1 respuesta

Respuesta
1

Ya recibí tu libro. Ni bien lo tenga resuelto te lo enviaré.

No me valores antes de empezar ... luego se olvidan de ajustar según lo recibido.

Sdos!

Así quedó la macro... no olvides que comentaste que vas a limpiar las hojas antes de empezar con el próximo lunes.

Sub acumulando()
'x Elsamatilde
'se ejecuta desde la hoja Resumen y se suman las mismas celdas de cada hoja
'a excepción de la de resumen donde se deja el resultado
Set hox = Sheets("Resumen acumulado")
If ActiveSheet.Name <> hox.Name Then Exit Sub
'establezco la última fila del rango, 2 x encima del titulo final
filx = Range("AH" & Rows.Count).End(xlUp).Row - 2
'se recorre cada celda de la hoja resumen
For Each cd In Range("B4:AK" & filx)
    totx = 0
    'si la celda no tiene fórmula se la busca en el resto de las hojas
    If cd.HasFormula = False Then
        'se recorre cada hoja con nombre <> resumen
        For Each sh In Sheets
            If sh.Name <> hox.Name Then totx = totx + sh.Cells(cd.Row, cd.Column)
        Next sh
        'se coloca el total en hoja resumen
        cd.Value = totx
    End If
Next cd
MsgBox "Valores acumulados correctamente.", , "FIN"
End Sub

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas