# Importar xml en un solo archivo.



## pepejlmh (Jul 2, 2016)

Buen dia, saludos, me podrian ayudar necesito una macro o codigo en VBA para Excel, que me importe varios archivos xml que estan en una carpeta en una ruta especifica, al mismo tiempo en el libro que un solo libro.

De antemano gracias por su apoyo.


----------



## manu197a (Jul 4, 2016)

pepejlmh said:


> Buen dia, saludos, me podrian ayudar necesito una macro o codigo en VBA para Excel, que me importe varios archivos xml que estan en una carpeta en una ruta especifica, al mismo tiempo en el libro que un solo libro.
> 
> De antemano gracias por su apoyo.



Este código te ayuda a seleccionar todos los archivos que quieras, a abrir cada uno y a hacer lo que tú necesites--por ejemplo copiar celdas de cada uno de ellos a un libro que tienes abierto. Yo he usado esto para extraer datos de facturas guardadas en XML.

**Debes modificar el código para que haga lo que tú necesites en cada archivo XML seleccionado.**


```
Sub Llenar_datos_de_Varios_XML()

Dim archivo As Variant
Dim Nombre_archivo As String

Dim libro1 As Workbook
Dim libro2 As Workbook

'El usuario elige los archivos XML
archivo = Application.GetOpenFilename("Archivos XML (*.xml), *.xml", MultiSelect:=True)

'Si no se selecciona ningún archivo, termina la macro
If archivo = False Then Exit Sub

Set libro1 = ActiveWorkbook

'REPITE ESTE PROCESO PARA TODOS LOS ARCHIVOS ELEGIDOS
For w = LBound(archivo) To UBound(archivo)

Nombre_archivo = archivo(w)

'ABRE EL ARCHIVO XML QUE ESTÁ EN LA POSICIÓN W
Workbooks.OpenXML filename:=Nombre_archivo, LoadOption:=xlXmlLoadImportToList

Set libro2 = ActiveWorkbook

''''''''''''''''''''
'AQUÍ PUEDES INSERTAR EL CÓDIGO QUE NECESITES PARA COPIAR
'DEL libro2 AL libro1 TODO LO QUE NECESITES

'Ejemplo:
libro2.Sheets(1).Range("A1:A10").copy libro1.Sheets(1).Range("A1")
''''''''''''''''''''

libro2.Close (false)
libro1.Activate

Next w

Set libro1 = Nothing
Set libro2 = Nothing

End Sub
```


----------

