[VBA]Filesearch sans raccourci [Résolu]

cs_vevel 62 Messages postés jeudi 26 mai 2005Date d'inscription 30 mai 2017 Dernière intervention - 23 oct. 2012 à 21:32 - Dernière réponse : cs_vevel 62 Messages postés jeudi 26 mai 2005Date d'inscription 30 mai 2017 Dernière intervention
- 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
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Utilisateur anonyme - 24 oct. 2012 à 02:57
3
Merci
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.

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 24 oct. 2012 à 08:03
3
Merci
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

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de ucfoutu
cs_vevel 62 Messages postés jeudi 26 mai 2005Date d'inscription 30 mai 2017 Dernière intervention - 24 oct. 2012 à 18:25
0
Merci
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.
Commenter la réponse de cs_vevel
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 24 oct. 2012 à 18:27
0
Merci
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
Commenter la réponse de ucfoutu
cs_vevel 62 Messages postés jeudi 26 mai 2005Date d'inscription 30 mai 2017 Dernière intervention - 24 oct. 2012 à 18:28
0
Merci
Et comment fonctionne concrètement la fonction DIR???
Commenter la réponse de cs_vevel
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 24 oct. 2012 à 18:35
0
Merci
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
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 25 oct. 2012 à 08:25
0
Merci
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
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 25 oct. 2012 à 08:33
0
Merci
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
Commenter la réponse de ucfoutu
Utilisateur anonyme - 25 oct. 2012 à 17:04
0
Merci
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
Commenter la réponse de Utilisateur anonyme
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 25 oct. 2012 à 17:16
0
Merci
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
Commenter la réponse de ucfoutu
Utilisateur anonyme - 25 oct. 2012 à 17:41
0
Merci
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...
Commenter la réponse de Utilisateur anonyme
cs_vevel 62 Messages postés jeudi 26 mai 2005Date d'inscription 30 mai 2017 Dernière intervention - 28 oct. 2012 à 22:45
0
Merci
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.
Commenter la réponse de cs_vevel

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.