1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| Sub test()
Dim Onodes, objXML, Onoeud
Dim fichier As String, x As Integer, i As Long
Set objXML = CreateObject("Msxml2.DOMDocument")
objXML.async = True
objXML.Load "C:\Users\polux\Desktop\00_- PrixCarburants_annuel_2016.xml"
Set noeuds = objXML.getElementsByTagName("pdv") 'on collectionne tout les balise "pdv"
s = 0
For Each Onoeud In noeuds
s = s + 1: a = 0: se = 1
If Sheets.Count < s Then Sheets.Add After:=Sheets(Sheets.Count)
For Each onoeuds2 In Onoeud.ChildNodes
Set obj = onoeuds2
Select Case onoeuds2.tagname
Case "adresse"
Sheets(s).Cells(1, 1).Resize(1, 2) = Array("adresse", onoeuds2.Text)
Case "ville"
Sheets(s).Cells(2, 1).Resize(1, 2) = Array("ville", onoeuds2.Text)
Case "ouverture"
Sheets(s).Cells(3, 1).Resize(1, 2) = Array("ouverture", obj.getattribute("debut"))
Sheets(s).Cells(4, 1).Resize(1, 2) = Array("fermeture", obj.getattribute("fin"))
Case "services"
Sheets(s).Cells(5, 1) = "services"
For Each serv In onoeuds2.ChildNodes
se = se + 1
Sheets(s).Cells(5, se) = serv.Text
Next
End Select
Next
With Sheets(s).Cells(Rows.Count, 1).End(xlUp).Offset(2, 0).Resize(1, 4)
.Value = Array("prix", "VALEUR", "MAJ", "NOM")
.Interior.Color = &H80C0FF
End With
For Each onoeuds2 In Onoeud.ChildNodes
Set obj = onoeuds2
If onoeuds2.tagname = "prix" Then
Set obj = onoeuds2
lig = Sheets(s).Cells(Rows.Count, 1).End(xlUp).Row + 1
Sheets(s).Cells(lig, 1) = "prix"
Sheets(s).Cells(lig, 2) = obj.getattribute("valeur")
Sheets(s).Cells(lig, 3) = obj.getattribute("maj")
Sheets(s).Cells(lig, 4) = obj.getattribute("nom")
End If
Next
Next
End Sub |