T103
Messages postés177Date d'inscriptionlundi 11 août 2003StatutMembreDernière intervention21 avril 2010
-
25 mars 2008 à 10:17
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 2012
-
25 mars 2008 à 10:25
Bonjour,
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...
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 25 mars 2008 à 10:25
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]