Macro que busque y arroje datos de diferentes libros

Expertos todos:

Necesito ayuda con una macro que permita buscar una coincidencia entre los datos de 10 planillas excel cerradas y me entregue los datos de la fila completa. Todos los libros tienen los datos en la hoja 1 y comienzan a partir de la celda A3. Están ordenados para que el dato a buscar se encuentre en la primera columna, pero al utilizar BUSCARV para programar que entregue los datos de la fila, requiere que estén los 10 libros abiertos.

Cabe destacar que los datos van siendo actualizados diariamente, por ende debería ser actualizable la búsqueda.

1 respuesta

Respuesta

Un modo en que puedes mantener tus fórmulas con "BUSCARV" y que se actualicen sin tener que tener los otros diez libros abiertos es que la macro, más que hacer el trabajo que ya te hacen las fórmulas (lo que significaría programar todo), abra dichos libros y los cierre automáticamente (sin necesidad de que eso se vea) de tal modo que las fórmulas se actualizarán.

Podrías usar algo así en el evento "Open" de tu libro:

Private Sub Workbook_Open()
Application.ScreenUpdating = False
Workbooks.Open Filename:="C:\Users\root\Desktop\Nombre_del_archivo.xlsx"
ActiveWorkbook.Close Savechanges:=True
Application.ScreenUpdating = True
End Sub

Te dejo el ejemplo con un libro, pero puede aplicarse a todos los que deseas.

Comentas

Abraham Valencia

Mil gracias por tu respuesta.

Pero aún así, podrías mostrarme cómo programar que abra y cierre más de 1 libro?

Es necesario para poder probar si me funciona.

Asumo que la idea es mantener en una hoja las fórmulas de búsqueda  (BUSCARV) y luego en esa hoja aplicar la macro que sugieres (la que abrirá y cerrará los libros para la búsqueda) con algún botón asignado...?

Gracias!

Una forma:

Private Sub Workbook_Open()
Call Abriendo("C:\Users\root\Desktop\Nombre_del_archivo1.xlsx")
Call Abriendo("C:\Users\root\Desktop\Nombre_del_archivo2.xlsx")
Call Abriendo("C:\Users\root\Desktop\Nombre_del_archivo3.xlsx")
Call Abriendo("C:\Users\root\Desktop\Nombre_del_archivo4.xlsx")
End Sub
Sub Abriendo(Ruta)
Application.ScreenUpdating = False
Workbooks.Open Filename:=Ruta
ActiveWorkbook.Close Savechanges:=True
Application.ScreenUpdating = True
End Sub

Solo reemplaza las rutas por las tuyas y coloca más "Call" dependiendo de tu número de archivos.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas