[VBA Excel] Liste les dossier d'un répertoire

Résolu
ben13.51 Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   -  
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   - 4 oct. 2010 à 13:08
Bonjour,

je souhaite établir dans une feuille Excel la liste des dossiers d'un répertoire dont je précise l'adresse dans une Input Box...

N'étant pas très familier avec l'utilisation des Objets sous VBA quelqu'un peut-il m'aiguiller sur la façon de procéder pour arriver à mes fins...

Merci d'avance

Cordialement

Ben



2 réponses

Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Option Explicit  

Private oCollec As Collection  

Public Sub Macro1()  
Dim chemin As String  

    chemin = InputBox("Entrez le chemin du répertoire", "Répertoire")  
      
    Set oCollec = New Collection  
    SearchAllFilesInFolders (chemin)  
    AfficheListe  
    Set oCollec = Nothing  
      
End Sub  


Private Sub SearchAllFilesInFolders(ByVal chemin As String)  

Dim fso As FileSystemObject  
Dim dossier As Folder  

    Set fso = New FileSystemObject  
    Set dossier = fso.GetFolder(chemin)  
    Call scanFolder(dossier)  

End Sub  

Private Sub scanFolder(ByVal dossier As Folder)  
Dim sousdossier As Folder  
Dim fichier As File  

    For Each fichier In dossier.Files  
        oCollec.Add fichier  
    Next  

    For Each sousdossier In dossier.SubFolders  
        Call scanFolder(sousdossier)  
    Next  

End Sub  

Private Sub AfficheListe()  
Dim i As Long  
Dim lig As Long  
Dim ws As Worksheet  

    Set ws = ThisWorkbook.Worksheets(1)  
    lig = 2  
      
    With ws  
        For i = 1 To oCollec.Count  
            .Range("A" & lig).Value = oCollec(i)  
            lig = lig + 1  
        Next i  
    End With  
End Sub


;o)
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
10
ben13.51 Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   7
 
Merci beaucoup pour votre réponse, je pense que je touche au but.

Cependant lors du premier essai j'ai un message d'erreur au niveau de la Private Sub ScanFolder.

Il semble que le Type de variable "as Folder" ne soit pas reconnu car j'ai le message suivant :
Erreur de compilation : Type défini par l'utilisateur non défini.

Que dois-je faire pour corriger ce problème...

Encore merci pour votre aide

Cordialement

Ben
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Désolé, j'ai oublié de préciser qu'il faut activer la référence Microsoft Scripting Runtime dans Outils > Références ...

;o)
0
ben13.51 Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   7
 
Merci Beaucoup!!!!

Effectivement ça change tout.

Et j'ai pu faire ce que je voulais.

Merci pour le temps que vous m'avez consacré!

Cordialement

Ben
0
dircom
 
Bonjour,
J'arrête pas de bugger sur la commande:
oCollec.Add fichier
avec pour message : erreur d'éxécution 424, objet requis.
Pouvez vous m'aider ?
merci
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Colle ton code ici que l'on puisse voir.

Parce que juste avec ça, on ne peut rien dire.
0