liste de fichier dans combox + ouverture du fichier

J

juliette

Guest
Bonjour à toutes et à tous...

Dans le forum une personne a transmis le code pour pouvoir afficher dans une combobox la liste des fichiers dans un répertoire du disque dur.



Option Explicit
Dim Files As String

Private Sub UserForm_Initialize()
Files = Dir("C:\Documents and Settings\Christophe\Mesdocuments\Fichier Excel\*.*")
Do While Files <> ""
ComboBox1.AddItem Files
Files = Dir
Loop
End Sub


Une personne paut-elle m'aider pour mes 2 interrogations suivantes?

- Peut-on modifier le code pour que les fichiers ne s'affichent pas dans l'ordre alphabétique mais tels qu'ils sont présents dans le répertoire?

- Quel code faut-il ajouter pour que le fichier sélectionné dans le combobox s'ouvre?



Merci d'avance.
 
@

@Christophe@

Guest
Bonjour juliette,

Je reconnais cette macro, rire

Voici pour toi ce qu'il te faut, dans un userform avec un combobox et un commandbutton, colle le code suivant:

Option Explicit
Dim Files As String

Private Sub CommandButton1_Click()
Workbooks.Open "C:\Documents and Settings\Christophe\Mes documents\Fichier Excel\" & ComboBox1.Value
End Sub

Private Sub UserForm_Initialize()
Files = Dir("C:\Documents and Settings\Christophe\Mes documents\Fichier Excel\*.*")
Do While Files <> ""
ComboBox1.AddItem Files
Files = Dir
Loop
End Sub


P.S. je pars du principe que tous les fichier qui se trouve dans ton repertoire sont des fichier Excel!!

Tu peux aussi utiliser le code sans devoir utiliser de commandbutton pour démaré le fichier:

Private Sub ComboBox1_Change()
Workbooks.Open "C:\Documents and Settings\Christophe\Mes documents\Fichier Excel\" & ComboBox1.Value
End Sub

Private Sub UserForm_Initialize()
Files = Dir("C:\Documents and Settings\Christophe\Mes documents\Fichier Excel\*.*")
Do While Files <> ""
ComboBox1.AddItem Files
Files = Dir
Loop
End Sub


P.S. Pour ton problème d'ordre alphabétique, c'est pas possible je crois, parce que Dir trie automatiquement par ordre alph.

Il faudrait utilisé un code complétement différent pour cela.

bonne journée

@Christophe@
 
J

juliette

Guest
bonjour Christophe...

oui, je me suis permise de réutiliser ton code ;-)

il est vraiment bien ce forum.


ça fonctionne comme je le souhaite.

juste une petite question... comment faire pour que le combobox reviennent à sa position initiale (c'est à dire un blanc au lieu du dernier fichier sélectionné)?

Merci encore pour ton aide.

Juliette
 
@

@Christophe@

Guest
Re

Ben si tu utilise l'évenement Combobox_Change, modifie comme suite:

Private Sub ComboBox1_Change()
On Error Resume Next
Workbooks.Open "C:\Documents and Settings\Christophe\Mes documents\Fichier Excel\" & ComboBox1.Value
ComboBox1.ListIndex = -1
End Sub

P.S. Le "On Error Resume Next" afin de géré l'erreur, parce que comme il y a changement dans la combo, il exécute le code, donc il essaye d'ouvrir un fichier "Sans nom, blanc" et la erreur.


Si tu utilise le Command button, fais comme suite:

Private Sub CommandButton1_Click()
Workbooks.Open "C:\Documents and Settings\Christophe\Mes documents\Fichier Excel\" & ComboBox1.Value
ComboBox1.ListIndex = -1
End Sub

La pas besion de géré l'erreur, parce que une modif dans la combo ne fais rien.


Voila, bonne journée

@Christophe@
 

Discussions similaires

Statistiques des forums

Discussions
312 584
Messages
2 089 982
Membres
104 325
dernier inscrit
Jujuleader