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