Public 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
' EXEMPLE D'UTILISATION
Private Sub Command1_Click()
Dim aResultat() As String
Dim lRet As Long
Dim i As Long
lRet = GetFilesPathFromDirectory("C:\Windows\", aResultat())
If lRet <> -1 Then
For i = 0 To lRet
Debug.Print "Fichier " & i + 1 & " = " & aResultat(i)
Next i
End If
End Sub