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

Résolu/Fermé
ben13.51 Messages postés 112 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 11 janvier 2012 - Modifié par ben13.51 le 14/06/2010 à 09:51
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 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



A voir également:

2 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
Modifié par Polux31 le 14/06/2010 à 10:24
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 mercredi 18 mars 2009 Statut Membre Dernière intervention 11 janvier 2012 7
14 juin 2010 à 12:12
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 mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
14 juin 2010 à 13:03
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 mercredi 18 mars 2009 Statut Membre Dernière intervention 11 janvier 2012 7
14 juin 2010 à 14:29
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
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 mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
4 oct. 2010 à 13:08
Bonjour,

Colle ton code ici que l'on puisse voir.

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