ListBox fichiers: FileDateTime, éffacer, renommer

Mi_

XLDnaute Occasionnel
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):
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
 

Mi_

XLDnaute Occasionnel
Je précise que j'avais déjà trouvé un moyen pour afficher FileDateTime dans un ListBox de fichiers, mais le filtre ne permet pas le parametrage avancé, et encore moins des possibles actions ultérieures sur le ListBox.

Code:
Private Sub UserForm_Initialize()
   Dim mypath, myname

   mypath = 'C:\\Excel\\'
   
   myname = Dir(mypath, vbDirectory) 
   With Me.ListBox1
       Do While myname <> ''    
           If myname <> '.' And myname <> '..' Then
           If (GetAttr(mypath & myname) And vbDirectory) <> vbDirectory Then
           If UCase(Right(myname, 4)) = '.XLS' Then
                       .ColumnCount = 2
                       .AddItem myname
                       .List(.ListCount - 1, 1) = FileDateTime(mypath & myname)
                   End If
               End If
           End If
           myname = Dir   
       Loop
       'If .ListCount > 0 Then .ListIndex = 0
   End With
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 413
Messages
2 088 191
Membres
103 755
dernier inscrit
Nicolas TULENGE