Lister l'arboréssance d'un dossier

  • Initiateur de la discussion Initiateur de la discussion Thomas
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

Thomas

Guest
Bonjour le forum,

apres avoir fait un tour dans la base, je n'ai pas trouvé de poste à ce sujet.

est il possible en VBA de lister le contenu d'un dossier? je sais que par extention cela est possible mais ce que je souhaite faire c'est de lister uniquement le non des dossiers et sous dossiers.

D'avance merci

(sinon pour la recherche de fichier '*.xls' j'ai toujours vu une recherche à l'endroit ou ce trouve le fichier contenant la macro!! est il possible d'utiliser une API afin d'utiliser l'explorateur de fichier windows?)
 
Bonjour Thomas,

J'avais trouvé ceci il y a longtemps :

=> Lien supprimé

Bon Samedi
@+Thierry

Pour ton PS regarde cette réponse de Ti

Sub ouvrir()
Dim Fichier
Fichier = Application.GetOpenFileName('Tous les fichiers (*.*),*.*')
If Fichier <> False Then ActiveWorkbook.FollowHyperlink Fichier
End Sub

Fil => Lien supprimé
 
bonjour,

moi j'ai eu ça mais je sais plus o&ugrave; :

Sub liste_répertoires(ByVal mypath As String)
' Affiche les noms dans mypath représentant des dossiers.
myname = Dir(mypath, vbDirectory)&nbsp; &nbsp;
' Extrait la première entrée.
Do While myname <> ''&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' Commence la boucle.
&nbsp; &nbsp;
' Ignore le dossier courant et le dossier
&nbsp; &nbsp;
' contenant le dossier courant.
&nbsp; &nbsp;
If myname <> ':' And myname <> '::' And myname <> '.' And myname <> '..' Then
&nbsp; &nbsp; &nbsp; &nbsp;
' Utilise une comparaison au niveau du bit pour
&nbsp; &nbsp; &nbsp; &nbsp;
' vérifier que MyName est un dossier.
&nbsp; &nbsp; &nbsp; &nbsp;
If (GetAttr(mypath & myname) And vbDirectory) = vbDirectory Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Call ajoute(myname & Application.PathSeparator, mypath, 'répertoires')
&nbsp; &nbsp; &nbsp; &nbsp;
End If&nbsp; &nbsp; ' représente un dossier.
&nbsp; &nbsp;
End If
&nbsp; &nbsp; myname = Dir&nbsp; &nbsp;
' Extrait l'entrée suivante.
Loop
End Sub

La partie en itallique est une procédure que je lance à chaque nouveau répertoire et qui est à personnaliser.
 
bonjour,

je ne sais pas de quel code on parle, voici un exemple d'adaptation pour lister le contenu d'un répertoire dans la colonne A du classeur ouvert (la partie en itallique a été adaptée) :

Sub liste_répertoires(ByVal mypath As String)
Dim myname As String
' Affiche les noms dans mypath représentant des dossiers.
myname = Dir(mypath, vbDirectory)&nbsp; &nbsp;
' Extrait la première entrée.
Do While myname <> ''&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' Commence la boucle.
&nbsp; &nbsp;
' Ignore le dossier courant et le dossier
&nbsp; &nbsp;
' contenant le dossier courant.
&nbsp; &nbsp;
If myname <> ':' And myname <> '::' And myname <> '.' And myname <> '..' Then
&nbsp; &nbsp; &nbsp; &nbsp;
' Utilise une comparaison au niveau du bit pour
&nbsp; &nbsp; &nbsp; &nbsp;
' vérifier que MyName est un dossier.
&nbsp; &nbsp; &nbsp; &nbsp;
If (GetAttr(mypath & myname) And vbDirectory) = vbDirectory Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
'traite un dossier
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cells(ActiveCell.Row + 1, 1).Select
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ActiveCell.Value = mypath & Application.PathSeparator & myname
&nbsp; &nbsp; &nbsp; &nbsp;
End If&nbsp; &nbsp; ' représente un dossier.
&nbsp; &nbsp;
End If
&nbsp; &nbsp; myname = Dir&nbsp; &nbsp;
' Extrait l'entrée suivante.
Loop
End Sub


Appel de la procédure :

Sub liste_repertoiresC()
&nbsp; Range('a1').Select
&nbsp;
Call liste_répertoires('c:')
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
18
Affichages
487
Réponses
37
Affichages
1 K
Réponses
12
Affichages
518
D
  • Question Question
Réponses
5
Affichages
244
Didierpasdoué
D
Retour