bonjour Creepy , bonjour Gizmo
Gizmo, merci pour cette belle démo tres interessante
J'espere que tu ne m'en voudra pas : j'ai pris l'initiative de l'adapter pour que cela fonctionne chez moi :'MSXML2.DOMDocument40' ne marchait pas sur mon poste
Je travaille justement sur le sujet en ce moment .La gestion des fichiers XML depuis Excel sera un des chapitres de la prochaine WikiPage (Page 9)
Si tu le permets , je placerai un lien vers ta démo
sinon , ci joint un exemple pour créer un fichier XML depuis Excel , puis un autre pour lire le fichier créé
Option Explicit
Dim j As Long
'*****************************************
'Creer fichier XML
'*****************************************
Sub creerFichierXML()
'http://www.c2i.fr/code.asp?IDCode=21
Dim objDOM As DOMDocument, XnodeRoot As IXMLDOMElement, Xnode As IXMLDOMElement
Dim oNode As IXMLDOMNode
Set objDOM = New DOMDocument
objDOM.resolveExternals = True
Set oNode = objDOM.createProcessingInstruction('xml', 'version='1.0'')
Set oNode = objDOM.insertBefore(oNode, objDOM.childNodes.Item(0))
Set XnodeRoot = objDOM.createElement('noeudRacine')
objDOM.appendChild XnodeRoot
Set Xnode = objDOM.createElement('noeudRacine')
Xnode.setAttribute 'At1', 'Attribut1'
Xnode.Text = 'la Texte 1'
XnodeRoot.appendChild Xnode
Set Xnode = objDOM.createElement('noeudRacine')
Xnode.setAttribute 'At2', 'Attribut2'
Xnode.Text = 'Le texte2'
XnodeRoot.appendChild Xnode
Set Xnode = objDOM.createElement('noeudRacine')
Xnode.setAttribute 'At3', 'Attribut3'
Xnode.Text = 'Le texte 3'
XnodeRoot.appendChild Xnode
objDOM.Save ThisWorkbook.Path & '\\\\\\\\leFichier.xml'
Set XnodeRoot = Nothing
Set Xnode = Nothing
Set objDOM = Nothing
End Sub
'*****************************************
'Lire le contenu du fichier XML
'*****************************************
Sub Test()
Dim xmlDoc As DOMDocument
Dim root As IXMLDOMElement
Set xmlDoc = New DOMDocument
xmlDoc.async = False
xmlDoc.Load ThisWorkbook.Path & '\\\\\\\\leFichier.xml'
Set root = xmlDoc.documentElement
Cells(1, 1) = root.BaseName
j = 1
BrowseChildNodes root
j = 0
End Sub
Private Sub BrowseChildNodes(root_node As IXMLDOMNode)
'http://vb.developpez.com/faq/?page=Routines
Dim i As Long
For i = 0 To root_node.childNodes.Length - 1
If Not root_node.childNodes.Item(i).nodeType = 3 Then
j = j + 1
Cells(j, 1) = root_node.childNodes.Item(i).BaseName & '/' & _
root_node.childNodes.Item(i).Text
End If
BrowseChildNodes root_node.childNodes(i)
Next
End Sub
les sources utilisées
http://vb.developpez.com/faq/?page=Routines
bon dimanche
MichelXld [file name=XmlAnalysis_V02.zip size=17410]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/XmlAnalysis_V02.zip[/file]
Message édité par: michelxld, à: 29/01/2006 09:01
Message édité par: michelxld, à: 29/01/2006 17:43
Message édité par: michelxld, à: 03/02/2006 05:03