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:
L´idée ici est de créer le XML suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager