'Propriétés 'VBAProject(PERSO.XLS)\Feuilles\UserForm2 'Name = UserForm2 ' Private Sub UserForm_Initialize() End Sub Private Sub ListBox1_Click() Dim fnc As String Dbg = True Dim sTSRFolder As String fnc = "ListBox1_Click() _ " For i = 0 To 9 '-- '-- comment remplacer la limite de la boucle For 9 '-- par la valeur de nbl de la procédure CommandButton1_Click() ? '-- If ListBox1.Selected(i) = True Then If Dbg Then MsgBox (fnc & ListBox1.List(i)) End If Workbooks.Open Filename:=ListBox1.List(i) End If Next i End Sub Private Sub CommandButton1_Click() 'Propriétés caption = "Lister les fichiers" Dim fnc As String Dbg = False Dim sTSRFolder As String fnc = "CommandButton1_Click() _ " sTSRFolder = "D:\a_PRIVE\toto" '-- recupère le nombre de lignes de la listbox -- nbl = RechercheFichiers(sTSRFolder) If Dbg Then MsgBox (fnc & " recherche de fichier passée, nombre de lignes : " & nbl) End If End Sub
Private Function RechercheFichiers(sFolder As String) ' auteur : econs ' Cette procedure recherche tous les fichiers contenus dans un répertoire donné. ' Elle les affiche dans une ListBox (lstFiles ). Dim fnc As String Dbg = False Dim sTSRFolder As String fnc = "RechercheFichiers(" & sFolder & ") _ " Dim NomFichier As String Dim nbFiles As Long 'lstFiles.Clear UserForm2.ListBox1.Clear 'ajout de UserForm2. sinon erreur 424 objet requis !!! With Application.FileSearch .NewSearch .LookIn = sFolder .SearchSubFolders = True .Filename = NomFichier .FileType = msoFileTypeAllFiles .MatchTextExactly = True If .Execute(msoSortByNone) > 0 Then For i = 1 To .FoundFiles.Count UserForm2.ListBox1.AddItem .FoundFiles(i) 'lstFiles.AddItem .FoundFiles(i) If Dbg Then MsgBox (fnc & .FoundFiles(i)) End If Next i Else MsgBox "Aucun fichier n'a été trouvé." End If End With RechercheFichiers = i End Function
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question