Menu déroulant automatiquement générée

Bonjour,

Toujours dans le but d’avancer sur mon suivi, j’aimerai effectuer deux tâches qui, au final seront combinées…

J’ai un dossier de travail (dont je connais l’adresse) où, à l’intérieur, j’ai plein de dossiers avec des noms très différents.

Je voudrais seulement récupérer les noms de dossier « année » (j’ai des dossiers qui s’appellent : 2016, 2017, 2018 et ainsi de suite) pour en faire un menu déroulant.

Une fois cela fait, j’aimerai qu’un second menu déroulant liste les dossiers contenus dans ce dossier année… Est-ce possible ?

Vous trouverez ci-dessous un exemple de l’arborescence.

Il est tout à fait possible de créer un second onglet pour renseigner un champ qui pourra être repris ensuite.

Merci à ceux qui se pencheront dessus en tout cas !

Seb78

27dessin1.pdf (273.82 Ko)

Essayez cette macro :

Sub Macro1()
    Dim dossier As String
    Dim objFSO As Object, oFile As Object
    Dim objFolder As Object, objSubFolder As Object
    Dim i As Integer

    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Sélectionnez votre dossier de travail"
        If .Show = -1 Then ' OK a été pressé
            dossier = .SelectedItems(1)
        End If
    End With

    Columns("A:B").Clear

    ' Création d'une instance de FileSystemObject
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    ' On sélectionne le dossier de travail
    Set objFolder = objFSO.GetFolder(dossier)
    i = 0
    ' On affiche les dossiers numériques et leur contenu
    For Each objSubFolder In objFolder.subfolders
        If IsNumeric(objSubFolder.Name) Then
            ' On ajoute dans la colonne A le nom du sous-dossier
            i = i + 1
            Cells(i, 1) = objSubFolder.Name
            For Each oFile In objSubFolder.Files
                i = i + 1
                Cells(i, 2) = oFile.Name
             Next oFile
        End If
    Next objSubFolder
End Sub

Salut Optimix,

C'est exactement ce qu'il me fallait pour la 1ère étape !

Bon j'essaye d'avancer sur le second point !

Merci beaucoup,

Seb78

Tu as écrit :

Je voudrais seulement récupérer les noms de dossier « année » (j’ai des dossiers qui s’appellent : 2016, 2017, 2018 .../... une fois cela fait, j’aimerai qu’un second menu déroulant liste les dossiers contenus dans ce dossier année

On est bien d'accord, seuls les dossiers (2001...etc.) et les sous-dossiers qu'ils contiennent (2e niveau) t'intéressent. Et il n'y aura pas une 3e liste contenant les fichiers qui se trouvent dans les sous-dossiers.

Yep, ça me récupère bien tout ce qu'il faut pardon, je me suis mal exprimé !
La deuxième étape, c'est que je dois faire tout ce qui va derrière !

Merci encore,
Seb78

Et qu'est-ce qu'il y a derrière si ce n'est pas indiscret ? C'est une vue d'ensemble qui manque.

Pour mettre du contexte, et je le comprends :

En fait, cette macro liste donc les sous-dossiers d'un dossier.

La liste ainsi créée, qui me sert de base pour un menu déroulant sur un autre page.

Jusqu'ici, c'est exactement ce que j'attends.

Maintenant, j'aimerais récupérer le résultat du ménu déroulant pour l'intégrer dans une adresse du type :

En sélectionnant un item dans le menu déroulant, j'aimerais créer une adresse

"c:\dossier X\sous-dossiers Y" & "\" & "résultat de la recherche en feuil12!A1" pour que mon suivi se mette à jour au projet pointé (le sous-dossier)

Merci

Seb78

Hummm ! Tu te rends probablement compte qu'on est loin du petit dessin proposé au départ.

Combien y a-t-il de niveaux dans ton arborescence (le dossier contenant les années et les TITI...TATA étant le 1er niveau) ?

Bon, on va faire comme s'il n'y avait que deux niveaux. Sinon, il faudrait une récursivité.
Ce petit exemple te donnera peut-être des idées.

16repertoire.xlsm (34.73 Ko)

Ola, désolé, je n'avais pas vu votre réponse....

En fait, la réponse précédente a tout à fait répondu à mes attentes.

Merci encore !

Seb78

Rechercher des sujets similaires à "menu deroulant automatiquement generee"