Balayer tous les .xml d'un dossier pour synthétiser dans un fichier .xls
fabien180281
Messages postés9Date d'inscriptionmardi 8 mai 2012StatutMembreDernière intervention 9 mai 2012
-
8 mai 2012 à 15:37
4u4me4us
Messages postés780Date d'inscriptionlundi 22 janvier 2007StatutMembreDernière intervention30 octobre 2013
-
9 mai 2012 à 09:33
Bonjour,
Je fais mes 1er pas sur Visual Basic et je me rend compte de tout le potentiel mais je suis vite bloqué par ce qui peux sembler un détail pour d'autres.
Voilà mon problème :
J'aimerai ouvrir tous les .xml d'un dossier puis copier certaines valeurs et les coller afin de faire une synthèse.
Pour le moment j'ai réussit à faire ça fichier par fichier mais j'aimerai automatiser ça en balayant tous les fichiers du dossier. Après avoir passé pas mal de temps sur les forums je pense devoir utiliser "For Each Next" mais je n'y arrive pas.
Voilà mon code actuel:
Sub Extraction()
'Importer
ChDir "C:\Final"
NomFichierXML = Application.GetOpenFilename("Fichier XML (*.xml),*.xml", , "Choisir le fichier")
Set wk2 = Workbooks.OpenXML(Filename:=NomFichierXML, LoadOption:=xlXmlLoadImportToList)
4u4me4us
Messages postés780Date d'inscriptionlundi 22 janvier 2007StatutMembreDernière intervention30 octobre 20133 8 mai 2012 à 16:11
Je pense à un truc du style
Dim fso As New FileSystemObject
Dim fld As Folder
Dim fil As File
Set fld = fso.GetFolder("C:\le dossier qui ou il y a tout les fichiers)
For Each fil In fld.Files
' ...ton code...
'fil.Name contiendra les nom des fichier
'fil.path pour avoir le chemin
' ...ton code...
Next
Set fil = Nothing
Set fld = Nothing
Set fso = Nothing
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 8 mai 2012 à 16:23
Bonjour,
Tu n'es pas en VB6 (catégorie de la question), mais en VBA, je déplace, prends note de la catégorie.
Sinon, intéresses-toi à la commande Dir$, et évites autant que possible FSO (FileSystemObject).
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Mon site
fabien180281
Messages postés9Date d'inscriptionmardi 8 mai 2012StatutMembreDernière intervention 9 mai 2012 8 mai 2012 à 17:28
Merci de vos réponses si rapide et désolé d'avoir mal placé mon message.
Alors j'ai essayé avec la proposition de 4u4me4us mais il me met qu'il y a une "erreur de compilation" et que le "type défini par l'utilisateur non défini". J'ai peut-être loupé quelque chose.
J'ai aussi creusé l'idée de NHenry mais je n'y arrive pas.
Je suis ultra-débutant, désolé les gars.
Merci de votre aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Mon site
fabien180281
Messages postés9Date d'inscriptionmardi 8 mai 2012StatutMembreDernière intervention 9 mai 2012 8 mai 2012 à 17:42
Ce code permet de compter le nombre de fichier mais je ne vois pas comment l'adapter à ce que je cherche. Que penseez-vous de la fonction For Each Next? Elle vous semble judicieuse?
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 8 mai 2012 à 17:48
Bonjour,
As-tu essayé le code ?
As-tu regardé sur la feuille Excel ce qui était apparu ?
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Mon site
fabien180281
Messages postés9Date d'inscriptionmardi 8 mai 2012StatutMembreDernière intervention 9 mai 2012 8 mai 2012 à 17:56
Il est effectivement apparu la fenêtre avec le nombre de fichier dans le dossier et dans la feuille excel il y a toutes les adresses des fichiers contenus dans le dossier.
OK.
Après je dois faire en sorte de prendre ces adresses pour collecter les données j'imagine...
Je vais voir comment faire.
fabien180281
Messages postés9Date d'inscriptionmardi 8 mai 2012StatutMembreDernière intervention 9 mai 2012 8 mai 2012 à 17:59
"Obligée" oui et non car je prend ca de mon propre chef. C'est pour éviter de galèrer toutes les semaines à traiter une bonne 50aine de fichiers, c'est inintéressant au possible et il y a des sources d'erreur.
fabien180281
Messages postés9Date d'inscriptionmardi 8 mai 2012StatutMembreDernière intervention 9 mai 2012 9 mai 2012 à 00:12
Après de nombreux essais je n'arrive pas a exploiter les adresses obtenues dans la colonne A. J'ai essayé via des Macros et aussi en direct par des formules sur Excel mais rien n'y fait.
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 9 mai 2012 à 08:12
Bonjour,
Il y a quelque temps j'avais répondu à une question concernant la recherche defichiers xls dans un dossier, mais je pense que cela peut convenir en changeant l'extension de recherche:
fabien180281
Messages postés9Date d'inscriptionmardi 8 mai 2012StatutMembreDernière intervention 9 mai 2012 9 mai 2012 à 08:54
OK merci Le Pivert il y a matière à travailler là dessus mais pour ma part je cherche à lire certaines cellules (dont j'ai les adresses fixes) dans des fichiers .xml aux noms variables contenus dans un dossier.