IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Liste des répertoires et fichiers


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 18
    Par défaut Liste des répertoires et fichiers
    Bonjour,

    J'ai vu de nombreuses questions sur le sujet mais je n'ai pas trouvé de réponses concluantes.
    Je cherche à établir un tableau excel qui ferait apparaître l'aborescence d'un dossier et la liste des fichiers de chaque dossier.
    Par exemple:
    - COLONNE A: dossier 1 => fichier 1a, fichier 1b..., dossier 11
    - COLONNE B: dossier 11 => fichier 11a, fichier 11b, dossier 111
    - COLONNE C: dossier 111 =>....
    ...

    Comme ça on obtient le rang en terme de dossier et le contenu de chaque dossier et sous dossier.

    Sauriez-vous comment faire? Je n'y connais malheureusement pas grand chose en macro... ;(

    Merci à vous.
    Julien

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2018
    Messages : 69
    Par défaut
    Essaie ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
     
    Dim ligne
     
    Sub arborescence(file_tbl() As String)
      Application.ScreenUpdating = False
      racine = ChoixDossier()          ' ou un répertoire C:\xxx e.g.
      If racine = "" Then Exit Sub
      Set fs = CreateObject("Scripting.FileSystemObject")
      Set dossier_racine = fs.GetFolder(racine)
      ligne = 3
      Lit_dossier dossier_racine, 1, file_tbl
    End Sub
     
     
    Sub Lit_dossier(ByRef dossier, ByVal niveau, ByRef file_tbl() As String)
       Dim file_nbr As Integer
       file_nbr = 0
       Cells(ligne, 1) = String(4 * (niveau - 1), " ") & "[" & dossier.Path & "]"
       ligne = ligne + 1
       For Each f In dossier.Files
         file_name = f.name
         For i = 1 To Len(file_name)
            If (Right(file_name, i) = ".xls") Or (Right(file_name, i) = ".xlsx") Then
                file_nbr = file_nbr + 1
                ReDim Preserve file_tbl(file_nbr)
                file_tbl(file_nbr - 1) = dossier.Path & "\" & f.name
                Cells(ligne, 1) = file_tbl(file_nbr - 1)
                ligne = ligne + 1
            End If
     
         Next
         If f.Attributes And vbHidden Then Cells(ligne, 5) = "Caché"
     
       Next
       For Each d In dossier.SubFolders
         Lit_dossier d, niveau + 1, file_tbl
       Next
    End Sub
     
     
    Function ChoixDossier()
        If Val(Application.Version) >= 10 Then
           With Application.FileDialog(msoFileDialogFolderPicker)
            .InitialFileName = ActiveWorkbook.Path & "\"
            .Show
            If .SelectedItems.Count > 0 Then
               ChoixDossier = .SelectedItems(1)
            Else
               ChoixDossier = ""
            End If
           End With
         Else
           ChoixDossier = InputBox("Répertoire?")
         End If
    End Function
    Il y auras sans doute des erreurs dues à des variables non définies

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Qq exemples en PJ

    Boisgontier
    Fichiers attachés Fichiers attachés

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2018
    Messages : 69
    Par défaut
    Aaahh!

    Je crois que je t'avais déja piqué ton code boisgontier.

  5. #5
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 18
    Par défaut
    Merci à vous!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD-2007] Liste des noms de fichier d'un répertoire
    Par FabriZio777 dans le forum VBA Word
    Réponses: 1
    Dernier message: 21/08/2009, 20h29
  2. [VBA-E] Liste des répertoires
    Par linda15975 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/03/2006, 09h23
  3. Obtenir la liste des répertoires et le chemin
    Par claralavraie dans le forum Oracle
    Réponses: 2
    Dernier message: 16/02/2006, 18h45
  4. Récupérer la liste des répertoires d'un répertoire
    Par oursblanc dans le forum Langage
    Réponses: 3
    Dernier message: 19/10/2005, 15h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo