ListBox fichiers: FileDateTime, éffacer, renommer

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

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
 
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
 
- 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
10
Affichages
534
Réponses
5
Affichages
714
Réponses
4
Affichages
581
  • Question Question
Réponses
7
Affichages
373
Retour