Conseil souvegarder arbre treeview

  • Initiateur de la discussion Initiateur de la discussion Creepy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Creepy

XLDnaute Accro
Bonjour à toutes & à tous,

J'ai une treeview avec une arborescence qui peut descendre à 6 niveaux maximum, Cette treeview représente des repertoires et des fichiers.

Pour être plus clair, j'ai mis un fichier en exemple.

Je souhaiterais garder cette arborescence pour la recharger lors de la réouverture de la userform.

Comment sauvegarderiez-vous cette structure de treeview ?

Avez-vous déjà fait cette manipulation ? Quelle type de fichier utiliser pour sauvgarder l'arborescence ? Dans une Base de données ? dans un fichier XML ? autement ?

En faites je ne veux pas reproduire cette structure sur mon disque dur, car il y a tellement de fichiers et de repertoires que l'initialisation de la treeview est super longue.

Je stocke tous les fichiers dans un repertoires "en brut" et en fonction de ce que l'utilisateur va cliquer, je vais chercher et ouvrir le fichier.

Je virtualise la hierarchie des répertoires en faites (Wahouuu ca claque dit comme ca !! 😀 ).

Merci de vos avis

Creepy
 

Pièces jointes

Re : Conseil souvegarder arbre treeview

bonjour Creepy

tu peux tester et adapter cette macro qui affiche l'arborescence du TreeView dans la feuille de calcul (Je n'ai pas regardé ton fichier joint)

Code:
Option Explicit

Dim Ligne As Integer
 
Private Sub commandButton2_Click()
    'source :
    'http://www.vb-helper.com/howto_treeview_load_edit_save.html
    If treeView1.Nodes.Count > 0 Then _
        saveNode treeView1.Nodes(1), 1
End Sub
 
Private Sub saveNode(ByVal n As Node, ByVal Level As Integer)
    
    If n Is Nothing Then Exit Sub
    
    Ligne = Ligne + 1
    
    Cells(Ligne, Level) = n.Text
    saveNode n.Child, Level + 1
    saveNode n.Next, Level
End Sub


Bonne journée
MichelXld
 
Re : Conseil souvegarder arbre treeview

Salut
Personnellement je garderais cette architecture, mais en repoussant l'affichage des fichiers à la colonne 7, quel que soit le niveau d'arborescence auquel ils se situent.
Autrement dit je teste au niveau 1 pour chercher le premier dossier, je vais voir à la ligne en dessous (colonne 7) s'il y a un fichier. Si j'en trouve un, je lance une routine qui boucle tant qu'elle ne trouve pas une ligne vide.
Ensuite, on teste niveau 2 (il suffit alors de se décaler d'une colonne) selon le même principe etc.

L'avantage c'est que cette organisation nous permet d'écrire facilement une procédure récursive, voire une simple boucle While.
Le plus délicat sera de gérer les offsets de lignes, à adapter en fonction du nombre de sous-dossiers et de fichiers trouvés. Sans tester, je dirais qu'on pourrait simplement utiliser une variable Cel dont on ajusterait l'offset pour qu'il pointe à la ligne suivante dès qu'on trouve un nouvel élément : sous-dossier ou fichier.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour