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 :
étape 2
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)
Avantage : ca marche
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
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
Partager