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 : 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
L´idée ici est de créer le XML suivant:

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