Resumen de sumas de columnas por días específicos una especie de filtro.
Dante buen día, molestándote otra vez, ya me cambiaron la jugada, te explico, el código en el que me has estado ayudando, hace el movimiento, perfecto, lo hice para que fuera con 31 días, no importando si el mes es de 30 o viciesto, pero ahora necesito que no me ponga los días en los cuales no hubo movimiento. O sea del 1 al 15 (quitando digamos el día 9), hay movimiento de ahí hasta el 25, al ejecutar, el código que me mandaste me toma las columnas por día como debe ser 1,2,3, etc.
No encuentro manera de poder mandarte el archivo para que lo veas. Te dejo código.
Sub suma_matriz()
Application.ScreenUpdating = False
Set H1 = Sheets("Hoja1")
Set H2 = Sheets("Hoja2")
H1.Activate
H1.Range("L18").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
H2.Activate
H2.Range("C18").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Hoja2.Cells(18, 1) = "DIA"
Hoja2.Cells(18, 2) = "TOTAL DIA "
Hoja2.Rows("19:49").ClearContents
'- poner los dias del 1 al 31
'x = 1
'For i = 19 To 49
' Hoja2.Cells(i, 1) = x
' x = x + 1
'Next i
'-------------- copio filas de h1 elimino repetidos
For y = 19 To H1.Range("A" & Rows.Count).End(xlUp).Row ' BUSCAR ULTIMA FILA DONDE VA LA FECHA
dia = Day(H1.Cells(y, "A"))
Hoja2.Cells(y, 1) = dia
Next y
Hoja2.Range("A19:A1048000").Select
Hoja2.Range(Selection, Selection.End(xlDown)).Select
Hoja2.Range("A19:A1048000").RemoveDuplicates Columns:=1, Header:=xlYes
Rows("19:19").Select
Selection.Delete Shift:=xlUp
'------------- sumar de hoja1 a hoja2
For j = 1 To H1.Cells(18, Columns.Count).End(xlToLeft).Column 'BUSCAR ULTIMA COLUMNA FILA TITULOS INCIDENTES
For i = 19 To H1.Range("A" & Rows.Count).End(xlUp).Row ' BUSCAR ULTIMA FILA DONDE VA LA FECHA
dia = Day(H1.Cells(i, "A")) + 1
H2.Cells(dia + 17, j + 2) = H2.Cells(dia + 17, j + 2) + H1.Cells(i, j + 11)
Next i
Next j
'------------ suma columnas a la derecha
For Z = 19 To 49
C = Hoja2.Cells(Z, Columns.Count).End(xlToLeft).Column
If C < Hoja2.Columns("B").Column Then C = Columns("C").Column
Hoja2.Range("B" & Z) = Application.Sum(Hoja2.Range(Cells(Z, Columns("C").Column), Cells(Z, C)))
Next Z
'------------ suma columnas
f = 19
D = H2.Cells(18, Columns.Count).End(xlToLeft).Column
For i = 1 To D
If Cells(18, i) <> Empty Then
Cells(50, i).FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
End If
Next
End Sub
1 respuesta
Respuesta de Dante Amor
1