Générer un fichier XML a partir de VBA
Bonjour tout le monde,
je me suis récemment attaqué a la création d´une macro dans le but de générer un fichier XML a partir d´un tableau existant.
Après avoir scruté plusieurs forum j´ai fais un premier essais avec la méthode Print# qui marche bien mais que j´ai trouvé un peu laborieuse. Mon idée était d´automatiser l'écriture des différentes ligne, je me suis donc tourné vers une autre méthode qui me semblait plus adapté: MSXML2.DOMDocument60, appendchild, createElement etc...
Seulement, je pense que je ne comprend bien cette méthode car toutes mes tentatives sont des échecs.
Avec le code ci-dessous, je cherche a récupérer les noms des noeuds dans un tableau puis leur valeur:
Code:
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
| Sub oNode2()
Dim oXML As MSXML2.DOMDocument60
Dim oNode As MSXML2.IXMLDOMNode
Dim Var As Variant
Dim Source As Worksheet
Set oXML = New MSXML2.DOMDocument60
Set oNode = oXML.createProcessingInstruction("xml", "version=""1.0"" encoding=""ISO-8859-1""")
Set Source = ThisWorkbook.Sheets("Sheet1")
oXML.appendChild oNode
For Each Var In Source.Range("B4:B6")
With oXML.appendChild(oXML.createElement(Var))
.Text = Var.Offset(0, 1)
End With
Next Var
oXML.Save "...l"
End Sub |
L´idée ici est de créer le XML suivant:
Code:
1 2 3
| <Nom>Dubois</Nom>
<Prenom>Jean</Prenom>
<Age>40</Age> |
A partir du tableau suivant:
Nom |
Dubois |
Prenom |
Jean |
Age |
40 |
Je précise que bien sur ceci n´est qu´un exemple et que mon XML final devrait contenir 200-300 lignes, d´où la raison de rendre l´écriture de XML plus automatique.
Mon code plante systématiquement quand rentre en jeu la Variable Var, et je ne comprends pas pourquoi.
Merci par avance pour votre aide. Si vous avez des idées ou des méthodes radicalement différentes n´hésitez pas, cela me permettra d´apprendre de nouvelles choses sur VBA.
Chris