
copiar cirtas columnas ordenadas por fecha
Publicado por JUAN (5 intervenciones) el 19/03/2025 03:32:13
BUENAS, TENGO ESTE CODIGO QUE TRATO DE COPIAR CIERTAS COLUMNAS DE VARIAS HOJAS DENTRO DE UN MISMO LIBRO Y PEGARLAS EN FILAS DE OTRA HOJA A OARTIR DE LA A4, PERO POR ORDEN DE FECHAS EJEMPLO: 01ENE2025 XXX XXXXX X XXXXXXXXXX XXXXXX XXXXXX XXXXXX 03ENE2025 ......... .................. ..................ETC ESTE CODIGO ME EMITE ERROR AL MOMENTO DE ORDENAR LAS COLUMNAS DE ACUERDO A LAS FECHAS ME DICE ERROR DE COPILACIÒN; EL TIPO DE ARGUMENTO BYREF NO COINCIDE, NO SE A QUE SE DEBE, POR LO QUE PIDO SU AYUDA, GRACIAS CODIGO: Sub CopiarColumnas()
' Definir las hojas
Set h1 = Sheets("2_DIV. DELITOS")
Set h2 = Sheets("1_RQ")
Set h3 = Sheets("24_ALCOHOLEMIA")
Set h4 = Sheets("10_ARMAS FUEGO")
Set h5 = Sheets("11_ARMAS BLANCAS")
Set h6 = Sheets("27_BBCC")
Set h7 = Sheets("17_VEH. MAYORES O CAPTURA")
Set h8 = Sheets("19_VEH.MAYORES RECUPERADOS")
Set h9 = Sheets("21_VEH. MENORES O CAPTURA")
Set h10 = Sheets("23_VEH. MENORES RECUPERADOS")
Set h11 = Sheets("40_CELULARES")
Set h12 = Sheets("4_ PBC ENVOLTORIOS")
Set h13 = Sheets("5_CC ENVOLTORIOS")
Set h14 = Sheets("6_ MARIHUA ENVOLTORIOS")
Set h15 = Sheets("7_PBC KG")
Set h16 = Sheets("8_CC KG")
Set h17 = Sheets("9_MARIHUANA KG")
Set h18 = Sheets("OP")
Set h19 = Sheets("39_OOCC")
Set h20 = Sheets("30_CONTRABANDO")
Set h21 = Sheets("PROPIEDAD INDUSTRIAL")
Set h28 = Sheets("Est_Prod")
' Definir variables para las filas de datos
u = h1.Range("B" & Rows.Count).End(3).Row
u2 = h2.Range("B" & Rows.Count).End(3).Row
u3 = h3.Range("B" & Rows.Count).End(3).Row
u4 = h4.Range("B" & Rows.Count).End(3).Row
u5 = h5.Range("B" & Rows.Count).End(3).Row
u6 = h6.Range("B" & Rows.Count).End(3).Row
u7 = h7.Range("B" & Rows.Count).End(3).Row
u8 = h8.Range("B" & Rows.Count).End(3).Row
u9 = h9.Range("B" & Rows.Count).End(3).Row
u10 = h10.Range("B" & Rows.Count).End(3).Row
u11 = h11.Range("F" & Rows.Count).End(3).Row
u12 = h12.Range("B" & Rows.Count).End(3).Row
u13 = h13.Range("B" & Rows.Count).End(3).Row
u14 = h14.Range("B" & Rows.Count).End(3).Row
u15 = h15.Range("B" & Rows.Count).End(3).Row
u16 = h16.Range("B" & Rows.Count).End(3).Row
u17 = h17.Range("B" & Rows.Count).End(3).Row
u18 = h18.Range("C" & Rows.Count).End(3).Row
u19 = h19.Range("B" & Rows.Count).End(3).Row
u20 = h20.Range("B" & Rows.Count).End(3).Row
u21 = h21.Range("B" & Rows.Count).End(3).Row
' Ordenar las columnas de acuerdo con las fechas (columna A de cada hoja)
Call OrdenarPorFecha(h1, u)
Call OrdenarPorFecha(h2, u2)
Call OrdenarPorFecha(h3, u3)
Call OrdenarPorFecha(h4, u4)
Call OrdenarPorFecha(h5, u5)
Call OrdenarPorFecha(h6, u6)
Call OrdenarPorFecha(h7, u7)
Call OrdenarPorFecha(h8, u8)
Call OrdenarPorFecha(h9, u9)
Call OrdenarPorFecha(h10, u10)
Call OrdenarPorFecha(h11, u11)
Call OrdenarPorFecha(h12, u12)
Call OrdenarPorFecha(h13, u13)
Call OrdenarPorFecha(h14, u14)
Call OrdenarPorFecha(h15, u15)
Call OrdenarPorFecha(h16, u16)
Call OrdenarPorFecha(h17, u17)
Call OrdenarPorFecha(h18, u18)
Call OrdenarPorFecha(h19, u19)
Call OrdenarPorFecha(h20, u20)
Call OrdenarPorFecha(h21, u21)
' Copiar los datos ya ordenados a la hoja de destino
h1.Range("B5:B" & u & ",G5:G" & u & ",K5:K" & u & ",O5:O" & u & ",P5:P" & u & ",Q5:Q" & u & ",W5:W" & u).Copy h28.Range("A4")
h2.Range("B5:B" & u2 & ",D5:D" & u2 & ",K5:K" & u2 & ",P5:P" & u2 & ",X5:X" & u2).Copy h28.Range("H4")
h3.Range("B4:B" & u3 & ",G4:G" & u3).Copy h28.Range("M4")
h4.Range("B5:B" & u4 & ",J5:J" & u4 & ",R5:R" & u4 & ",AC5:AC" & u4).Copy h28.Range("O4")
h5.Range("B4:B" & u5 & ",H4:H" & u5 & ",G4:G" & u5).Copy h28.Range("S4")
h6.Range("B5:B" & u6 & ",D5:D" & u6 & ",E5:E" & u6 & ",Q5:Q" & u6 & ",AA5:AA" & u6).Copy h28.Range("V4")
h7.Range("B4:B" & u7 & ",F4:F" & u7).Copy h28.Range("AA4")
h8.Range("B4:B" & u8 & ",F4:F" & u8).Copy h28.Range("AC4")
h9.Range("B4:B" & u9 & ",F4:F" & u9).Copy h28.Range("AE4")
h10.Range("B4:B" & u10 & ",F4:F" & u10).Copy h28.Range("AG4")
h11.Range("B4:B" & u11 & ",E4:E" & u11).Copy h28.Range("AI4")
h12.Range("B4:B" & u12 & ",C4:C" & u12 & ",G4:G" & u12).Copy h28.Range("AK4")
h13.Range("B4:B" & u13 & ",C4:C" & u13 & ",G4:G" & u13).Copy h28.Range("AN4")
h14.Range("B4:B" & u14 & ",C4:C" & u14 & ",G4:G" & u14).Copy h28.Range("AQ4")
h15.Range("B4:B" & u15 & ",C4:C" & u15 & ",H4:H" & u15).Copy h28.Range("AT4")
h16.Range("B4:B" & u16 & ",C4:C" & u16 & ",H4:H" & u16).Copy h28.Range("AW4")
h17.Range("B4:B" & u17 & ",C4:C" & u17 & ",H4:H" & u17).Copy h28.Range("AZ4")
h18.Range("C3:C" & u18 & ",F3:F" & u18 & ",H3:H" & u18 & ",Q3:Q" & u18 & ",R3:R" & u18 & ",S3:S" & u18 & ",T3:T" & u18 & ",U3:U" & u18 & ",X3:X" & u18 & ",Y3:Y" & u18 & ",Z3:Z" & u18 & ",AA3:AA" & u18 & ",AB3:AB" & u18).Copy h28.Range("BC4")
h19.Range("B5:B" & u19 & ",D5:D" & u19 & ",E5:E" & u19 & ",Y5:Y" & u19).Copy h28.Range("BQ4")
h20.Range("B3:B" & u20 & ",F3:F" & u20 & ",H3:H" & u20).Copy h28.Range("BX4")
h21.Range("C5:C" & u21 & ",I5:I" & u21 & ",D5:D" & u21).Copy h28.Range("CA4")
End Sub
Sub OrdenarPorFecha(sheet As Worksheet, ByVal lastRow As Long)
' Ordenar las filas por la columna A (fecha) de manera descendente
sheet.Range("A4:A" & lastRow).Sort Key1:=sheet.Range("A4"), Order1:=xlDescending, Header:=xlNo
End Sub
' Definir las hojas
Set h1 = Sheets("2_DIV. DELITOS")
Set h2 = Sheets("1_RQ")
Set h3 = Sheets("24_ALCOHOLEMIA")
Set h4 = Sheets("10_ARMAS FUEGO")
Set h5 = Sheets("11_ARMAS BLANCAS")
Set h6 = Sheets("27_BBCC")
Set h7 = Sheets("17_VEH. MAYORES O CAPTURA")
Set h8 = Sheets("19_VEH.MAYORES RECUPERADOS")
Set h9 = Sheets("21_VEH. MENORES O CAPTURA")
Set h10 = Sheets("23_VEH. MENORES RECUPERADOS")
Set h11 = Sheets("40_CELULARES")
Set h12 = Sheets("4_ PBC ENVOLTORIOS")
Set h13 = Sheets("5_CC ENVOLTORIOS")
Set h14 = Sheets("6_ MARIHUA ENVOLTORIOS")
Set h15 = Sheets("7_PBC KG")
Set h16 = Sheets("8_CC KG")
Set h17 = Sheets("9_MARIHUANA KG")
Set h18 = Sheets("OP")
Set h19 = Sheets("39_OOCC")
Set h20 = Sheets("30_CONTRABANDO")
Set h21 = Sheets("PROPIEDAD INDUSTRIAL")
Set h28 = Sheets("Est_Prod")
' Definir variables para las filas de datos
u = h1.Range("B" & Rows.Count).End(3).Row
u2 = h2.Range("B" & Rows.Count).End(3).Row
u3 = h3.Range("B" & Rows.Count).End(3).Row
u4 = h4.Range("B" & Rows.Count).End(3).Row
u5 = h5.Range("B" & Rows.Count).End(3).Row
u6 = h6.Range("B" & Rows.Count).End(3).Row
u7 = h7.Range("B" & Rows.Count).End(3).Row
u8 = h8.Range("B" & Rows.Count).End(3).Row
u9 = h9.Range("B" & Rows.Count).End(3).Row
u10 = h10.Range("B" & Rows.Count).End(3).Row
u11 = h11.Range("F" & Rows.Count).End(3).Row
u12 = h12.Range("B" & Rows.Count).End(3).Row
u13 = h13.Range("B" & Rows.Count).End(3).Row
u14 = h14.Range("B" & Rows.Count).End(3).Row
u15 = h15.Range("B" & Rows.Count).End(3).Row
u16 = h16.Range("B" & Rows.Count).End(3).Row
u17 = h17.Range("B" & Rows.Count).End(3).Row
u18 = h18.Range("C" & Rows.Count).End(3).Row
u19 = h19.Range("B" & Rows.Count).End(3).Row
u20 = h20.Range("B" & Rows.Count).End(3).Row
u21 = h21.Range("B" & Rows.Count).End(3).Row
' Ordenar las columnas de acuerdo con las fechas (columna A de cada hoja)
Call OrdenarPorFecha(h1, u)
Call OrdenarPorFecha(h2, u2)
Call OrdenarPorFecha(h3, u3)
Call OrdenarPorFecha(h4, u4)
Call OrdenarPorFecha(h5, u5)
Call OrdenarPorFecha(h6, u6)
Call OrdenarPorFecha(h7, u7)
Call OrdenarPorFecha(h8, u8)
Call OrdenarPorFecha(h9, u9)
Call OrdenarPorFecha(h10, u10)
Call OrdenarPorFecha(h11, u11)
Call OrdenarPorFecha(h12, u12)
Call OrdenarPorFecha(h13, u13)
Call OrdenarPorFecha(h14, u14)
Call OrdenarPorFecha(h15, u15)
Call OrdenarPorFecha(h16, u16)
Call OrdenarPorFecha(h17, u17)
Call OrdenarPorFecha(h18, u18)
Call OrdenarPorFecha(h19, u19)
Call OrdenarPorFecha(h20, u20)
Call OrdenarPorFecha(h21, u21)
' Copiar los datos ya ordenados a la hoja de destino
h1.Range("B5:B" & u & ",G5:G" & u & ",K5:K" & u & ",O5:O" & u & ",P5:P" & u & ",Q5:Q" & u & ",W5:W" & u).Copy h28.Range("A4")
h2.Range("B5:B" & u2 & ",D5:D" & u2 & ",K5:K" & u2 & ",P5:P" & u2 & ",X5:X" & u2).Copy h28.Range("H4")
h3.Range("B4:B" & u3 & ",G4:G" & u3).Copy h28.Range("M4")
h4.Range("B5:B" & u4 & ",J5:J" & u4 & ",R5:R" & u4 & ",AC5:AC" & u4).Copy h28.Range("O4")
h5.Range("B4:B" & u5 & ",H4:H" & u5 & ",G4:G" & u5).Copy h28.Range("S4")
h6.Range("B5:B" & u6 & ",D5:D" & u6 & ",E5:E" & u6 & ",Q5:Q" & u6 & ",AA5:AA" & u6).Copy h28.Range("V4")
h7.Range("B4:B" & u7 & ",F4:F" & u7).Copy h28.Range("AA4")
h8.Range("B4:B" & u8 & ",F4:F" & u8).Copy h28.Range("AC4")
h9.Range("B4:B" & u9 & ",F4:F" & u9).Copy h28.Range("AE4")
h10.Range("B4:B" & u10 & ",F4:F" & u10).Copy h28.Range("AG4")
h11.Range("B4:B" & u11 & ",E4:E" & u11).Copy h28.Range("AI4")
h12.Range("B4:B" & u12 & ",C4:C" & u12 & ",G4:G" & u12).Copy h28.Range("AK4")
h13.Range("B4:B" & u13 & ",C4:C" & u13 & ",G4:G" & u13).Copy h28.Range("AN4")
h14.Range("B4:B" & u14 & ",C4:C" & u14 & ",G4:G" & u14).Copy h28.Range("AQ4")
h15.Range("B4:B" & u15 & ",C4:C" & u15 & ",H4:H" & u15).Copy h28.Range("AT4")
h16.Range("B4:B" & u16 & ",C4:C" & u16 & ",H4:H" & u16).Copy h28.Range("AW4")
h17.Range("B4:B" & u17 & ",C4:C" & u17 & ",H4:H" & u17).Copy h28.Range("AZ4")
h18.Range("C3:C" & u18 & ",F3:F" & u18 & ",H3:H" & u18 & ",Q3:Q" & u18 & ",R3:R" & u18 & ",S3:S" & u18 & ",T3:T" & u18 & ",U3:U" & u18 & ",X3:X" & u18 & ",Y3:Y" & u18 & ",Z3:Z" & u18 & ",AA3:AA" & u18 & ",AB3:AB" & u18).Copy h28.Range("BC4")
h19.Range("B5:B" & u19 & ",D5:D" & u19 & ",E5:E" & u19 & ",Y5:Y" & u19).Copy h28.Range("BQ4")
h20.Range("B3:B" & u20 & ",F3:F" & u20 & ",H3:H" & u20).Copy h28.Range("BX4")
h21.Range("C5:C" & u21 & ",I5:I" & u21 & ",D5:D" & u21).Copy h28.Range("CA4")
End Sub
Sub OrdenarPorFecha(sheet As Worksheet, ByVal lastRow As Long)
' Ordenar las filas por la columna A (fecha) de manera descendente
sheet.Range("A4:A" & lastRow).Sort Key1:=sheet.Range("A4"), Order1:=xlDescending, Header:=xlNo
End Sub
Valora esta pregunta


0