Obtener datos de documento xml, sin abrirlo, desde Excel 2007

Hola.

No tengo muy claro si esta pregunta debería ir en la sección de Excel o aquí, pero bueno.

Tengo dos ficheros (fichero1.xlsm y fichero2.xlsx) y quiero traer una serie de datos desde fichero2.xlsx al fichero1.xlsm, pero sin abrir el primero (fichero2.xlsx). Para ello ejecuto esta macro desde fichero2.xlsm, que me funciona perfectamente:

Sub obtener_datos()
Dim objConnection As Object
Dim objRecordset As Object
Dim strSQL As String
Set objRecordset = CreateObject("ADODB.Recordset")
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open Join$(Array("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=", _
ThisWorkbook.Path & "\fichero2.xlsx", ";Extended Properties=""Excel 12.0 Xml; HDR=YES ;"""), vbNullString)
With objRecordset
.Open "SELECT * FROM [Sheet1$A:DA]", objConnection, 3, 2
For i = 0 To objRecordset.Fields.Count - 1
Workbooks("fichero1.xlsm").Worksheets("Hoja1").Cells(1, i + 1).Value = objRecordset.Fields(i).Name
Next i
Workbooks("fichero1.xlsm").Worksheets("Hoja1").Range("A2").CopyFromRecordset objRecordset
End With
objConnection.Close
Set objRecordset = Nothing
Set objConnection = Nothing
End Sub

Ahora quiero hacer lo mismo, pero trayendo datos de fichero2.xml. Se trata de un documento xml que abro con Excel sin ningún problema, por lo que pensé que me serviría el código de arriba, pero no ha sido así.

He estado probando mil formas, casi todas modificando la línea de objConnection.Open, que es la que me falla, cambiando el Provider, o algún nparámetro de Extended Properties, pero no hay manera.

Mi pregunta es si se puede cambiar algo de mi código para poder traer datos desde un fichero xml, o si tengo que cambiarlo entero.

Muchas gracias a tod@s de antemano por la ayuda!!

Añade tu respuesta

Haz clic para o