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... :)

patricktoulon

XLDnaute Barbatruc
re
bonsoir @TooFatBoy
peut être je sais pas pour 4/5 xml avec 3 balises dedans et 46 messages je me suis dis que ça paraissait complexe mais non

  1. DIR renvoie le non du fichier pas le chemin complet
  2. j'ai ajouté le validateonparse au cas ou il y aurait des petites erreurs de codage dans les xml (toujours!!) on est tranquille comme ça
  3. certaines config n'acceptent pas la lecture directe d'un attribut si il n'est pas présent il déclenche une erreur alors avec le test isnull on est tranquille
  4. je ne cherche pas un élément ou un autre je cherche un élément avec un attibut
Attention à l'encodage des fichiers surtout en xml
là ca a lair bon mais l'introduction " encoding="ISO-8859-1"" n'est pas un gage de verité
 

TooFatBoy

XLDnaute Barbatruc
Le principal problème dans le classeur fournit, ça semblait surtout être le chemin qui manquait. ;)

Après, c'est sûr que si on veut un truc "parfait ou presque", on peut sûrement peaufiner le code, mais j'avoue que je ne me suis penché que sur le problème de non lecture des fichiers.
 

TooFatBoy

XLDnaute Barbatruc
Dommage qu'il faille attendre le poste #44 pour voir un embryon de code !
Si tu avais compris le problème dès #1, il ne fallait pas hésiter à répondre et donner ta solution sous la forme que tu voulais.
Toute aide est bienvenue, je crois. 😉


En principe je ne télécharge les pièces jointe que si je pense pouvoir aider le demandeur !
Et donc là, tu n'as visiblement rien téléchargé.
C'est ton choix, et respectable il est.👍
 

patricktoulon

XLDnaute Barbatruc
re
je dirais même que vu la complexité 😂des xmls ,travailler avec l'object xmldocument est superflu
pour rappel les xmls se présentent comme suit
XML:
<?xml version="1.0" encoding="ISO-8859-1" ?>

 <plan>
    
   <recordingContext sessionId="3106" recordType="Auto">
        
     <epIdentifier planId="3104">
        
     </epIdentifier>
    
   </recordingContext>
</plan>
 

Discussions similaires

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

Statistiques des forums

Discussions
314 486
Messages
2 110 107
Membres
110 666
dernier inscrit
Yaya123