XL 2010 Boucle sur fichiers XML - Méthode d'accès

Twing83

XLDnaute Junior
Bonsoir,
Je suis en galère depuis plusieurs jours pour un problème certainement très connu, mais pas de moi...
J'ai un répertoire contenant 3 types de fichiers XML différents.
Je le sauvegarde (jamais trop prudent...) et je créé un répertoire par type.
Mon problème est que lorsque j'exécute mon code pour boucler sur les fichiers d'un répertoire afin d'importer les données, suivant la méthode d'accès au répertoire, mon import ne s'effectue pas, je m'explique :
- Si je sélectionne le répertoire par "Application.FileDialog(msoFileDialogFolderPicker)" ça fonctionne correctement.
- Si je récupère le chemin via une cellule ça ne fonctionne pas.
Encore plus étrange, si j'essaye en premier la méthode "FileDialog" et ensuite via le chemin dans une cellule ça marche.
J'ai tout essayé, les "/", les " \", écrire directement le chemin, rien n'y fait, toujours le même constat, dans un ordre c'est bon mais pas dans l'autre.
J'ai essayé sur un autre PC (on ne sait jamais...), mais pas mieux...
Si quelqu'un a une idée.
Merci d'avance.
 
Solution
Bonjour à tous,
J'ai enfin eu le temps de tester la solution de TooFatBoy #45 et le résultat est à la hauteur de mes attentes.
Merci également à patricktoulon pour ton code #45 qui permet de robustifier mes procédures.
Un grand merci à vous... :)

TooFatBoy

XLDnaute Barbatruc
Pour être bien sûr que moi aussi je te comprends : tu as des fichiers .xml dans le dossier "C:/Name/Savegarde/Auto/" ???

Et par curiosité : tu as copié le chemin dans l'Explorateur puis tu l'as collé dans la cellule, ou tu l'as saisi dans la cellule avec tes petites mimines et ton joli clavier ?
 

Twing83

XLDnaute Junior
Oui, j'ai bien tous les droits...
Pour être bien sûr que moi aussi je te comprends : tu as des fichiers .xml dans le dossier "C:/Name/Savegarde/Auto/" ???

Et par curiosité : tu as copié le chemin dans l'Explorateur puis tu l'as collé dans la cellule, ou tu l'as saisi dans la cellule avec tes petites mimines et ton joli clavier ?
Le chemin est copié par normalement par macro, mais pour C:/Auto j'ai utiliser quelques uns de mes doigts...
 

Twing83

XLDnaute Junior
Dans l'archive Test.zip que j'ai posté, il y a un dossier XML (contenant les fichiers) et un Excel qui génère une sauvegarde du dit dossier XML et qui extrait dans 2 dossiers Auto et Manu respectivement les fichiers Plan_Auto.xml et Plan_Manu.xml (j'ai manqué d'originalité pour le coup mais ça fait le job...).
L'ensemble des fichiers sont bien entendu copiés dans Sauvegarde.
 

TooFatBoy

XLDnaute Barbatruc
Dans l'archive Test.zip que j'ai posté, il y a un dossier XML (contenant les fichiers) et un Excel qui génère une sauvegarde du dit dossier XML et qui extrait dans 2 dossiers Auto et Manu respectivement les fichiers Plan_Auto.xml et Plan_Manu.xml (j'ai manqué d'originalité pour le coup mais ça fait le job...).
L'ensemble des fichiers sont bien entendu copiés dans Sauvegarde.
Ce n'est pas du tout ce qu'il se passe dans l'archive que tu as postée. C'est même l'inverse.
Du moins d'après ce que j'ai constaté. 😞

J'ai cru constater que le XLSX allait au contraire lire les différents XML pour remplir une feuille dudit XLSX.
Me trompé-je ? 🤔 🤔 🤔

Ou peut-être n'ai-je pas lancé la bonne macro : vu que tu n'as pas dit sur laquelle ça coinçait, je me suis focalisé sur ExtracAttributesPathAuto, qui n'est peut-être pas celle qu'il fallait regarder...
 
Dernière édition:

Twing83

XLDnaute Junior
Ce n'est pas du tout ce qu'il se passe dans l'archive que tu as postée. C'est même l'inverse.
Du moins d'après ce que j'ai constaté. 😞

J'ai cru constater que le XLSX allait au contraire lire les différents XML pour remplir une feuille dudit XLSX.
Me trompé-je ? 🤔 🤔 🤔

Ou peut-être n'ai-je pas lancé la bonne macro : vu que tu n'as pas dit sur laquelle ça coinçait, je me suis focalisé sur ExtracAttributesPathAuto, qui n'est peut-être pas celle qu'il fallait regarder...
Je suis effectivement très avare en explications, c'est tout moi...
La macro dumps créé un répertoire Sauvegarde à l'emplacement du fichier XLSX.
Dans ce répertoire Sauvegarde, les fichiers *.xml sont copiés et 2 répertoires Auto et Manu sont créés et contiennent les fichiers *.xml du même nom.
Cette macro ne me pose pas de soucis, du moins je le pense.
Deux autres macro sont disponibles, ExtracAttributesPathAuto qui rempli la Feuil2 depuis le répertoire Auto (avec le chemin) et ExtracAttributesFileDialogAuto qui rempli la Feuil2 depuis un FileDIalog. C'est là que le problème se pose...
 

TooFatBoy

XLDnaute Barbatruc
La macro dumps crée un répertoire Sauvegarde à l'emplacement du fichier XLSX.
Oui, j'ai cherché un peu plus et j'ai vu la macro. ;)
Je suis justement en train de la tester, et elle semble fonctionner chez moi aussi, à ceci près qu'elle sauvegarde les fichiers dans les dossiers concernés, mais aussi dans le dossier "sauvegarde"... 🤔
 
Dernière édition:

Twing83

XLDnaute Junior
Pour être très complet, mon projet consiste à traiter une centaine de fichiers xml très volumineux que j'importe dans une vingtaine de feuilles excel le tout dans le but de générer une vingtaine de fichiers xml.
J'ai fait tout mon codage avec fonction FileDialog (plus facile pour les tests au fur et à mesure du code, mais pour automatiser j'aimerai maintenant pointer les répertoires.
 

TooFatBoy

XLDnaute Barbatruc
Bon ben je ne vois pas pourquoi ça ne fonctionne pas chez toi.

Si je puis me permettre... je pense que tu fais une clownerie quelque part, mais sur un truc que c'est tellement improbable qu'il est difficile pour moi de deviner ce que c'est. Si tu vois ce que je veux dire.
 

Twing83

XLDnaute Junior
Par contre et là je te rejoins, si je pointe directement sur le chemin du répertoire XML avec la macro ExtracAttributesPathAuto c'est tout bon. Mais dans mon projet ce répertoire XML correspond à ce que je reçois quotidiennement, l'ensemble des fichiers que je vais générer vont venir compléter un ensemble de script qui me permettra de visualiser et d'exploiter leur contenu, mais j'ai aussi besoin des fichiers d'origine...D'où cette façon de faire un peu étrange je te l'accorde...
 

TooFatBoy

XLDnaute Barbatruc
Par contre et là je te rejoins, si je pointe directement sur le chemin du répertoire XML avec la macro ExtracAttributesPathAuto c'est tout bon.
Tu veux dire pointer vers le dossier "XML" qui le dossier source de la sauvegarde (sauvegarde effectuée par la macro "dumps") ?


Si tu mets le chemin du dossier "XML" dans la cellule A1, ça fonctionne ? Tu arrives à lire les données et remplir le tableau ?
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
699

Statistiques des forums

Discussions
314 486
Messages
2 110 114
Membres
110 670
dernier inscrit
Mangouste