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

Résolu
ben13.51 Messages postés 115 Statut Membre -  
Polux31 Messages postés 7219 Statut Membre -
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

  1. Polux31 Messages postés 7219 Statut Membre 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
    1. ben13.51 Messages postés 115 Statut Membre 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
    2. Polux31 Messages postés 7219 Statut Membre 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
    3. ben13.51 Messages postés 115 Statut Membre 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
    4. 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
    5. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Bonjour,

      Colle ton code ici que l'on puisse voir.

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