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 :

Arborescence d'un répertoire dans un TreeView et liste des fichiers dans un ListBox [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    841
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 841
    Par défaut Arborescence d'un répertoire dans un TreeView et liste des fichiers dans un ListBox
    Bonjour,

    En utilisant des bouts de codes piochés dans diverses discussions dans ce forum, j'ai créé un Userform qui contient un Treeview et un ListBox.

    Pas de soucis pour le Treeview.

    Je me heurte à un petit problème que je n'arrive à résoudre lorsque je clic sur un nœud pour lister dans la ListBox les fichiers contenus dans le répertoire.

    Cela ne doit pas être compliqué, mais je n'arrive pas à formuler le code (voir fichier joint).



    Pourriez me donner un petit coup de pouce svp.

    Merci d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    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,

    cf PJ

    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
     
    Dim tw As MSComctlLib.TreeView, fs
    Private Sub UserForm_Initialize()
      pere = ChoixDossier   ' ou "C:\xxxxxx"
      If pere = "C:\" Then Stop
      Set tw = Me.MonArbre
      p = InStrRev(pere, "\"): tmp = Mid(pere, p + 1)
      tw.Nodes.Add(, , "NoeudMat" & pere, tmp).Expanded = True  ' Racine arbre
      Set fs = CreateObject("Scripting.FileSystemObject")
      Set dossier_racine = fs.getfolder(pere)
      Lit_dossier dossier_racine, 1
    End Sub
     
    Sub Lit_dossier(ByRef dossier, ByVal niv)
        pere = dossier.Path
        For Each d In dossier.SubFolders
          fils = d.Path
          p = InStrRev(fils, "\"):   tmp = Mid(fils, p + 1)
          tw.Nodes.Add("NoeudMat" & pere, tvwChild, "NoeudMat" & d.Path, tmp).Expanded = True
          Lit_dossier d, niv + 1
        Next
    End Sub
     
    Private Sub MonArbre_NodeClick(ByVal Node As MSComctlLib.Node)
      If Left(Node.Key, 8) = "NoeudMat" Then
        Me.Textbox1 = Mid(Node.Key, 9)
        rép = Me.Textbox1
          Me.ListBox1.Clear
          nf = Dir(rép & "\*.*")
          n = 0
          Do While nf <> ""
            Me.ListBox1.AddItem nf
            Me.ListBox1.List(n, 1) = rép
            n = n + 1
            nf = Dir
          Loop
          Me.Textbox2 = n
      End If
    End Sub
    Boisgontier
    Fichiers attachés Fichiers attachés

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    841
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 841
    Par défaut
    Bonjour et bon dimanche.

    Merci pour votre réponse, toujours très efficace.

    Cela résout mon problème.

    Je me permets une question complémentaire : comment changer la couleur de fond du TreeView ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    841
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 841
    Par défaut
    Bonsoir,

    J'ai trouvé sur un un autre site lle code qui convient pour changer la couleur de fond d'un TreeView.

    Le seul inconvénient le fond reste blanc devant chaque nœud.

    Comment corriger ce petit problème ?

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

Discussions similaires

  1. [AC-2010] Récupérer dans une table la liste des fichiers contenus dans un répertoire
    Par possible924 dans le forum VBA Access
    Réponses: 6
    Dernier message: 22/02/2013, 22h00
  2. [Batch] lecture de la liste des fichiers dans un rép
    Par radahm dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 06/07/2012, 23h28
  3. Réponses: 12
    Dernier message: 11/05/2012, 11h17
  4. [c#] lister des fichiers dans une zone de liste !
    Par vto59 dans le forum Windows Mobile
    Réponses: 1
    Dernier message: 14/01/2010, 14h51
  5. [XL-2003] Liste des fichiers dans un répertoire
    Par toukii dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/05/2009, 20h09

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