Bonjour le forum,
Grace à l'aide de _Thierry y a pas longtemps, j'ai réussi à filtrer selon des mots clé dans un UserForm.ListBox les fichiers d'un Dossier donné, et les ouvrir après sélection.
Maintenant, ce qui me tracasse, c'est l'ajout d'une deuxième colonne dans le ListBox, avec le résultat de la fonction FileDateTime pour chaque fichier listé (donc la date et l'heure de la dernière modification).
Et cerise sur le gateau, je cherche aussi comment éffacer et renommer les fichiers qui y apparaissent dans ce ListBox, la simple ouverture ne me suffit plus ! 'Mais quel animal !
Le code actuel est (encore une fois merci à _Thierry):
Grace à l'aide de _Thierry y a pas longtemps, j'ai réussi à filtrer selon des mots clé dans un UserForm.ListBox les fichiers d'un Dossier donné, et les ouvrir après sélection.
Maintenant, ce qui me tracasse, c'est l'ajout d'une deuxième colonne dans le ListBox, avec le résultat de la fonction FileDateTime pour chaque fichier listé (donc la date et l'heure de la dernière modification).
Et cerise sur le gateau, je cherche aussi comment éffacer et renommer les fichiers qui y apparaissent dans ce ListBox, la simple ouverture ne me suffit plus ! 'Mais quel animal !
Le code actuel est (encore une fois merci à _Thierry):
Code:
Private Sub CommandButton1_Click() 'Actionne le filtre
Dim TheFilter As String
If Me.TxbBrowseForFolder = '' Then
MsgBox 'Vous devez d'abord spécifier un Chemin'
Exit Sub
End If
TheFilter = IIf(Me.TxbFileSearchFilter = '', '*.xls', '*' & Me.TxbFileSearchFilter & '*.xls')
SearchingFiles Me.TxbBrowseForFolder, TheFilter
End Sub
Sub SearchingFiles(Chemin As String, Filter As String) 'Le moteur de recherche
Dim TabFilesFound As Collection
Dim Filename As String
Dim SearcherFile As FileSearch
Dim TabFileNamePath() As String
Dim i As Integer
Set SearcherFile = Application.FileSearch
With SearcherFile
.NewSearch
.FileType = msoFileTypeExcelWorkbooks
.Filename = Filter
.LookIn = Chemin
.SearchSubFolders = True
.Execute msoSortByFileName, msoSortOrderAscending
If .Execute > 0 Then
With .FoundFiles
For i = 1 To .Count
ReDim Preserve TabFileNamePath(1, 0 To .Count - 1)
TabFileNamePath(0, i - 1) = Dir(.Item(i))
TabFileNamePath(1, i - 1) = SearcherFile.FoundFiles(i)
Next i
End With
Else
MsgBox 'Pas de Fichier trouvé dans ' & Chemin
UserForm1.ListBox1.Clear
Exit Sub
End If
End With
Set SearcherFile = Nothing
UserForm1.ListBox1.Column() = TabFileNamePath
End Sub
Private Sub CommandButton2_Click() 'Ouvre le fichier sélectionné
With Me.ListBox1
Workbooks.Open .Column(1, .ListIndex)
End With
Unload Me
End Sub