Jai une fonction qui doit me retourner le fichier pdf le plus recent dans un repertoire et dans les sous repertoires :
Public Function recher(Chemin As String)
Dim fich As String
Dim chemCompl As String
Dim newchem As String
Dim datFich As String
Dim Fso As Object, FileItem As Object, oSousRep As Object, objrepInit As Object
Dim Tableau()
Dim m As Integer, i As Integer
Dim z As Byte, Valeur As Byte
Dim Cible As Variant
fich = Dir(Chemin & "\*.pdf")
Do
m = m + 1
ReDim Preserve Tableau(2, m)
Tableau(1, m) = fich
Set Fso = CreateObject("Scripting.FileSystemObject")
Set FileItem = Fso.GetFile(Chemin & "" & fich)
Tableau(2, m) = Left(FileItem.DateCreated, 8)
fich = Dir
Set objrepInit = Fso.GetFolder(Chemin)
Set oSousRep = objrepInit.SubFolders
recher (oSousRep.Name)<----erreur l'objet ne gere pas cette methode ou cette proprieté
Loop Until fich = ""
Mais j'ai une erreur au moment de l'appel de ma fonction recursive...
Re,
OUPPS, réellement confus, je n'avais pas lu le code en entier.
Je te pris d'accepter mes excuses.
L'erreur vient du fait que un objet SubFolders ne contient pas la propriété Name
=> voir l'aide sur FileSystemObject.
Tu peux ajouter Microsoft Scripting Runtime pour avoir les objets disponibles du FileSystemObject
ce qu'il faudrait faire c'est:
Public Function recher(Chemin As String)
Dim fich As String
Dim chemCompl As String
Dim newchem As String
Dim datFich As String
Dim Fso As Object, FileItem As Object, oSousRep As Object, objrepInit As Object
Dim Tableau()
Dim m As Integer, i As Integer
Dim z As Byte, Valeur As Byte
Dim Cible As Variant
fich = Dir(Chemin & "\*.pdf")
Do
m = m + 1
ReDim Preserve Tableau(2, m)
Tableau(1, m) = fich
Set Fso = CreateObject("Scripting.FileSystemObject")
Set FileItem = Fso.GetFile(Chemin & "\" & fich)
Tableau(2, m) = Left(FileItem.DateCreated, 8)
fich = Dir
Set objrepInit = Fso.GetFolder(Chemin)
' Set oSousRep = objrepInit.SubFolders
For Each oSousRep In objrepInit.SubFolders
Call recher(oSousRep.Name)
Next oSousRep
Loop Until fich = vbNullString
, ----
[code.aspx?ID=41455 By Renfield]