Parcourir des dossiers depuis VBA pour ouvrir une page excel, et fermer l'actuelle

benio

XLDnaute Nouveau
Bonjour,
A l'ouverture de ma feuille excel, je veux une boîte de dialogue qui propose soit de lancer une nouvelle étude, soit de charger une étude. Pour la nouvelle étude, facile, l'utilisateur clique sur "nouvelle étude" et hop, il reste sur le même fichier. Pour en charger une autre, j'ai cherché à travers les forums comment parcourir les dossiers via vba.
J'ai trouvé ce code:
Sub OpenMultipleFiles()

Dim S(), LesFiltres As String
Dim Title As String
Dim x As Integer, FilterIndex As Integer
Dim Filename As Variant, Message As String

LesFiltres = "Excel Files (*.xlsx),*.xlsx," & _
"Text Files (*.txt),*.txt," & _
"All Files (*.*),*.*"

'Filtre par défaut *.* -> All Files
FilterIndex = 1

'Titre de la boîte de dialogue
Title = "Sélectionner les fichiers à ouvrir..."

'Pour sélectionner le lecteur
CurDir "c:"
'Pour sélectionner le répertoire à l'ouverture
ChDir "c:"

Filename = Application.GetOpenFilename(FileFilter:=LesFiltres, _
FilterIndex:=FilterIndex, Title:=Title, MultiSelect:=True)
Select Case TypeName(Filename)
Case Is = "Boolean"
'annuler la boîte de dialogue
Exit Sub
Case Is = "String"
'un fichier seulement de sélectionner
ReDim S(1 To 1)
S(1) = Filename
Case Else
ReDim S(1 To UBound(Filename))
S = BubbleSort(Filename)

End Select
For x = LBound(S) To UBound(S)
Message = Message & S(x) & vbCrLf
Next
MsgBox Message

End Sub
'-----------------------------------
Function BubbleSort(List As Variant)
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp

First = LBound(List)
Last = UBound(List)
For i = First To Last - 1
For j = i + 1 To Last
If List(i) > List(j) Then
Temp = List(j)
List(j) = List(i)
List(i) = Temp
End If
Next j
Next i
BubbleSort = List
End Function

Je l'essaie enfin, tout va bien, je peux chercher dans mes dossiers, pas de problème. Sauf que ce qui m'intéresse, mie de rien, c'est qu'une fois le fichier sélectionné, il puisse me l'ouvrir.
J'ai donc rajouté une fonction "ouvrir", qui dit ceci:

Function ouvrir()
Set wb = Workbooks.Open(Filename)
End Function

Mais, rien à faire, je n'y arrive pas. Si quelqu'un pourrait m'aider ^^
Merci d'avance!
 

Discussions similaires

Réponses
6
Affichages
247
Réponses
19
Affichages
2 K

Statistiques des forums

Discussions
312 228
Messages
2 086 420
Membres
103 205
dernier inscrit
zch