Liste des sous-doussiers et comptabiliser leurs fichiers

fabefouge Messages postés 6 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 20 avril 2011 - 20 avril 2011 à 11:30
fabefouge Messages postés 6 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 20 avril 2011 - 20 avril 2011 à 18:15
Bonjour,

J'ai actuellement un code qui identifie les sous-répertoires créé à la date du jour et comptabilise le nombre de fichiers dans chacun d'eux. Jusque là tout va bien....

Quelqu'un à eu la bonne idée de paralléliser les traitements et je suis maintenant dans l'obligation de changer une partie de mon code en ajoutant un nouveau contrôle....

Effectivement, il faudrait désormais identifier les sous-répertoires créés depuis J-1 19:00 (=> mon contrôle s'exécute à J 06:00) et comptabiliser comme avant le nombre de fichiers dans chacun d'eux.

Voici mon code actuel :

************************************************************************
Option Explicit
Const MyFile = "D:\TopxAgent\FicDO_BTCH.TXT"
Dim objFso, objTextFile
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFso.CreateTextFile(MyFile, True)

Call FnShowFolderList("P:\K\ARCHIVE\Batch", Date)

objTextFile.Close
Set objTextFile = Nothing
Set objFso = Nothing
'################################################
Function FnShowFolderList(argPath, argDate)
Dim objSubFolderItem

If Not objFso.FolderExists(argPath) Then Exit Function

For Each objSubFolderItem In objFso.GetFolder(argPath).SubFolders
If DateValue(objSubFolderItem.DateCreated) = argDate Then
objTextFile.Write objSubFolderItem.Path & Space(1) &_
objSubFolderItem.Files.Count & vbcrlf
End If
FnShowFolderList objSubFolderItem.Path, argDate
Next
End Function

************************************************************************

J'ai essayé de modifier mon code en jouant avec la valeur DateLasModified mais en vain...... Je suis complètement bloqué et ne vois pas comment m'en sortir. Peut-être quelqu'un aurait une idée à me proposer !!!!

Vous remerciant par avance ;)

Tchou

4 réponses

Utilisateur anonyme
20 avril 2011 à 14:11
Bonjour,
Alors pour moi il suffit de changer :

Call FnShowFolderList("P:\K\ARCHIVE\Batch", Date)

Par

Dim dateToSearch = 'XX/XX/XXXX'
Call FnShowFolderList("P:\K\ARCHIVE\Batch", dateToSearch)

ou un truc dans le genre (je ne bosse pas beaucoup avec VB)
0
fabefouge Messages postés 6 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 20 avril 2011
20 avril 2011 à 14:33
Bonjour alexandrevandenberghe,

Le principe est là, je suis d'accord avec toi mais je dois l'automatiser donc il faut définir cette variable date à J-1 et en plus positionner une condition de façon à ne récupérer que les sous-répertoires créés à partir de 19h00(=> de J-1 biensur).....

On progresse ;)

Merci encore

Tchou
0
Utilisateur anonyme
20 avril 2011 à 15:36
Salut,
Alors c'est codé avec Excel 2010, en esperant que cela fonctionne pour toi:

************************************************************************
Option Explicit
Const MyFile = "D:\TopxAgent\FicDO_BTCH.TXT"
Dim objFso, objTextFile
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFso.CreateTextFile(MyFile, True)

[b]Dim dateToSearch As Date
dateToSearch = DateAdd("d", -1, Date) & " 19:00:00"/b

Call FnShowFolderList("P:\K\ARCHIVE\Batch", dateToSearch )

objTextFile.Close
Set objTextFile = Nothing
Set objFso = Nothing
'################################################
Function FnShowFolderList(argPath, argDate)
Dim objSubFolderItem

If Not objFso.FolderExists(argPath) Then Exit Function

For Each objSubFolderItem In objFso.GetFolder(argPath).SubFolders
If objSubFolderItem.DateCreated >= argDate Then
objTextFile.Write objSubFolderItem.Path & Space(1) &_
objSubFolderItem.Files.Count & vbcrlf
End If
FnShowFolderList objSubFolderItem.Path, argDate
Next
End Function

************************************************************************
0
fabefouge Messages postés 6 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 20 avril 2011
20 avril 2011 à 18:15
Et bien un grand merci pour ton code. J'ai juste modifié la ligne :

Dim dateToSearch As Date par Dim dateToSearch

et ça marche nikel ;)

Encore merci et bonne continuation


Tchou
0
Rejoignez-nous