Macro que copia dato de varias hojas de un libro a otro

3 envíos / 0 nuevos
Último envío
crengifo
Imagen de crengifo
Offline
última acción: Hace 5 años 5 meses
alta: 14/02/2017 - 01:19
Puntos: 80
Macro que copia dato de varias hojas de un libro a otro

Buenas tardes, compañeros

Quisiera que me ayudaran a optimizar esta macro, la hace lo siguiente copia los datos de las hojas que representas el dia del mes actual y los pega en otra libro, pero quisiera que sea mas corto no tan tedioso. Si es posible utilizar un bucle. Adjunto los archivos

Les adjunto la rutina que he elaborado:

Sub MetodoAbrirLibro()
Application.ScreenUpdating = False
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False

Ayer = DateSerial(Year(Now), Month(Now), Day(Now)) - 1

Workbooks.Open "\\10.7.10.1\logistica\Logistica Publico\Bodega\inventarios_bodega\Cierre de Inventarios " & Format(Now, "yyyy") & "\cierre inventarios " & Format(Ayer, "mmmm") & ".xls"

Windows("cierre inventarios " & Format(Ayer, "mmmm") & ".xls").Activate
Sheets("1").Select
Application.Union(Range("D18:E18"), Range("J18")).Select
Selection.Copy

Windows("Indicadores.xlsm").Activate
Sheets("Hoja1").Select
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues

Windows("cierre inventarios " & Format(Ayer, "mmmm") & ".xls").Activate
Sheets("2").Select
Application.Union(Range("D18:E18"), Range("J18")).Select
Selection.Copy

Windows("Indicadores.xlsm").Activate
Sheets("Hoja1").Select
Range("B4").Select
Selection.PasteSpecial Paste:=xlPasteValues

Asi sucesivamente hasta culminar la hoja que representa el ultimo dia del mes actual

Windows("cierre inventarios " & Format(Ayer, "mmmm") & ".xls").Activate
ActiveWindow.Close

AdjuntoTamaño
Package icon prueba.zip2.1 MB
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 1 hora
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
el bucle para recorrer todos

el bucle para recorrer todos los días lo tienes fácil

For contador = 1 To ultimodiadelmes

    Windows("cierre inventarios " & Format(Ayer, "mmmm") & ".xls").Activate

    Sheets(contador).Select

    Application.Union(Range("D18:E18"), Range("J18")).Select

    Selection.Copy

 

    Windows("Indicadores.xlsm").Activate

    Sheets("Hoja1").Select

    Range("B" & 2 + contador).Select

    Selection.PasteSpecial Paste:=xlPasteValues

Next

 

------
Ya sé Excel, pero necesito más.

crengifo
Imagen de crengifo
Offline
última acción: Hace 5 años 5 meses
alta: 14/02/2017 - 01:19
Puntos: 80
Que tal compañeroGracias pos

Que tal compañero

Gracias pos tu aporte pero al parecer no reccorre las hojs ya que no me pego ningun dato. Te adjunto el archivo.

AdjuntoTamaño
File indicadores.xlsm23.5 KB