1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
Private Declare Function OuvrirProg _
Lib "shell32.dll" _
Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpszOp As String, _
ByVal lpszFile As String, _
ByVal lpszParams As String, _
ByVal lpszDir As String, _
ByVal FsShowCmd As Long) As Long
Dim Nom As String
Const Lecteur As String = "D:\"
Private Sub CommandButton1_Click()
Dim Tbl() As String
Dim I As Integer
'ici, le nom du dossier est dans la cellule active, à adapter...
Nom = ActiveCell
'le lecteur est D, à adapter...
Tbl = Fichiers(Lecteur & Nom)
'en colonne "A" de la feuille active si pas vide
If Not (Not Tbl) Then
ListBox1.Clear
For I = 1 To UBound(Tbl)
ListBox1.AddItem Tbl(I)
Next I
End If
End Sub
Private Sub ListBox1_Click()
Dim Retour As Long
Dim Fichier As String
Fichier = Lecteur & Nom & "\" & ListBox1.Text
'au cas où "Nom" soit égal à ""
Fichier = Replace(Fichier, "\\", "\")
If InStr(ListBox1.Text, ".xls") Or InStr(ListBox1.Text, ".csv") Then
Workbooks.Open (Fichier)
Else
Retour = OuvrirProg(0, "open", Fichier, vbNullString, vbNullString, 3)
End If
End Sub
Function Fichiers(Chemin As String) As String()
Dim TableauFichiers() As String
Dim Fichier As String
Dim I As Integer
'complète le chemin le cas échéant
If Right(Chemin, 1) <> "\" Then Chemin = Chemin & "\"
'boucle dans le dossier jusqu'à la fin des fichiers et rempli le tableau
Fichier = Dir(Chemin)
Do While (Len(Fichier) > 0)
I = I + 1
ReDim Preserve TableauFichiers(1 To I)
TableauFichiers(I) = Fichier
Fichier = Dir()
Loop
Fichiers = TableauFichiers()
End Function |
Partager