Navegar distintos archivos y actualizarlos a todos desde una macro

4 envíos / 0 nuevos
Último envío
Marianela Ruatta
Imagen de Marianela Ruatta
Offline
última acción: Hace 3 años 9 meses
alta: 18/08/2017 - 14:27
Puntos: 175
Navegar distintos archivos y actualizarlos a todos desde una macro

Buenos dias, tengo un conjunto de archivos que quiero actualizar. Basicamente todos los meses debo entrar uno por uno y correr la ultima columna para que me traiga informacion del mes actualizado. Me interesa crear una macro donde a travez de un bucle, recorra el listado de archivos y realice ese proceso sin necesidad de abrirlos uno por uno. 

Comencé haciendo esto:

 

Sub Actualizar()

'

 

    Dim SelectArchivo As String

    Dim ParaActualizar As Workbook

  

    Range("A2").Select

    SelectArchivo = ActiveCell.Value

    

    'Esta linea evita que parpadee la pantalla, por los procesos de cambio de hoja

    Application.ScreenUpdating = False

    

    'Abre el libro fuente 

    Workbooks.Open Filename:=ParaActualizar

    

    'A partir de esta linea se inicia un procesos repetitivo denomidado BUCLE, el mismo se repetira hasta

    'que la variable de un valor en BLANCO

    

    Do While SelectArchivo <> ""

    Sheets("Selección").Select

    

    NombreArchivo = Dir("C:\Users\u161280\Desktop\Prueba")

    

    'Seleciona una hoja y un rango

    Sheets("Hoja1").Select

    Selection.End(xlToRight).Select

    Range(Selection, Selection.End(xlDown)).Select

    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select

    Range(Selection, Selection.End(xlDown)).Select

    Selection.AutoFill Destination:=Columns("D:E"), Type:=xlFillDefault

    Columns("D:E").Select

    Columns("E:E").Select

    Calculate

    Range("E1").Select

    ActiveWorkbook.Save

    ActiveWorkbook.Close

    

    Loop

 

End Sub

Tengo problema con Workbooks.Open Filename:=ParaActualizar, me dice "Variable de objeto o bloque with no establecido"

Los archivos son:

ParaActualizar ---> Excel donde pondré el listado de archivos que debe buscar y actualizar

Excel1, Excel 2 y Excel 3 son los archivos que debe correr la formula y guardarlo.

He utilizado esto a modo de ejemplo, ya que los archivos originales tienen nombres mas largos y una vez que entienda el proceso lo replicaré modificando los datos.

 

Muchas gracias!!

 

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 2 días 15 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
has declarado tu variable

has declarado tu variable ParaActualizar como tipo Workbook

sin embargo, al abrir el libro lo utilizas como si fuese la ruta del archivo

Workbooks.Open Filename:=ParaActualizar

por eso te da el error, porque está esperando una ruta de archivo

dices que ParaActualizar es un libro donde tienes el listado de archivos a abrir

¿cómo abres ese libro?¿en qué momento lo abres?¿está abierto ya al iniciar la macro?

Suponiendo que ya esté abierto, imagino que tendrás un rango con los nombres de los archivos que quieres abrir, ese será el rango por el que tendrás que hacer un bucle.

    Dim LibroQueVoyAProcesar As Workbook 

    Dim miceldaconrutaaarchivo As Range

    For Each miceldaconrutaaarchivo In rangoconnombresdelibros.Cells 'este rango lo tendrás que establecer antes

        'abrimos el libro

        Set LibroQueVoyAProcesar = Application.Workbooks.Open(Filename:=miceldaconrutaaarchivo.Value)

        ' ya lo tienes abierto

        ' aquí haces lo que quieras con ese libro

        

        LibroQueVoyAProcesar.Close

    Next

    'terminamos

    Set LibroQueVoyAProcesar = Nothing

 

 

 

 

 

 

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

Marianela Ruatta
Imagen de Marianela Ruatta
Offline
última acción: Hace 3 años 9 meses
alta: 18/08/2017 - 14:27
Puntos: 175
Gracias Paco, voy a probar lo

Gracias Paco, voy a probar lo que me indicas. 

Si, tendre el libro ParaActualizar abierto y sera a traves de ese que actualice el resto de libros.

 

Gracias!

Marianela Ruatta
Imagen de Marianela Ruatta
Offline
última acción: Hace 3 años 9 meses
alta: 18/08/2017 - 14:27
Puntos: 175
Rangos Variables - Autofill

Ya he podido lograr que mi macro navegue mediante un bucle el listado de archivos, los trabaje y vuelva a cerrar.

Ahora tengo un pequeño problema con lo que debe hacer dentro de cada archivo, que es:

IR A LA ULTIMA COLUMNA CON DATOS, COPIAR TODO Y CORRERLO UNA COLUMNA MAS.

Por ejemplo mi ultima columna con informacion es Abril 2019, y para abajo tiene 10 filas con formulas. Lo que necesito es que "AutoFill Destination" tenga un rango variable, para por ejemplo la primera vez correr la formula y que sea Mayo 2019, en el mes siguiente Junio 2019  y asi sucesivamente.

EneroFebreroMarzoAbrilMayo
15232323 
18454545 

El problema es que no se como definir ese rango variable.