Parcourir des dossiers depuis VBA puis faire ouvrir le fichier

Fermé
benio
Messages postés
1
Date d'inscription
mercredi 27 mars 2013
Statut
Membre
Dernière intervention
27 mars 2013
- 27 mars 2013 à 17:20
Bonjour,
Je suis un petit nouveau, et un grand débutant en terme de VBA. Mais, j'en ai absolument besoin, et je trouve ça plus qu'intéressant!
Mais voila, j'ai un problème.
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!