Grabar macro con referencias a libros externos

Tengo en mente grabar una macro para un libro, sin embargo debo importar datos de libros distintos cada vez que se ejecute la macro ¿Cómo puedo grabar macros con referencias a libros distintos cada vez que se ejecute?

Por ejemplo la primera vez necesito que llame datos de archivo1.xls y archivo2.xls, Sin embargo para la segunda ocasión ocupo que haga exactamente lo mismo pero llamando datos de archivo3.xls y archivo4.xls, es decir cada vez que ejecute la macro ocuparía libros de referencia distintos.

¿Alguna idea?

Respuesta
1

Esta macro copia de una libro a otro el contenido de determinada hoja. Lo que puede hacer es dos macro, especificando en cada macro cuales son los archivos a copiar a otro.

Puede adaptar la macro a sus necesidades.

Saludos

Sub CopiarLibro()
Dim x As Workbook
Dim y As Workbook
Dim vals As Variant
    '## Abrimos ambos ficheros:
    Set x = Workbooks.Open("C:\Libro1.xlsm")
    Set y = Workbooks.Open("C:\Libro2.xlsm")
    'Guardar la información en una variable:
    vals = x.Sheets("Hoja2").Range("G3:P165").Value
    'Trasladar el contenido de la variable a otra hoja:
    y.Sheets("Hoja2").Range("G3:P165").Value = vals
    'Cerrar x:
    'x. Close
End Sub

1 respuesta más de otro experto

Respuesta
1

Creo que lo mejor es que la macro te permita buscar y abrir los libros que necesitas.

Te dejo una macro adaptada de mi manual 500Macros:

Sub buscalibros()
'x Elsamatilde
'guarda el nombre de libro activo para poder regresar
milibro = ActiveWorkbook.Name
'controla posible error de apertura      'ver tratamiento de errores en cap. 11 manual 500Macros
On Error Resume Next
'se busca el primer libro y se guarda su nombre
librox = Application.GetOpenFilename
If librox <> False Then Workbooks.Open librox: libro1 = ActiveWorkbook.Name
'repetir con el 2do libro
librox = Application.GetOpenFilename
If librox <> False Then Workbooks.Open librox: libro2 = ActiveWorkbook.Name
'volver al libro de trabajo y seleccionar la hoja que corresponda
Workbooks(milibro).Activate
Sheets(1).Select
End Sub

De este modo te quedan los 2 libros abiertos y sus nombres en las variables libro1 y libro2.

¿Acabo de responderte una consulta nueva... pero me encuentro con que no valoras ninguna... no sabes hacerlo? Mira al final de este comentario y allí verás botones similares a los de la imagen:

Creo que te respondí de forma Excelente pero también puedes valorar como 'bueno' ;(

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas