Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA - Optimisation récupération de noms dans une combobox

  • Initiateur de la discussion Initiateur de la discussion mathiouze22
  • 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 !

M

mathiouze22

Guest
Bonjour à tous,

Je suis un utilisateur plutôt débutant de VBa et j'ai adapté une macro vue sur Internet à mon besoin, à savoir :
récupérer les noms de tous les fichiers présents dans un répertoire, et les ajouter à une combobox lors de l'initialisation d'un USF.

Cela fonctionne à priori bien sauf que c'est d'une lenteur folle et comme l'outil est déstiné à être utilisé avec un client au téléphone, on ne peut pas se permettre un temps de réponse aussi long

Je vous mets ci-dessous le code en question pour voir si qq'un saurait améliorer ma création très artisanale :s

Code:
Private Sub UserForm_Initialize()
y = ActiveWorkbook.FullName  'recupere le chemin du fichier
h = ActiveWorkbook.Name  'recupere le nom du fichier
lg = Len(h) 'len=longueur
chemin = Mid(y, 1, Len(y) - Len(h))

Dim fso, f As Object
Set fso = CreateObject("Scripting.FileSystemObject")
For Each f In fso.GetFolder(chemin).Files
   ComboBox1.AddItem f.Name
Next f
End Sub

merci par avance 🙂
 
Dernière modification par un modérateur:
Re : VBA - Optimisation récupération de noms dans une combobox

Bonjour Mathiouse

Teste:

Code:
Private Sub UserForm_Initialize()
x = Dir(ThisWorkbook.Path & "\*.*")
While x <> ""
 Me.ListBox1.AddItem x
  x = Dir
Wend
End Sub
 
Re : VBA - Optimisation récupération de noms dans une combobox

Bonjour pierrejean et merci pour la rapidité de la réponse,

Cela ne fonctionne pas : la combobox est alimenté d'un champ vide et quand je regarde la valeur de x, ca me remonte le nom d'un des fichiers du répertoire :s

edit : pardon, je viens de voir ma boulette et en fait cela marche parfaitement !!!
c'est génial, merci bcp 🙂
PI, wend ca sert à quoi ?
 
Dernière modification par un modérateur:
Re : VBA - Optimisation récupération de noms dans une combobox

je reviens pour un petit tour pour encore optimiser la macro :
est-il possible de récupérer le nom des répertoires en plus des fichiers ?
j'ai essayé en supprimant le "*" dans la fonction Dir() mais cela ne fonctionne pas.

Code:
Est ce que quelqu'un aurait une idée ?
Pour rappel, le code en question
Private Sub UserForm_Initialize()
x = Dir(ThisWorkbook.Path & "\*.*")
While x <> ""
 Me.ListBox1.AddItem x
  x = Dir
Wend
End Sub
 
Re : VBA - Optimisation récupération de noms dans une combobox

Bonjour à tous,

peut-être

Code:
Private Sub UserForm_Initialize()
x = Dir(ThisWorkbook.Path & "\*", vbNormal + vbDirectory)
While x <> ""
 Me.ListBox1.AddItem x
  x = Dir
Wend
End Sub
 
Re : VBA - Optimisation récupération de noms dans une combobox

bonjour tototiti2008,

merci bcp c'est parfait !
et comment fait-on si on veut juste le nom des répertoires du coup ? (j'avais mal formulé ma question :s)
 
Re : VBA - Optimisation récupération de noms dans une combobox

j'avais déjà testé mais cela me met quand même les fichiers + les répertoires
ps: je commençais à regarder l'aide parce qu'effectivement ca peut être utile 😛
 
Re : VBA - Optimisation récupération de noms dans une combobox

Re,

Oui, comme quoi moi non plus je n'avais pas bien relu 😉

essaye ça
Code:
Private Sub UserForm_Initialize()
Dim FSO As Object, Doss As Object
    Set FSO = CreateObject("Scripting.Filesystemobject")
        For Each Doss In FSO.getfolder(ThisWorkbook.Path).SubFolders
            Me.ListBox1.AddItem Doss.Name
        Next
    Set FSO = Nothing
Set Doss = Nothing
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…