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 :
Ainsi que quelques balises grâce à ce code ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part <?xml version="1.0" encoding="utf-8"?>
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 :
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.
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">
Merci et bonne journée
Partager