VBA - Alimenter Combobox par des noms de fichier

Bonjour à tous,

Je suis sur un projet de configuration de projet automatique, j'aurai souhaité savoir comment on peut ajouter des noms de fichier dans une combobox (: qui sera la liste des projets).

La combobox n'est pas dans un userform, elle est directement sur une feuille excel.

Merci d'avance,

Cordialement,

Bonjour, il suffit :

- Ecrire dans un autre onglet la liste de vos fichier.

-Sélectionner la plage contenant les noms ne fichier ( voir une page plus grande si vous pensez ajouter de nouveaux fichier ) puis donner

un nom à votre plage ( exemple "maliste" )

-Enfin en mode création clic droit sur votre combobox "Propriété" et à la ligne ListFillRange vous écrivez maliste.

quand vous quittez le mode création votre combo est alimentée.

Est-ce qu'il y aurait un moyen d'aller directement chercher les noms des fichiers ?

Par exemple au lieu de faire un page dédié à ça, un code pourrait aller directement suivre un "chemin" et prendre les noms des dossier.

Re, oui par macro :

- soit pour alimenter la liste sur une feuille

-Soit pour alimenter la combobox directement.

Avoir si vous l'utiliserez à l'ouverture de votre fichier : à mettre dans Private Sub Workbook_open ()

Supprimez l'alimentation feuille si pas besoin.

Sub ListingFichiers()

Dim Rep As String, Fichier As String
Dim i As Integer

'Chemin à adapter à votre besoin
Rep = "C:\Users\nomuser\Desktop\"
Fichier = Dir(Rep)
Do While Fichier <> ""
    i = i + 1
'CODE POUR ALIMENTER LES CELLULES DE LA COLONNE A FEUILLE 1
Sheets("Feuil1").Range("A" & i) = Fichier

'CODE POUR ALIMENTER LA COMBOBOX1 DE LA FEUILLE 1
Sheets("Feuil1").ComboBox1.AddItem Fichier

Fichier = Dir

Loop
End Sub

Quand j'exécute la macro je passe de la ligne :

Do While Fichier <> ""

A celle :

End Sub

Il ne prends pas en compte le reste..

Vous avez bien indiquez votre chemin à vous ?

Rep = "C:\Users\nomuser\Desktop\"

Oui j'ai bien indiqué mon chemin..

capture

Quand je simule la macro, et que je pointe sur "Fichier" il me dit qu'il est nul, du coup il va directement au "End sub".

Bonjour

En vous lisant, je m'insère dans ce fil (je suppose que Xmenpl ne m'en voudra pas... ), mais essayez comme ceci

Sub test()
Dim Fichier As String
Dim chemin As String
Dim i

chemin = ThisWorkbook.Path & "\" '--> à adapter !
Fichier = Dir(chemin & "*.xls*")
i = 1
Do While Fichier <> ""
    Workbooks("PDG").Sheets("Feuil3").Range("A" & i) = Fichier
    i = i + 1
    Fichier = Dir
Loop
With Workbooks("PDG")
    .Sheets("Feuil1").combobox2.List = .sheets("Feuil3").Range("A1:A" & .sheets("Feuil3").Range("A" & Rows.Count).End(xlUp).Row).value
End With

End Sub

La variable chemin est à adapter à votre répertoire

Cordialement

Pourquoi vous indiquez le nom du Workbook ? dans les lignes alimentation ... en plus sans extension ?

La macro appartiend à ce workbook donc inutile de reciter le nom.

Changez juste le nom de la feuille si elle ne porte pas le nom "Feuil1"

Cependant en mode pas à pas si Fichier="" celà veut dire qu'il n'a rien trouvé donc il doit y avoir une erreur dans l'écriture du chemin ?

un accent ? un espace ? une majuscule ?

Edit. Bonjour Dan et non je ne t'en veux pas bien au contraire. Trés bonne idée

Pour la variable chemin c'est apparemment ce qui pose problème... sans doute une erreur de syntaxe.

Pour vérifier que c'est bien le chemin qui pose problème enregistrez provisoirement le fichier qui contient la macro

dans le répertoire à tester. Ensuite utilisez la formulation de Dan pour indiquer le chemin.

Rep = ThisWorkbook.Path & "\"

Pas d'erreur dans l'écriture, mais peut-être que cela vient du fait que ce sont des dossiers et non des fichiers.

En effet dans le chemin cité, il n'y a que des dossiers et aucun fichier.

Ces noms de dossier je voudrai qu'ils soient dans un combobox. Je vais essayer le code de Dan en enlevant le ".xls" !

Je vais essayer le code de Dan en enlevant le ".xls" !

ben non justement, je vous ai placé des * devant et derrière pour qu'il prenne tous les fichiers XLS, XLSX et XLSM

Oui mais je veux les noms des dossiers par ceux des fichiers

Désolé mais relisez le titre de votre fil ....

Ah en effet désolé de l'erreur..

Lol effectivement plus aucun rapport il ne trouve aucun nom de fichier car il n'y en a pas

La demande est bien différente si c'est le nom des répertoires que vous souhaitez dans votre combobox1.

Sub ListingFichiers()
'Permet de fournir la liste des sous dossier dans un dossier
Dim Rep As String, Fichier As String
Dim i As Integer

'Chemin à adapter à votre besoin
Rep = "O:\02-DT-PROJETS\BE-Projet etude\"

    Dim fs, f, f1, sf
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(Rep)
    Set sf = f.SubFolders

    For Each f1 In sf
        Fichier = f1.Name

        'Alimentation combobox1  changez le nom de la feuil si la combobox1 ne se trouve pas dessus
  Sheets("Feuil1").ComboBox1.AddItem Fichier

   Next

End Sub

Une petite variante en restant dans la même idée que ce que je proposais avant mais avec Dossier

Sub test()
Dim FDossier As Object
Dim chemin As String
Dim i

chemin = "C:\" '--> à adapter !
i = 1
Set Dossier = CreateObject("Scripting.FileSystemObject").GetFolder(chemin)
For Each FDossier In Dossier.SubFolders
    Workbooks("PDG").Sheets("Feuil3").Cells(i, 1) = FDossier.Name
    i = i + 1
Next
With Workbooks("PDG")
    .Sheets("Feuil1").ComboBox1.List = .Sheets("Feuil3").Range("A1:A" & .Sheets("Feuil3").Range("A" & Rows.Count).End(xlUp).Row).Value
End With

End Sub

Cordialement

Désolé de la réponse tardive, je vous remercie énormément ! Ça fonctionne

Merci du retour c'est plus facile de trouver une solution quand on parle de la même chose.

Désolé de la réponse tardive, je vous remercie énormément ! Ça fonctionne

Ok mais quelles solutions ? Les deux ?

Puis ...pour ne pas oubier

Crdlt

Rechercher des sujets similaires à "vba alimenter combobox noms fichier"