Bonjour à tous,

Je dois récupérer des datas mises à disposition sur un url intranet au format xml (tableau à 2 dimensions) pour les afficher dans une feuille excel.

Un des difficulté est liée à la version d'excel que je dois utiliser : excel 2000.
La seconde est liée à la taille du tableau : 130 colonnes et jusqu'à 2500 lignes

Actuellement je fait en 2 étapes :
- récupération des données disponibles dans un type MSXML2.DOMDocument30
- copie des ChildNodes.Item par 2 boucles imbriquées ( lignes / colonnes)


étape 1 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
const urlFullName="http://tructruc/tructruc/index.php"
Dim xmlDoc As New MSXML2.DOMDocument30
    xmlDoc.async = False
    xmlDoc.Load (urlFullName)
étape 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
NbLigne = xmlDoc.DocumentElement.ChildNodes.Length
   For x = 0 To NbLigne
       numcol = 2' c'est la colonne de destination dans excel
       For y = 0 To xmlDoc.DocumentElement.ChildNodes.Item(x).ChildNodes.Length
          Cells(numlig, numcol).Value = xmlDoc.DocumentElement.ChildNodes.Item(x).ChildNodes.Item(y).Text
          numcol = numcol + 1
        Next y
        numlig = numlig + 1
   Next x
Avantage : ca marche
inconvénient : c'est long (environ 3 seconde par ligne, donc avec + de 2000 ligne ....)

Est-il possible de mapper directement la totalité des childnodes de niveau 2 (le + bas) sur une ligne
ou mieux, de mapper directement ce tableau à 2 dimensions formatté xml sur un range ?

J'ai testé différentes syntaxe mais rien ne passe.


Merci d'avance à ceux qui ont des idées ou suggestions