Menu déroulant (ou vertical/horizontal) en fonction de la structure d'un répertoire

erics83

XLDnaute Impliqué
Bonjour,

J'ai lu avec un très intérêt les tutos de Boisgontier (merci JB ;))sur les menus déroulants.

Pensez-vous possible la création d'un menu déroulant en fonction de la structure d'un répertoire ?

J'ai pensé à utiliser la fonction "DIR" me permettant de lister le contenu d'un répertoire, cela fonctionne, mais ensuite je n'arrive pas à l'utiliser pour la mettre sous forme de menus....

L'idée étant d'avoir une lecture plus rapide : j'ai de nombreux fichiers (que je ne range pas toujours bien...) et donc, cliquer sur l'explorateur, cliquer sur le dossier (où je pense que mon fichier se trouve), pour m'apercevoir qu'il n'est pas là.....alors qu'avec un menu déroulant, ce sera plus rapide (surtout pour les retours en arrière) et l'idéal serait qu'un lien hypertexte se fasse sur le fichier, ainsi si je navigue dans le menu et que je trouve mon fichier, je clique dessus et il s'ouvre...

Pour avoir une petite idée de la structure, j'ai mis un exemple très simple en PJ....

En vous remerciant pour votre aide....
 

Pièces jointes

  • Essai Menu répertoire.xlsx
    9.8 KB · Affichages: 68
Dernière édition:

erics83

XLDnaute Impliqué
Re : Menu déroulant (ou vertical/horizontal) en fonction de la structure d'un réperto

Merci JB,

C'est exactement vos tutos qui m'ont donné cette idée...

En fait,
Arborescence Répertoire Sous répertoire Shapes
et
Pour créer une arborescence compléte
c'est le résultat d'analyse recherché : mais au lieu de le mettre sous forme d'arborescence, il faudrait que je puisse l'avoir sous forme de menu déroulant....

Pour être plus explicite : prenons l'exemple du site exceldownload : il faudrait que les onglets "Menu", "forum", etc....soient remplacés par "mon rep" (exemple "arborescente complète"), et lorsque je survole avec la souris, "dossier1" et "dossier2" apparaissent et lorsque je survole "dossier1", "sousdossier11", "sousdossier12", sousdossier13" aparaissent et si je continue le survol, exemple "sousdossier11" que "soussousdossier111","sousousdossier112", "sousousdossier113" apparaissent jusqu'au lien vers le fichier.....un peu ce que vous obtenez dans votre tuto
Ajouter un menu avec sous-menus
....mais en le faisant via VBA...

On arrive à l'obtenir avec des codes HTML, je pense qu'Excel peut aussi permettre d'arriver à ce type de résultat....(même s'il est clair que ce n'est pas l'usage habituel d'Excel...), mais vous m'avez déjà démontré qu'Excel et VBA et surtout vos connaissances ont des possibilités incroyables.....

En vous remerciant pour votre aide,
 
Dernière édition:

erics83

XLDnaute Impliqué
Re : Menu déroulant (ou vertical/horizontal) en fonction de la structure d'un réperto

Bonjour,

J'ai fait différents essais, sans succès.....en fait, le but est de mettre sous forme de menu déroulant les lignes identifiées en jaunes dans les tutos de JB.....

Mais je n'arrive pas à trouver comment faire.....

Une petite aide ?

En vous remerciant,
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Menu déroulant (ou vertical/horizontal) en fonction de la structure d'un réperto

Bonjour,

-En cliquant sur le nom du répertoire, les noms des fichiers du répertoire choisi apparaissent dans une ListBox
-Cliquer sur le fichier choisi dans la ListBox
-Cliquer sur le bouton Ouvre

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([A3:E1000], Target) Is Nothing And Target.Count = 1 Then
    If Target <> "" Then
      col = Target.Column
      ligne = Target.Row
      rép = [A1]
      For k = 2 To col - 1
        lig = Cells(ligne, k).End(xlUp).Row
        rép = rép & Cells(lig, k) & "\"
      Next k
      If col > 1 Then rép = rép & Target
      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.ListBox1.Height = 200
      Me.ListBox1.Width = 150
      Me.ListBox1.Top = Target.Top
      Me.ListBox1.Left = Target.Left + Target.Width
      Me.ListBox1.Visible = True
    Else
      Me.ListBox1.Visible = False
    End If
   End If
End Sub

Private Sub ListBox1_Click()
  [I2] = Me.ListBox1.Column(1)
  [i3] = Me.ListBox1
End Sub

Private Sub B_ouvre_Click()
  chemin = [I2] & "\" & [i3]
  ThisWorkbook.FollowHyperlink chemin
End Sub

JB
 

Pièces jointes

  • ArborescenceRepertoireSousRepFichiers.xls
    120 KB · Affichages: 93
Dernière édition:

erics83

XLDnaute Impliqué
Re : Menu déroulant (ou vertical/horizontal) en fonction de la structure d'un réperto

Super Merci JB,

On se rapproche presque de l'attendu...:D :

Le coup de la Listbox pour choisir le fichier est excellent !!!

Par contre, l'idéal serait un menu déroulant : pour prendre votre exemple il serait intéressant d'avoir un menu qui se déroule et qui mettrait :
access
boisg
coucho2
coucho4
etc...
et lorsque je clique ou survol sur coucho4 (par exemple), qu'un autre menu s'affiche avec :
dessin
illustracombleu
et lorsque je clique ou survol illustracombleu qu'un menu s'affiche avec :
images
et qu'en sélectionnant images la listbox s'affiche avec les fichiers :
diapo
xx

Mais c'est vrai que les menus pourraient être des listbox....je ne connais pas toutes les possibilités....
En vous remerciant pour votre aide,
 
Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Menu déroulant (ou vertical/horizontal) en fonction de la structure d'un réperto

Essai avec ListBoxs en cascade

JB
 

Pièces jointes

  • ArborescenceRepertoireMenu.xls
    66 KB · Affichages: 69
  • ArborescenceRepertoireMenu.xls
    66 KB · Affichages: 57
Dernière édition:

erics83

XLDnaute Impliqué
Re : Menu déroulant (ou vertical/horizontal) en fonction de la structure d'un réperto

Merci JB,

apparemment nos messages se sont croisés, mais il y a un problème avec votre PJ : le fichier n'est pas présent : listbox cascade

En vous remerciant pour votre aide,
 
Dernière édition:

erics83

XLDnaute Impliqué
Re : Menu déroulant (ou vertical/horizontal) en fonction de la structure d'un réperto

Super merci JB,

Le fichier en cascade fonctionne parfaitement (par contre celui Treeview doit avoir un problème car ne fonctionne pas....: tourne indéfiniment).

Une petite question : si l'arborescence dépasse les 5 niveaux, on ne "voit" pas les autres niveaux....normal puisque vous avez mis 5 listbox, y aurait-il une autre possibilité ? (=création de lisbox en fonction du nombre de niveau ?)

En vous remerciant pour votre aide,
 

erics83

XLDnaute Impliqué
Re : Menu déroulant (ou vertical/horizontal) en fonction de la structure d'un réperto

Merci JB,

J'essaye de faire différents essais, notamment d'essayer de "juxtaposer" les listbox....Vous avez fait le choix de les mettre directement sur une feuille plutôt que dans un USF (choix qui me va parfaitement), mais je n'arrive pas à les faire se superposer/juxtaposer... : je pense créer 10 listbox (pour 10 niveaux), les mettre en "visible = false" et si valeurs dans la listbox, mettre en "visible =true"....

Mais sur une feuille excel, je ne sais pas comment faire....par contre, j'ai réussi à faire une lecture "automatique" : lit automatiquement le répertoire dans lequel le fichier est enregistré. Merci pour l'aide.

Une petite aide ?

En vous remerciant,
 

erics83

XLDnaute Impliqué
Re : Menu déroulant (ou vertical/horizontal) en fonction de la structure d'un réperto

Super super Merci JB,

J'ai compris la logique, merci :D

J'ai fait 2-3 essais et je pense pouvoir adapter à mon besoin....;)

Ce ne sera pas un menu déroulant, mais l'utilisation de listbox peut remplacer....

Par contre auriez-vous un tutos sur la création de listbox (ou autres) dans une feuille Excel : je n'arrive pas redimensionner vos listbox (que j'utilisais que dans un USF actuellement, mais que je trouve plus lisible dans une feuille excel).

En vous remerciant pour votre aide, et vous remercie pour ce code.

Merci,
 

erics83

XLDnaute Impliqué
Re : Menu déroulant (ou vertical/horizontal) en fonction de la structure d'un réperto

Bonjour,

J'ai essayé de modifier la taille des listbox, mais à chaque fois qu'elles sont alimentées, elles reprennent leur taille initiales, et je ne vois pas ni où ni quelle instruction les remet à leur taille initiale...

Pour modifier la taille, j'ai ouvert le fichier, désactivé les macros, et modifié la taille des listbox.

En vous remerciant pour votre aide et/ou me dire comment je peux modifier les tailles de ces listbox.....

En fait, j'aimerai comprendre comment vous avez pu mettre ces listbox dans la feuille excel....:) j'ai cherché sur le web, mais je n'ai rien trouvé et/ou noyé sous des forums....

Merci pour votre aide,
 
Dernière édition:

erics83

XLDnaute Impliqué
Re : Menu déroulant (ou vertical/horizontal) en fonction de la structure d'un réperto

Bonjour,

J'ai essayé avec un USF, car je ne sais toujours pas comment faire pour insérer des listbox dans une feuille excel, comme JB l'a fait...

Et je cherche la meilleure disposition pour faire un menu déroulant, et.....j'ai trouvé cette image sur le net qui correspondrait à ce que je cherche à avoir : j'ai 6 dossiers "niveau1", et donc cet exemple pourrait correspondre....: au passage de la souris, ouverture du niveau2, clic pour choisir, niveau3 s'affiche, etc....

Pensez vous que cela soit possible ? et si oui, comment ? (je pense possible car lorsque j'ai vu les possibilités de Treeview de JB, cela y ressemble beaucoup....

En vous remerciant pour votre aide,
Unknown.jpg
 

Discussions similaires

Réponses
8
Affichages
283
Réponses
1
Affichages
261

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 520
Messages
2 089 298
Membres
104 092
dernier inscrit
karbone57