Sub CompilationFichiersXML()
'Déclarations des variables
Dim ContenuXML
Dim Chemin As String, fn As String
Dim ClasseurMAITRE As Workbook, Classeur As Workbook
Dim rs As Range, rd As Range, rf As Range
Chemin = ThisWorkbook.Path & "\"
Set ClasseurMAITRE = ThisWorkbook
fn = Dir(Chemin & "*.xml")
Application.ScreenUpdating = False
'Boucle sur les fichiers XML dans le dossier
Do While fn <> ""
If fn <> ClasseurMAITRE.Name Then
Set Classeur = Workbooks.OpenXML(Filename:=Chemin & fn, LoadOption:=xlXmlLoadOpenXml) 'ouverture du fichier XML
'création d'un tableau (sans les entêtes)
With Classeur.Sheets(1).Range("A1").CurrentRegion
Set rs = .Offset(2).Resize(.Rows.Count - 2)
End With
ContenuXML = rs.Value
Classeur.Close False 'fermeture du fichier XML
'On détermine les cellues de recopie du tableau Contenu_XML
Set rd = ClasseurMAITRE.Worksheets(1).[B65536].End(xlUp).Offset(1, 0)
Set rf = ClasseurMAITRE.Worksheets(1).[A65536].End(xlUp).Offset(1, 0)
'recopie du tableau en mémoire dans la feuille du classeur Maitre
rd.Resize(UBound(ContenuXML, 1), UBound(ContenuXML, 2)) = ContenuXML
'recopie du nom des fichiers XML
rf.Resize(UBound(ContenuXML, 1), 1) = fn
Erase ContenuXML
Set rs = Nothing
End If
fn = Dir
Loop
'insertion numéros de colonnes
ClasseurMAITRE.Sheets(1).Range("A1") = 1
ClasseurMAITRE.Sheets(1).Range("A1:DX1").DataSeries
End Sub