macro recherche dossier windows

  • Initiateur de la discussion julos08
  • Date de début
J

julos08

Guest
Bonjour a tous,

Voila je cherche une macro qui analyserai mon disque dur et mafficherai dans une feuille excel tous les dossiers avec le mot clefs saisie auparavant.
Je mexplique.
Au demarrage de mon classeur une userform aparraitrai en me demandant de saisir un ou plusieur mots clefs.
Apres avoir saisie mes mots clefs il me chercherai sur le c: les dossiers et uniquement les dossiers contenant le ou les mots clefs dans son nom et me les afficherai dans une feuille excel.

D'avance merci

@++

Julos08
 
K

kloss

Guest
Hello
Je te joins vite fait une solution. Je dis vite fait parce qu'il faut penser aux erreurs du type : la rerchercher renvoie plus de 32267 résultats (overflow), le dossier n'est pas accessible en écriture, etc.
Il faut évidemment remplacer [BACKSLASH] par le signe approprié
En espérant que ça fonctionne chez toi

++


Code:
Dim fso As Object, fld As Object, iCounter As Integer, stComp

Sub StartScan()
    'coPath est le chemin du dossier dans lequel on effectue la recherche
    Const coPath = 'C:[BACKSLASH]Documents and Settings'
    stComp = vbNullString: iCounter = 0
    Do While Len(stComp) = 0
        stComp = InputBox('Entrez le nom à chercher')
    Loop
    stComp = '*' & LCase(stComp) & '*'
    Set fso = CreateObject('scripting.filesystemobject')
    Application.Cursor = xlWait
    Call ListFld(coPath)
    Application.Cursor = xlNormal
    MsgBox 'Recherche terminée !'
End Sub

Sub ListFld(stInput As String)
On Error Resume Next
    For Each fld In fso.getfolder(stInput).subfolders
        If LCase(fld.Name) Like stComp Then
            iCounter = iCounter + 1
            ActiveSheet.Range ('A' & iCounter)
            Range('A' & iCounter).Value = fld.Path
        End If
        Call ListFld(fld.Path)
        DoEvents
    Next fld
End Sub
 
K

kloss

Guest
Dsl pour la réponse multiple... :eek:

stComp doit être déclarée As String
La ligne
Code:
 ActiveSheet.Range ('A' & iCounter)
est à enlever

(histoire de t'éviter de chercher pourquoi elle est là...)
 

Discussions similaires

Réponses
20
Affichages
1 K

Statistiques des forums

Discussions
312 465
Messages
2 088 661
Membres
103 910
dernier inscrit
amor57