Espero que esten bien aunque no los conosca
![sonriente](http://static.forosdelweb.com/fdwtheme/images/smilies/smile.png)
No se ha definido el tipo definido por el usuario
Segun yo al codigo no debe afectarle la información que esta recoja ya que solo va a tomar datos de un archivo y pasarlos a sus celdas.
U otra opción seria que alguien me pueda dar otra solución ya que el archivo del cual quiero copiar la información esta cambiendo constantemente y del cual no puedo guardar ninguna información ya que no es nada estatico. Este es un archivo que esta conectado a un programa PLC y genera datos pero despues decerrar la cesión no me guarda datos.
Espero me puedan ayudar y me haya explicado.
![lloron](http://static.forosdelweb.com/fdwtheme/images/smilies/chillando.png)
Sub Conectar_Excel_ADO()
'importar datos de un libro Excel sin abrirlo.
'dimensiones
Dim datConnection As ADODB.Connection
Dim recSet As ADODB.Recordset
Dim recCampo As ADODB.Field
Dim strDB, strSQL As Integer
Dim i As Long
'ruta al archivo Excel (la base de datos)
strDB = ThisWorkbook.Path & "\" & _
"MiArchivoExcel.xls"
strDB = "MiArchivoExcel.xls" 'si otra carpeta
'conectar
Set datConnection = New ADODB.Connection
Set recSet = New ADODB.Recordset
datConnection.Open "DRIVER=Microsoft Excel _
Driver (*.xls);" & "DBQ=" & strDB
'consulta SQL
'strSQL = "SELECT * FROM [NuestroRango]"
strSQL = "SELECT * FROM [Hoja1$A1:Q1000]"
'abrimos el recordset
recSet.Open strSQL, datConnection, adOpenStatic
'copiar datos
ActiveSheet.Cells.ClearContents
ActiveSheet.Cells(2, 1).CopyFromRecordset recSet
'copiar rotulos (campos)
i = 1
For Each recCampo In recSet.Fields
ActiveSheet.Cells(1, i) = _
recCampo.Name: i = i + 1
Next recCampo
'desconectar (¡importante!)
recSet.Close
datConnection.Close
'cerrar los objetos
Set recSet = Nothing
Set datConnection = Nothing
End Sub