Claro, con gusto:
La macro se ejecuta cuando modificas alguna celda de las columnas:
If Not Intersect(Target, Range("B:E")) Is Nothing Then
Cuando solamente modificaste una celda
If Target.Count > 1 Then Exit Sub
Y que la fila es mayor o igul a la 4
If Target.Row < 4 Then Exit Sub
Ahora, verifica que exista fecha en esa fila que modificaste, Si no hay fecha te envía un mensaje de error y se sale de la macro
If Cells(Target.Row, "A") = "" Then MsgBox "No hay fecha" Exit Sub End If
Después, toma el número de mes de la fecha y le suma 3, con esto obtenemos el número de fila, si el mes modificado es 3 (marzo) y le sumamos 3 entonces en la fila 6 del resumen vamos a poner la suma
f = Month(Cells(Target.Row, "A")) + 3
Con lo siguiente escribimos en la columna G y la fila que obtuvimos en el paso anterior el mes guión y el año de la fecha de la columna A: "mar-2015"
Cells(f, "G") = Format(Cells(Target.Row, "A"), "mmm") & "-" & Year(Date)
Al igual que hicimos con la fila, ahora obtenemos la columna, tomamos como referencia, siempre, la celda modificada, entonces según la columna que modificaste le sumamos 6, para de esta forma llegar a la columna del resumen.
c = Target.Column + 6
Ya tenemos la fila f y la columna c, sólo falta acumular el importe:
Cells(f, c) = Cells(f, c) + Target.Value Cells(f, "K") = Cells(f, "K") + Target.Value
El importe se acumula en la fila f y columna c y también se acumula en la columna "K" para llevar el total global.