Option Explicit Private Sub Form_Load() With ListView1 .LabelEdit = lvwManual .FullRowSelect = True .View = lvwReport .GridLines = False .ColumnHeaders.Add 1, , "Fichiers MDB" .ColumnHeaders(1).Width = .Width - 60 End With Dim aResultat() As String Dim i As Long For i = 0 To GetFilesPathFromDirectory("C:\Windows", aResultat(), "*.mdb") AppendLineToLV ListView1, aResultat(i) Next i Erase aResultat End Sub 'http://www.codyx.org/snippet_lister-tous-fichiers-repertoire_198.aspx#688 Private Function GetFilesPathFromDirectory(ByVal sDir As String, ByRef aRet() As String, Optional ByVal sFilter As String = "*.txt") As Long ' GetFilesPathFromDirectory retourne -1 si aucun fichier trouvé ' sinon retourne la dimension du tableau, donc NB fichiers -1 (tableau commence à l'indice 0) ' init les résultats GetFilesPathFromDirectory = -1 Erase aRet If RightB$(sDir, 2) <> "" Then sDir = sDir & "" ' formate le chemin Dim sFile As String sFile = Dir(sDir & sFilter, vbHidden Or vbSystem) ' boucle sur tous les fichiers Do If LenB(sFile) Then GetFilesPathFromDirectory = GetFilesPathFromDirectory + 1 ReDim Preserve aRet(GetFilesPathFromDirectory) aRet(GetFilesPathFromDirectory) = sDir & sFile sFile = Dir End If Loop Until LenB(sFile) = 0 End Function 'http://www.codyx.org/snippet_ajouter-ligne-listview-items-multiples_794.aspx#2387 Private Sub AppendLineToLV(ByRef LV As ListView, ParamArray vasValues() As Variant) If (LV.ColumnHeaders.Count > 0) And (Not UBound(vasValues) = -1) Then Dim LI As ListItem Dim i As Integer LV.ListItems.Add , , vasValues(0) Set LI = LV.ListItems.Item(LV.ListItems.Count) For i = 1 To UBound(vasValues) If i = LV.ColumnHeaders.Count Then Exit For LI.SubItems(i) = vasValues(i) Next i Set LI = Nothing End If End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionFor i = 0 To GetFilesPathFromDirectory(app.path & "", aResultat(), "*.mdb")
Private Sub Form_Load() With LstFiles .LabelEdit = lvwManual .FullRowSelect = True .View = lvwReport .GridLines = False .ColumnHeaders.Add 1, , "Fichiers MDB" .ColumnHeaders(1).Width = .Width - 60 End With Dim aResultat() As String Dim I As Long For I = 0 To GetFilesPathFromDirectory(App.Path & "", aResultat(), "*.mdb") AppendLineToLV LstFiles, aResultat(I) Next I Erase aResultat End Sub Private Function GetFilesPathFromDirectory(ByVal sDir As String, ByRef aRet() As String, Optional ByVal sFilter As String = "*.txt") As Long GetFilesPathFromDirectory = -1 Erase aRet If RightB$(sDir, 2) <> "" Then sDir = sDir & "" Dim sFile As String sFile = Dir(sDir & sFilter, vbHidden Or vbSystem) Do If LenB(sFile) Then GetFilesPathFromDirectory = GetFilesPathFromDirectory + 1 ReDim Preserve aRet(GetFilesPathFromDirectory) aRet(GetFilesPathFromDirectory) = sDir & sFile sFile = Dir End If Loop Until LenB(sFile) = 0 End Function Private Sub AppendLineToLV(ByRef LV As ListView, ParamArray vasValues() As Variant) If (LV.ColumnHeaders.Count > 0) And (Not UBound(vasValues) = -1) Then Dim LI As ListItem Dim I As Integer LV.ListItems.Add , , vasValues(0) Set LI = LV.ListItems.Item(LV.ListItems.Count) For I = 1 To UBound(vasValues) If I = LV.ColumnHeaders.Count Then Exit For LI.SubItems(I) = vasValues(I) Next I Set LI = Nothing End If End Sub
Private Function GetFilesPathFromDirectory(ByVal sDir As String, ByRef aRet() As String, Optional ByVal sFilter As String = "*.txt") As Long ... End Function
Private Sub AppendLineToLV(ByRef LV As ListView, ParamArray vasValues() As Variant) ... End Sub