Excel - copiar cirtas columnas ordenadas por fecha

 
Vista:
Imágen de perfil de JUAN

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de wordexperto.com
Val: 6.373
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

copiar cirtas columnas ordenadas por fecha

Publicado por wordexperto.com (2810 intervenciones) el 19/03/2025 09:04:33
Esto te contesté, Juan, a tu pregunta anterior, en agosto, y me reitero.
Otra vez, Juan:
Estructura inadecuada, por ineficiente para Excel. Solo necesitas dos hojas: una para la base de datos y otra para las tablas dinámicas. Eficiencia y productividad: ahorro de muchísimo tiempo.
https://www.youtube.com/playlist?list=PLF1OL9sNXkSyOJETR9ST8xjwjFj9WrkME
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

copiar cirtas columnas ordenadas por fecha

Publicado por Antoni Masana (2540 intervenciones) el 19/03/2025 13:43:25
Buenas, como dice Pepe la estructura es ineficiente pero ya que la tienes vamos a ver como podemos arreglarlo.

Para ver cual es el problema necesito ejecutar la macro ver que hace y donde esta el error, para ello necesito el libreo.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JUAN

copiar cirtas columnas ordenadas por fecha

Publicado por JUAN (5 intervenciones) el 19/03/2025 15:17:22
CLARO COMPARTO LO DE USTEDES, GRACIAS POR SU APORTE TRATARE DE ESTRUCTURAR ESTO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar