maciew
Messages postés14Date d'inscriptionjeudi 15 septembre 2005StatutMembreDernière intervention19 octobre 2005
-
22 sept. 2005 à 11:16
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 2006
-
22 sept. 2005 à 16:23
Salut,
Je crois que tout est dit dans le sujet.
Je voudrais récuperer une liste de fichiers d'un emplacement en listant les repertoires et sous les repertoires ainsi que la liste des repertoires.
Actuellement je le fait sous dos et redirige la sortie vers un fichier texte mais ça me met des caractères spéciaux à la place des "é", "ç",... et ça me fait sh*** parce que j'aimerais faire un filelen() dessus via VBA.
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 22 sept. 2005 à 11:49
Bonjour,
Essaie ceci, celà peut peut-être t'aider.Place unCommandButton et une Listbox sur ton UserForm.
Private Sub CommandButton1_Click()
Dim MyName
MyName = Dir("C:\Mes documents\*.txt*", vbNormal)
While MyName <> ""
ListBox1.AddItem MyName
MyName = Dir
Wend
End Sub
jpleroisse
Si une réponse vous convient, cliquez Réponse Acceptée.
maciew
Messages postés14Date d'inscriptionjeudi 15 septembre 2005StatutMembreDernière intervention19 octobre 2005 22 sept. 2005 à 12:13
euh.....
"Essaie ceci, celà peut peut-être t'aider.Place unCommandButton et une Listbox sur ton UserForm"
je suis débutant et je t'avoue que je ne comprens pas tellement cette phrase.
quand tu écris :
"MyName = Dir("C:\Mes documents\*.txt*", vbNormal)"
ce que je voudrais en fait c'est lister TOUT les fichiers des répertoires et sous répertoires de "C:\Mes documents" par exemple.
Comme un "dir /s c:\mes documents"
Je pense que je vais continuer avec ce bon vieux dos....
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 22 sept. 2005 à 13:20
Je connais rien à VBA.
Sous VB6, même problème: le dir ne liste que ce qu'il y a à la racine du répertoire.
Sous VB6, il faut parcourir l'arboresence et faire un dir dans chaque répertoire.
A chaque arrivée dans un répertoire, tu fais un Dir sur les dossiers. Tu stockes tous les chemin de ces dossier dans un tableau (redimenssionable de préférence).
Tu liste les fichiers qui t'intéresse.
Tu passes au répertoire suivant dans ton tableau.
L'arboresence est parcouru quand tu est arrivé au dernier chemin de ton tableau qui s'agrandit en permanence.
Bonne chance si tu es débutant !
(Redim preserve sous VB6, commmande utile pour les tableaux)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Private Sub RecurseDir(path As String)
Dim i As Long
Erase F
FCount = 0
ListDir path
For i = 1 To FCount
Debug.Print F(i)
Next
End Sub
Private Sub ListDir(path As String)
Dim D() As String
Dim tmp As String
Dim DCount As Long
Dim i As Long
DCount = 0
tmp = Dir(path, vbDirectory)
While tmp <> ""
If tmp <> "." And tmp <> ".." Then
If GetFileAttributes(path & tmp) And FILE_ATTRIBUTE_DIRECTORY Then
DCount = DCount + 1
ReDim Preserve D(DCount)
D(DCount) = path & tmp & ""
Else
FCount = FCount + 1
ReDim Preserve F(FCount)
F(FCount) = path & tmp
End If
End If
tmp = Dir
Wend
For i = 1 To DCount
ListDir (D(i))
Next
End Sub
Appelle la fonction RecurseDir() en lui donnant en argument le chemin du répertoire à lister et tu obtiens la liste des fichiers dans le tableau F()