RE:Trabajar con datos de otros archivos excel
Te envío este ejemplo, lo mejor de este código es que podrás hacer los movimientos de forma no transparente para el usuario no pueda ver lo que hace el código, como si se actualizara un archivo cerrado. Sólo te muestro como abrir y cerrar el libro, y abierto puedes manipularlo como quieras.
Option Explicit
Public Sub mueve datosentrelibros()
Dim lngNumReg As Long
Dim strRuta As String
Dim wbDatosdb As Workbook
Dim wbActual As Workbook
'Desactiva la actualización en pantalla, esto acelera
'bastante la ejecución del código
Application.ScreenUpdating = False
'Establece la ruta del archivo Datosdb, por supuesto
'puede estar en cualquier parte del disco o incluso de la red
strRuta = ThisWorkbook.Path & "\Datosdb.xls"
'Verifica que exista el archivo Datosdb
If Existe(strRuta) Then
'Guarda la referencia al libro actual
Set wbActual = ThisWorkbook
'Abre y establece una referencia al libro Datosdb
Set wbDatosdb = Workbooks.Open(strRuta)
'nos asegura que este oculta la ventana del libro Datosdb, de esta manera no lo ve el usuario
wbDatosdb.Windows(1).Visible = False
'Al abrir un libro, aunque sea por código, este queda activo
'activamos el libro anterior de donde se copiaran los registros
wbActual.Activate
'AQUI PUEDES PONER EL CODIGO QUE QUIERA PARA MANIPULAR EL ARCHIVO DATOSDB O TU BASE DE DATOS
'AL TERMINAR
'Guarda el libro Datosdb
wbDatosdb.Save
'Cierra el libro Datosdb
wbDatosdb.Close
'Libera la memoria usada
Set wbDatosdb = Nothing
Set wbActual = Nothing
DoEvents
Else
'Si no se encontró el archivo Datosdb, sólo borramos
'los datos filtrados
MsgBox "No se movieron datos por que el archivo Datosdb no existe"
End If
'Reactiva la actualización de pantalla
Application.ScreenUpdating = True
End Sub
'Función para saber si un archivo existe
Private Function Existe(ByVal Ruta As String) As Boolean
If Len(Dir(Ruta)) > 0 Then
Existe = True
End If
End Function