Autres [XML] Importer fichier XML dans Excel (uniquement certaines colonnes)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

StagExcelle

XLDnaute Junior
Bonjour,

Dans le cadre de mon stage, je dois importer un fichier XML puis le rendre plus lisible
Je voudrais le faire par VBA.
Les recherches que j'ai faites sur internet m'ont dirigé sur cette piste : CreateObject("Microsoft.XMLDOM"), XPath SelecNodes etc..
Malheureusement, je ne comprends pas bien ce langage.

Actuellement, j'utilise cette macro construite avec ce que j'ai trouvé sur internet
VB:
Sub xEssai_Macro_XML()
'Déclarations des variables
Dim fd As Office.FileDialog
Dim strFile As String, WBK As Workbook
'Choisir le fichier avec une boite de dialogue
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
    .Filters.Clear
    .Filters.Add "FICHIER XML", "*.xml", 1
    .Title = "Choisir le fichier XML"
    .AllowMultiSelect = False
    If .Show = True Then
    strFile = .SelectedItems(1)
    End If
End With
Application.ScreenUpdating = False
'Importer le fichier dans un tableau dans Excel
strXML_Fic = strFile
Workbooks.OpenXML Filename:=strXML_Fic, LoadOption:=xlXmlLoadImportToList
End Sub
Mais cette macro importe tout le fichier XML alors que le besoin serait de n'importer que certaines colonnes.

Je vous joins un fichier XML dans le fichier ZIP attaché.

Le fichier XML exemple génère une erreur quand on l'importe manuellement ou par macro.
Je ne sais pas pourquoi.

Merci pour l'aide et explications que vous voudrez bien m'apporter.
 

Pièces jointes

Bonjour Etoto

Merci de ton intérêt pour ma question.

Je viens de m'inscrire sur le forum Excel-Download parce ma question est liée à Excel.

Et en faisant des recherches sur le forum, j'ai vu qu'il y avait des discussions qui parle d'XML et Excel.

Mais je n'ai pas su les adapter à mon besoin.

C'est pour cela que j'ai posé ma question.
 
Bonjour Etoto

Merci de ton intérêt pour ma question.

Je viens de m'inscrire sur le forum Excel-Download parce ma question est liée à Excel.

Et en faisant des recherches sur le forum, j'ai vu qu'il y avait des discussions qui parle d'XML et Excel.

Mais je n'ai pas su les adapter à mon besoin.

C'est pour cela que j'ai posé ma question.
Ok,

Normalement je ne devrais pas conseiller un forum concurrent mais ils sont meilleurs pour ça, nous c'est plus le VBA et les formules, c'est pour cela que je suis dans les deux forums.
 
Dernière édition:
Quand j'ouvre dans Powerquery, ca donne l'image de mon message #2

Je ne sais pas quelle manipulation faire pour ne pas avoir Table (mais le contenu)

Sinon, j'ai trouvé de code VBA dans le forum
Mais je ne sais pas aller plus loin avec

Ca mets tout dans la même cellule, ligne par ligne.

Code VBA avec le langage XML
VB:
Sub Test()
    Dim xmlDoc As DOMDocument
    Dim root As IXMLDOMElement
    Set xmlDoc = New DOMDocument
    xmlDoc.async = False
    xmlDoc.Load ThisWorkbook.Path & "\order.exemple.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)
    Dim i As Long
    For i = 0 To root_node.ChildNodes.Length - 1
        If 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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour