Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Recherche de répertoires

M

Mlh

Guest
Bonjours à tous...
J'essai de rechercher, avec une macro, tous les répertoires présents dans le répertoire où se trouve ma feuille Excel
Je connais filesearch pour les fichiers, mais je n'arrive pas à faire l'équivalent avec des répertoires...
Merci d'avance pour votre aide...
 
S

STéphane

Guest
bonjour


je pense qu'il y a peut-être un paramètre qui permet de spécifier le type de fichier, et ainsi de spécifier que le recherche des répertoires

si ce n'est pas le cas, quand ta boucle lit un fichier, utilise la fonction getattr pour savoir si c'est un répertoire ou encore contrôle le résultat de l'expression dir(tonchemin,vbdirectory)<>""

bye
stephane
 
C

chris

Guest
Sous dos on met dir *. pour indiquer qu'il n'y a pas d'extension et cela ramène les réperoires (les fichiers ayant tous ou presque une extension). On doit pouvoir extrapoler.
Chris
 
M

Mlh

Guest
C'est exact...

J'ai trouvé 2 ou 3 exemples de macros traitant du sujet sur le site de Frederic Sigonneau, mais j'ai un peu de mal à en saisir le fonctionnement

Merci pour vos réponses...
 
C

catherine

Guest
MyFile = Dir("C:\WINDOWS\*.INI")
' Appelle de nouveau Dir sans argument pour renvoyer le
' fichier *.INI suivant dans le même dossier.
MyFile = Dir
voici un exemple :
' Affiche les noms dans C:\ représentant des dossiers.
MyPath = "c:\" ' Définit le chemin d'accès.
MyName = Dir(MyPath, vbDirectory) ' Extrait la première entrée.
Do While MyName <> "" ' Commence la boucle.
' Ignore le dossier courant et le dossier
' contenant le dossier courant.
If MyName <> "." And MyName <> ".." Then
' Utilise une comparaison au niveau du bit pour
' vérifier que MyName est un dossier.
If (GetAttr(MyPath & MyName) _
And vbDirectory) = vbDirectory Then
Debug.Print MyName ' Affiche l'entrée uniquement si elle
End If ' représente un dossier.
End If
MyName = Dir ' Extrait l'entrée suivante.
Loop

Catherine
 
C

catherine

Guest
voici un exemple :
' Affiche les noms dans C:\ représentant des dossiers.
MyPath = "c:\" ' Définit le chemin d'accès.
MyName = Dir(MyPath, vbDirectory) ' Extrait la première entrée.
Do While MyName <> "" ' Commence la boucle.
' Ignore le dossier courant et le dossier
' contenant le dossier courant.
If MyName <> "." And MyName <> ".." Then
' Utilise une comparaison au niveau du bit pour
' vérifier que MyName est un dossier.
If (GetAttr(MyPath & MyName) _
And vbDirectory) = vbDirectory Then
Debug.Print MyName ' Affiche l'entrée uniquement si elle
End If ' représente un dossier.
End If
MyName = Dir ' Extrait l'entrée suivante.
Loop

Catherine
 

Discussions similaires

Réponses
15
Affichages
970
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…