[VBA]Filesearch sans raccourci

Résolu
cs_vevel Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2017 - 23 oct. 2012 à 21:32
cs_vevel Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2017 - 28 oct. 2012 à 22:45
Bonjour,

Je cherche, à mon travail, a faire une liste des fichiers contenus dans un repertoire avec VB et excel 2003.
Bon jusque la rien de bien méchant voici mon code:

With Application.FileSearch
.NewSearch
.LookIn = ThisWorkbook.Path
.SearchSubFolders = True
For i = 1 To .FoundFiles.Count
Cells(i, 1) = CreateObject("Scripting.FileSystemObject").GetFile(.FoundFiles(i)).Name
Cells(i, 2) = CreateObject("Scripting.FileSystemObject").GetFile(.FoundFiles(i)).ParentFolder
Cells(i, 3) = CreateObject("Scripting.FileSystemObject").GetFile(.FoundFiles(i)).Size
Cells(i, 4) = CreateObject("Scripting.FileSystemObject").GetFile(.FoundFiles(i)).Type
Cells(i, 5) = CreateObject("Scripting.FileSystemObject").GetFile(.FoundFiles(i)).DateCreated
Cells(i, 6) = CreateObject("Scripting.FileSystemObject").GetFile(.FoundFiles(i)).DateLastModified
Cells(i, 7) = CreateObject("Scripting.FileSystemObject").GetFile(.FoundFiles(i)).DateLastAccessed
Next i
End With

Mon problème, c'est lorsque la macro tombe sur un raccourci, elle me donne les infos du fichier auquel correspond ce raccourci. Ce que je n'est pas besoin, car du coup ca me rajouter des fichiers qui ne sont pas dans mon dossier.
Et pire encore, il me semble que lorsque c'est le racourci d'un dossier, et bien ca plante ma macro.
J'ai regardé si mes raccourci avaient une extension particulière, mais rien de ce côté la.

Est-il possible de faire un filesearch sans les raccourcis?

Question bonus, et pour ma connaissance personnelle, est-il possible sur VB et excel 2007 d'avoir le DateLastAccessed d'un fichier? Je regardais juste comme le file search se faisait avec 2007 mais on ne l'a pas au travail. donc pas possible de faire c'est juste pour ma connaissance perso.

Merci d'avance pour votre aide.

Cordialement.

Vevel

12 réponses

Utilisateur anonyme
24 oct. 2012 à 02:57
Bonjour,

Je n'ai pas Excel 2003, et application.filesearch n'est plus supporté. Donc, je n'ai pas vraiment de réponse à ta question. Quoi qu'il en soit, si application.filesearch ne retourne pas les propriétés de base des fichiers (vérifie dans l'aide), tu n'as absolument pas besoin de 7 objets FSO. Un seul suffit, et encore faut-il que tu ne puisses pas les avoir à partir de application.filesearch.


Question bonus, et pour ma connaissance personnelle, est-il possible sur VB et excel 2007 d'avoir le DateLastAccessed d'un fichier? Je regardais juste comme le file search se faisait avec 2007 mais on ne l'a pas au travail. donc pas possible de faire c'est juste pour ma connaissance perso.


Dans VBA Excel 2010, il suffit d'écumer les Workbook.BuiltinDocumentProperties. Si cela ne fonctionne pas avec Excel 2003, tu peux toujours regarder du côté de DSOFile.dll.
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 oct. 2012 à 08:03
Bonjour,
1) il est assez maladroit d'utiliser Application.Filesearch. Tu compromets en effet la portabilité de ton application, l'objet Filesearch n'étant plus supporté au-delà de la version 2003 de Office.
Préfère l'utilisation simple et efficace de la fonction Dir de VBA.
2) il est également assez maladroit d'utiliser en plus FSO car :
a) également risque de portabilité (VBS et donc FSO étant inhibés sur leur machine par certains, dont moi)
b) en chargeant FSO, tu alourdis considérablement ton appli (un p)eu comme si tu déplacer un camion rempli de deux tonnes d'outils pour ne finalement utiliser qu'un tournevis du lot !!!)

PS : le nombre de discussions existantes sur ce forum à ce propos est très élevé !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
3
cs_vevel Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2017 1
24 oct. 2012 à 18:25
Merci de vos réponses,

Pour l'histoire des 7 FSO, je dois obtenir les infos sur ces fichiers, donc nécessaire évidemment.

Quelques questions tout de même sur vos commentaires:
1) s'il est maladroit d'utiliser application.filesearch, que dois-je utiliser à la place? Y'a-t-il une fonction qui marcherait sur 2003 et 2007?
2) Par quoi remplacer FSO alors? y a-t-il une autre façon d'obtenir les infos des fichiers?
3) Concernant le DSOFile.dll, j'ai l'impression que cela sert a changer les proriétés genre "readonly".

Et a par cela, pas de réponse concernant les raccourcis?

Merci d'avance.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 oct. 2012 à 18:27
s'il est maladroit d'utiliser application.filesearch, que dois-je utiliser à la place? Y'a-t-il une fonction qui marcherait sur 2003 et 2007?

As-tu ma réponse attentivement ? Je ne le crois pas

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_vevel Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2017 1
24 oct. 2012 à 18:28
Et comment fonctionne concrètement la fonction DIR???
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 oct. 2012 à 18:35
Commence s'il te plait par ouvrir ton aide VBA ===>> mot clé ... DIR !
Rubrique de surcroît accompagnée d'un exemple.
Reviens, si encore en difficulté sur ce point, avec le code que tu auras "bien voulu" tenter d'écrire après cette lecture.
Prends ton temps, mais bûche un peu (pas de développement sans cet effortr, hein ...)
Ce ne sera qu'après cette étape, que tu pourras aborder le reste (LastAccess Date)
Et ce sera alors bien plus complexe que l'utilisation de Dir, qui te pose DEJA (?) problème !
Si tu veux en avoir un petit aperçu (du reste) ===>>
Tapez le texte de l'url ici.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
25 oct. 2012 à 08:25
Je viens de te relire :
J'ai regardé si mes raccourci avaient une extension particulière, mais rien de ce côté la.

Tu t'es probablement contenté de regarder ce que "t'offrait" (t'affichait) la fenêtre de l'explorateur !
Ce qui y est affiché pour ton confort n'est pas forcément le nom exact
Bien que tu ne la voies pas (non affichée et "compensée" par le rajout de "Raccourci ..."), ces raccourcis ont tous pour extension finale l'extension .lnk. (exemple : "D:\toto\titi.txt.lnk" affichée par l'explorateur pour ton confort "Raccourci vers D:\toto\titi.txt"
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
25 oct. 2012 à 08:33
Pardon ===>> lire "Raccourci vers titi.txt"
Seul le nom du fichier (sans le chemin complet)

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Utilisateur anonyme
25 oct. 2012 à 17:04
Bonjour,


Pour l'histoire des 7 FSO, je dois obtenir les infos sur ces fichiers, donc nécessaire évidemment.


Justement non. Un seul objet FSO suffit. Même qu'en utilisant deux objets FSO, pas un de plus, tu peux balayer tout ton dossier sans Filesearch et sans DIR(). Mais DIR() est probablement plus rapide.

Regarde là

C'est un site à connaître pour Excel
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
25 oct. 2012 à 17:16
Bonjour, cmarcotte,
Je crois bien que, s'il cherchait un peu à l'aide du moteur de recherche de ce forum, il trouverait une discussion (qui est presque un tuto à elle-seule), discussion à laquelle j'ai participé et dans laquelle j'ai mis des bouts de code utilisant la fonction Dir de manière "progressive" (en commençant par les seuls fichiers d'un dossier spécifié pour terminer par une récursivité traitant tous les fichiers de tous les dossier et sous-dossiers)


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Utilisateur anonyme
25 oct. 2012 à 17:41
Bonjour ucfoutu

Oui, cela me reviens maintenant. Lui, il me fait penser à ton "autre client" qui a reposé sa question 2 fois en quelques heures, ou à l'autre que j'ai "sermonné" au sujet de son contrôle image et de l'aide qu'il n'avait visiblement pas consultée.

Nous n'y pouvons rien, mais il y a trop de sociétés qui négligent la formation de leurs employés et qui comptent sur les forums pour la faire à leur place. Mais le plus bizarre, ce sont ces étudiants en PFE, ou en stage, qui ne savent pas programmer et qui se réveillent avec un statut de programmeur. On dirait qu'il y a un problème à quelque part...
0
cs_vevel Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2017 1
28 oct. 2012 à 22:45
Merci Cmarotte pour ton lien, j'essayerais cela au travail demain.

Quand a cette discussion, je pourrais bien poser la question de départ 15 fois que je n'aurait pas la réponse à ma question initiale: "pourquoi le filesearch me renvoi D:\toto\titi.txt en non pas C:\titi.link???", ce dont je ne sais toujours pas.

Désolé de ne pas être programmateur de formation, de ne pas connaître tous les bidouilles VBA, et désolé de ne pas avoir eu de formation VBA, et non je ne prétends pas être programmeur loin de la.
0
Rejoignez-nous