Bonjour à vous,

Je suis actuellement en train de reproduire un document XML avec du VBA et à partir d'un tableau Excel (que si j'enregistre en XML, il n'est pas structuré correctement). J'ai déjà réalisé la première ligne du fichier XML :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<?xml version="1.0" encoding="utf-8"?>
Ainsi que quelques balises grâce à ce code ...

Code VBA : 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Private Sub CommandButton1_Click()
 
Dim Doc_XML As Object   'permet de créer le XML
Dim Node As Object      'permet de créer les noeuds
Dim Root As Object      'permet de créer la racine du XML
Dim Chemin As String    'Chemin de sauvegarde
 
Set Doc_XML = CreateObject("MSXML2.DOMDocument")    'Création du XML
 
Set Node = Doc_XML.createProcessingInstruction("xml", "version=""1.0"" encoding=""utf-8""")
 
Doc_XML.appendChild Node                            'Ajout des données au fichier
Set Node = Nothing                                  'Remise à zéro du noeud
Set Root = Doc_XML.CreateElement("SWOOMat")         'Création d'une racine
Doc_XML.appendChild Root                            'Ajout de la racine au XML
Root.appendChild Doc_XML.createTextNode(vbCrLf)
 
Set Node = Doc_XML.CreateElement("Materials")       'Création d'un noeud
Root.appendChild Node                               'Ajout du noeud à la racine
'Node.Text = "Text 1"                                'Ajout d'un texte dans le noeud                                  'Remise à zéro du noeud
Root.appendChild Doc_XML.createTextNode(vbCrLf)
 
Set Node = Doc_XML.CreateElement("EdgeBands")       'Création d'un noeud
Root.appendChild Node                               'Ajout du noeud à la racine
'Node.Text = "Text 1"                                'Ajout d'un texte dans le noeud
Set Node = Nothing                                  'Remise à zéro du noeud
Root.appendChild Doc_XML.createTextNode(vbCrLf)
 
Set Node = Doc_XML.CreateElement("EdgeBandsShapes") 'Création d'un noeud
Root.appendChild Node                               'Ajout du noeud à la racine
Node.Text = "Text 1"                                'Ajout d'un texte dans le noeud
Set Node = Nothing                                  'Remise à zéro du noeud
Root.appendChild Doc_XML.createTextNode(vbCrLf)
 
Set Node = Doc_XML.CreateElement("EdgeBandsEndShapes") 'Création d'un noeud
Root.appendChild Node                               'Ajout du noeud à la racine
Node.Text = "Text 1"                                'Ajout d'un texte dans le noeud
Set Node = Nothing                                  'Remise à zéro du noeud
Root.appendChild Doc_XML.createTextNode(vbCrLf)
 
Set Node = Doc_XML.CreateElement("Boards")         'Création d'un noeud
Root.appendChild Node                               'Ajout du noeud à la racine
Node.Text = "Text 1"                                'Ajout d'un texte dans le noeud
Set Node = Nothing                                  'Remise à zéro du noeud
Root.appendChild Doc_XML.createTextNode(vbCrLf)
 
'Ajout de la partie attribut si tu le souhaite
 
'Set Name = Doc_XML.CreateAttribute("Attrib")        'Création de l'attribut
'Name.NodeValue = "Ce que tu veux"                   'Nommnation de l'attribut
'Node.SetAttributeNode Name                          'Ajout de l'attribut au noeud
 
If TextBox1 = "" Then
MsgBox "Renseignez le nom que vous souhaitez attribuer au fichier"
Else
Chemin = ThisWorkbook.Path & "\" & TextBox1.Text & ".xml"  'Chemin de sauvegarde + Nom du fichier
Doc_XML.Save Chemin                                 'Sauvegarde
TextBox1 = ""
End If
 
End sub

Ce que je n'arrive pas à faire premièrement c'est de mettre des attributs à la racine, la racine devant ressembler à ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<SWOODMat xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="1" xmlns="http://www.eficad.com//SWOODMat">
Si quelqu'un peut m'aider à intégrer du code dans ce que j'ai fait pour la faire apparaître dans mon doc XML.

Merci et bonne journée