Afficher un message
Vieux 24/06/2007, 17h33   #1 (permalink)
MichelXld
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 749
Par défaut ClasseFileSearch pour Excel2007

bonjour


Il semblerait que la fonction FileSearch ne soit plus supportée dans Office2007, ce qui est bien dommage.

Le complément ci joint permet de remplacer la fonction FileSearch. Le classeur xla contient un module de classe ClasseFileSearch pour gérer la recherche de fichiers sur votre PC.


La procédure recherche des fichiers en fonction des critères spécifiés:
* Le répertoire
* Option pour rechercher dans les sous dossiers
* Option pour rechercher un type de fichier spécifique
* Option de tri

et renvoie le résultat dans un tableau :
* Le nom des fichiers
* Le chemin
* La taille des fichers (en octets)
* La date de création
* La date de dernière modification
* Le type de fichier


Installez la macro complémentaire dans le dossier qui leur ai réservé.
Les fichiers .xla Excel2007 sont généralement stockés dans le répertoire:
C:\Documents and Settings\NomUtilisateur\Application Data\Microsoft\AddIns


Ensuite, pour que le complément soit opérationnel à chaque ouverture de l'application:
Cliquez le bouton "Office".
Cliquez sur le bouton "Options Excel".
Sélectionnez le menu "Compléments".
Choisissez "Compléments Excel" dans le menu déroulant "Gérer" (en bas de la fenêtre).
Cliquez sur le bouton "Atteindre:"
La fenêtre qui s'affiche est identique aux versions antérieures d'Excel.
Cochez le complément "Classefilesearch".
Cliquez sur le bouton "OK" pour valider.


Désormais, lorsque vous souhaitez utilisez cette fonction de recherche, il suffit d'activer la référence:
Dans l'éditeur de macro
Menu Outils
Références
Cochez la ligne "ClFileSearch"
Cliquez sur le bouton OK pour valider.



Et vous pouvez utiliser une procédure de ce style:

Code:
Sub Test()
'Nécessite d'activer la référence ClFileSearch
'(Dans l'éditeur de macros: Menu Outils/Références)
Dim i As Long
Dim Recherche As ClFileSearch.ClasseFileSearch
 
 
Set Recherche = ClFileSearch.Nouvelle_Recherche
 
With Recherche
    'Répertoire de recherche
    .FolderPath = "C:\Documents and Settings\mimi\dossier\excel"
 
    'Recherche dans les sous dossiers
    .SubFolders = False
 
    'Option de tri:
    '(Sort_None, sort_Name, sort_Path, sort_Size, sort_DateCreated, sort_LastModify, sort_Type)
    'Pas de tri si non spécifié
    .SortBy = sort_Name
 
    'Option pour rechercher un type de fichier
    '(Renvoie tous les fichiers si non spécifié)
    .Extension = "*.xls"
 
    'Execute la recherche
    .Execute
 
    'Boucle sur le tableau pour afficher le résultat de la recherche
    '(.FoundFilesCount renvoie le nombre de fichiers trouvés)
    For i = 1 To .FoundFilesCount
        Debug.Print .Files(i).strNom 'nom
        Debug.Print .Files(i).strChemin 'chemin complet
        Debug.Print .Files(i).lngTaille & "  octets" 'taille
        Debug.Print .Files(i).DateCreated 'date création fichier
        Debug.Print .Files(i).DateLastModified 'date dernière modification
        Debug.Print .Files(i).TypeFichier 'type de fichier
 
        Debug.Print "---"
    Next
End With
 
Set Recherche = Nothing
 
End Sub


Nota.
La procédure fonctionne aussi dans Excel2002 ... ;o)



Bon après midi
MichelXld
Fichiers attachés
Type de fichier : zip ClasseFileSearch.zip (20,7 Ko, 97 affichages)

Dernière modification par MichelXld ; 25/06/2007 à 20h21.
MichelXld est déconnecté   Réponse avec citation
ANNONCES