Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recherche de sous-répertoire

5 réponses
Avatar
HD
Bonjour,

A partir d'un répertoire racine je voudrais rechercher tout les
sous-répertoires (par exemple) "2005\Images"... Comment peut on procéder ?

L' Application.filesearch ne prend pas en compte les répertoires et encore
moins un chemin tel "2005\images"...

En passant par Dir l'on obtient les sous-répertoires direct mais pas les
sous-répertoires suivants et l'on ne peut obtenir l'ensemble des
sous-répertoires "2005\images" sans passer par un gros tableaux qui
contiendrait tout les sous-répertoires pour ensuite en faire le tri...

En fait il me faudrait quelque chose du type :
MonTableau = MesDir("C:\MonRep\*\2005\img")

Avez vous une idée pour réaliser celà de manière à ce que la recherche soit
rapide (car le répertoire MonRep peut contenir un très grand nombre de
sous-répertoires) et efficace ?

Merci d'avance pour votre aide
--
@+
HD

5 réponses

Avatar
papou
Bonjour
Pas sûr d'avoir tout bien saisi !
Une façon de lister dans la feuille active les noms des sous répertoires
d'un chemin de départ :
Dim RepDepart$
RepDepart = "C:Documents and SettingspapouMes documentsExcelVBA"
Dim fso, rep, sousrep
Set fso = CreateObject("Scripting.FileSystemObject")
Set rep = fso.GetFolder(RepDepart)
i = 0
For Each sousrep In rep.SubFolders
i = i + 1
Cells(i, 1) = sousrep.Name
Next sousrep
Set sousrep = Nothing
Set rep = Nothing
Set fso = Nothing

Cordialement
Pascal

"HD" a écrit dans le message de news:
e24sjm$2h1c$
Bonjour,

A partir d'un répertoire racine je voudrais rechercher tout les
sous-répertoires (par exemple) "2005Images"... Comment peut on procéder ?

L' Application.filesearch ne prend pas en compte les répertoires et encore
moins un chemin tel "2005images"...

En passant par Dir l'on obtient les sous-répertoires direct mais pas les
sous-répertoires suivants et l'on ne peut obtenir l'ensemble des
sous-répertoires "2005images" sans passer par un gros tableaux qui
contiendrait tout les sous-répertoires pour ensuite en faire le tri...

En fait il me faudrait quelque chose du type :
MonTableau = MesDir("C:MonRep*2005img")

Avez vous une idée pour réaliser celà de manière à ce que la recherche
soit
rapide (car le répertoire MonRep peut contenir un très grand nombre de
sous-répertoires) et efficace ?

Merci d'avance pour votre aide
--
@+
HD




Avatar
papou
Pas bon ! (M'enfin ??)
J'ai oublié l'aspect récursif...
Entre-temps j'ai retrouvé chez Frédéric ce qui pourrait bien te convenir :
http://perso.wanadoo.fr/frederic.sigonneau/code/Fichiers/ListeDossiersSousDossiers.txt

Cordialement
Pascal
"papou" <cestpasbon@çanonplus> a écrit dans le message de news:

Bonjour
Pas sûr d'avoir tout bien saisi !
Une façon de lister dans la feuille active les noms des sous répertoires
d'un chemin de départ :
Dim RepDepart$
RepDepart = "C:Documents and SettingspapouMes documentsExcelVBA"
Dim fso, rep, sousrep
Set fso = CreateObject("Scripting.FileSystemObject")
Set rep = fso.GetFolder(RepDepart)
i = 0
For Each sousrep In rep.SubFolders
i = i + 1
Cells(i, 1) = sousrep.Name
Next sousrep
Set sousrep = Nothing
Set rep = Nothing
Set fso = Nothing

Cordialement
Pascal

"HD" a écrit dans le message de news:
e24sjm$2h1c$
Bonjour,

A partir d'un répertoire racine je voudrais rechercher tout les
sous-répertoires (par exemple) "2005Images"... Comment peut on procéder
?

L' Application.filesearch ne prend pas en compte les répertoires et
encore
moins un chemin tel "2005images"...

En passant par Dir l'on obtient les sous-répertoires direct mais pas les
sous-répertoires suivants et l'on ne peut obtenir l'ensemble des
sous-répertoires "2005images" sans passer par un gros tableaux qui
contiendrait tout les sous-répertoires pour ensuite en faire le tri...

En fait il me faudrait quelque chose du type :
MonTableau = MesDir("C:MonRep*2005img")

Avez vous une idée pour réaliser celà de manière à ce que la recherche
soit
rapide (car le répertoire MonRep peut contenir un très grand nombre de
sous-répertoires) et efficace ?

Merci d'avance pour votre aide
--
@+
HD








Avatar
HD
J'ai oublié l'aspect récursif...
Entre-temps j'ai retrouvé chez Frédéric ce qui pourrait bien te convenir :

http://perso.wanadoo.fr/frederic.sigonneau/code/Fichiers/ListeDossiersSousDo

ssiers.txt

Bonjour Papou,

La fonction de Frédéric est intéressante mais le problème est que je dispose
de répertoire dont certains ont un très grand nombre de sous-répertoires
(peut être plus de 65536...) et dans ce cas ça risque d'être très long et ça
risque d'être limité par le nombre maximum de ligne (même si il est vrai que
l'on peut jouer ensuite avec les colonnes)... Le principal problème vient du
fait que l'on obtient tout les sous-répertoires d'un répertoire racine n'y
aurait il pas une macro permettant de n'obtenir que les sous-répertoires
d'un répertoire racine comportant dans leur chemin "2005images" ?

--
@+
HD

Avatar
papou
Ok
Dans ces conditions, en reprenant l'exemple de Frédéric, tu fais un test sur
la valeur Path :
If flder.Path Like "*2005Images*" Then

Ou quelque chose dans ce goût-là à adapter.

Cordialement
Pascal

"HD" a écrit dans le message de news:
e2538n$2kg3$
J'ai oublié l'aspect récursif...
Entre-temps j'ai retrouvé chez Frédéric ce qui pourrait bien te convenir
:

http://perso.wanadoo.fr/frederic.sigonneau/code/Fichiers/ListeDossiersSousDo

ssiers.txt

Bonjour Papou,

La fonction de Frédéric est intéressante mais le problème est que je
dispose
de répertoire dont certains ont un très grand nombre de sous-répertoires
(peut être plus de 65536...) et dans ce cas ça risque d'être très long et
ça
risque d'être limité par le nombre maximum de ligne (même si il est vrai
que
l'on peut jouer ensuite avec les colonnes)... Le principal problème vient
du
fait que l'on obtient tout les sous-répertoires d'un répertoire racine n'y
aurait il pas une macro permettant de n'obtenir que les sous-répertoires
d'un répertoire racine comportant dans leur chemin "2005images" ?

--
@+
HD





Avatar
HD
Un grand MERCI à toi Papou !!! C'est bon ça roule !!!

--
@+
HD