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

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

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!
 
- 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

Discussions similaires

Réponses
3
Affichages
693
Réponses
6
Affichages
622
Retour