IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Lister les fichiers d'une arborescence correspondant à certains critères


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 863
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 863
    Points : 583
    Points
    583
    Par défaut Lister les fichiers d'une arborescence correspondant à certains critères
    Bonsoir,

    Pour constituer une liste de fichiers que j'affiche dans la liste déroulante d'un Userform, j'utilise ce code http://excel.developpez.com/faq/?pag...riptingRuntime qui fonctionne très bien.

    J'y ai ajouté une sorte de filtre qui me permet de ne retenir que les fichiers dont le nom correspond à certains critères.

    Mon problème c'est que la procédure dure assez longtemps sur un réseau (quelques minutes), alors que ces fichiers ne se trouvent que dans certains dossiers (la liste n'est pas fixe). Comment imaginer un filtre pour que cette procédure ne parcoure pas tous les dossiers mais seulement ceux susceptibles de contenir les fichiers recherchés?

    Par exemple dans tous les dossiers dont le chemin est de la forme T:\AAAA\BBBB\???\CCCC\DDDD , "???" étant le seul dossier (de 3 caractères) dont le nom peut être variable

    Merci pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Bonjour,

    utiliser une librairie externe comme FSO n'apporte pas grand chose si ce n'est effectivement
    un ralentissement de la procédure, le VBA disposant en interne de tout le nécessaire !

    Récemment via FSO une recherche sur un disque local avec des sous-répertoires prenait presque 2'20'',
    en pur VBA elle n'a besoin d'à peine 15 secondes … Je n'ose imaginer alors sur un disque réseau !

    La procédure doit commencer par chercher les dossiers de 3 caractères dans T:\AAAA\BBBB\
    puis pour chacun d'entre eux rechercher dans T:\AAAA\BBBB\???\CCCC\DDDD …

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 863
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 863
    Points : 583
    Points
    583
    Par défaut
    merci mais tu aurais un exemple de code pour lister les dossiers possibles sans passer par FSO?

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Il s'agit de la fonction Dir interne au VBA, exemples dans l'aide intégrée …

    Ceci s'adressait aussi au code actuel avec FSO :

    Citation Envoyé par Marc-L Voir le message
    La procédure doit commencer par chercher les dossiers de 3 caractères dans T:\AAAA\BBBB\
    puis pour chacun d'entre eux rechercher dans T:\AAAA\BBBB\???\CCCC\DDDD …

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 863
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 863
    Points : 583
    Points
    583
    Par défaut
    Je posais la question parce que justement je ne maîtrise pas le fso ... j'écrivais
    Comment imaginer un filtre pour que cette procédure ne parcoure pas tous les dossiers mais seulement ceux susceptibles de contenir les fichiers recherchés
    ce qui revenait à écrire
    La procédure doit commencer par chercher les dossiers de 3 caractères dans T:\AAAA\BBBB\
    puis pour chacun d'entre eux rechercher dans T:\AAAA\BBBB\???\CCCC\DDDD …
    merci

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    En dehors de la véloce fonction Dir dont l'exemple sur les dossiers est plutôt une bonne base,
    voir le tutoriel - principalement axé sur FSO - Manipulation des fichiers en VBA
    dans lequel est aussi abordé l'objet FileSearch, disparu depuis la version 2007 (lent aussi) …

    Sinon dans ton lien de la FAQ Excel, en remontant il y a aussi un exemple pour boucler sur les fichiers d'un répertoire

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 09/07/2009, 11h35
  2. Lister les fichiers d'une arborescence
    Par durenthil dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 12/10/2008, 23h46
  3. Lister les fichiers sur une machine réseau
    Par WerKa dans le forum Général Java
    Réponses: 2
    Dernier message: 12/05/2008, 14h24
  4. Réponses: 1
    Dernier message: 06/12/2007, 16h50
  5. Lister les fichiers antérieurs à une date X
    Par bragon dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 05/04/2007, 19h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo