Lister l'arboréssance d'un dossier

  • Initiateur de la discussion Thomas
  • Date de début
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?)
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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é
 

Sylvain

XLDnaute Occasionnel
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.
 

Sylvain

XLDnaute Occasionnel
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
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 017
Messages
2 104 584
Membres
109 084
dernier inscrit
mizab