[VBA] Fonction DIR : ne lister que les dossiers (pas les fichiers)

F22Raptor

XLDnaute Impliqué
Hello,
Je veux lister les dossiers d'un répertoire (je les charge dans une variable tableau).
J'utilise donc
MesRepertoires = Dir(Chemin, vbDirectory)
MesRepertoires = Dir

Ca marche pas mal (avec ma boucle qui passe MesRepertoires un par un), sauf que ça me prend aussi les fichiers présents dans le dossier (Chemin) spécifié.

Comment dire If MesRepertoires <> fichier Then "et là j'ajoute dans ma variable normalement"

Comment déterminer si un élément de DIR est un fichier ou un dossier ?
Peut-être en testant la taille de l'élément en ko ? Ou un attribut de l'élément ?


Thx guys !:)
 
Dernière édition:

F22Raptor

XLDnaute Impliqué
Re : [VBA] Fonction DIR : ne lister que les dossiers (pas les fichiers)

c'est bon !
Par GetAttr, un répertoire a la valeur 16 ou 48

If MesRepertoires <> ".." And (GetAttr(Repertoire & MesRepertoires) = 16 Or GetAttr(Repertoire & MesRepertoires) = 48) Then .....
 

pierrejean

XLDnaute Barbatruc
Re : [VBA] Fonction DIR : ne lister que les dossiers (pas les fichiers)

Bonjour F22Raptor

Grace a la magie de F1

Code:
' Affiche les noms dans C:\ représentant des dossiers.MyPath = "c:\"    ' Définit le chemin d'accès.MyName = [B]Dir([/B]MyPath[B],[/B] vbDirectory[B])    [/B]' 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 = [B]Dir[/B]    ' Extrait l'entrée suivante.Loop
 

Discussions similaires

Réponses
9
Affichages
473

Statistiques des forums

Discussions
314 450
Messages
2 109 730
Membres
110 553
dernier inscrit
loic55