Bonjour,

Je peine et n'arrive a rien sur un probleme qui trouve une solution en VB pourtant ...

voici :

Je souhaite récuperer une liste sous excel des fichiers (.doc, .xls .ppt .jpg .avi ...) présents dans un répertoire et ses sous repertoires avec certaines proprietés et surtout : les mots-clés que j'ai mis à la main sur chaque fichier dans l'onglet résumé...

En cherchant, j'ai trouvé de quoi lire certaines propriétés mais pas celle contenant les mots clé. J'ai bien trouvé une source en VB mais je ne sais pas l'utiliser en VBA.

Je vous donne ci dessous la macro actuelle, merci de votre aide car je patauge depuis plusieurs jours !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Sub ProprietesDesFichiers()
    'source:
    'http://www.microsoft.com/resources/documentation/windows/2000/server/
    'scriptguide/en-us/sas_fil_lunl.mspx
    '
    'Nécessite d'activer la référence Microsoft Shell Controls and Automation
    '
    Dim objShell As Shell32.Shell
    Dim strFileName As Shell32.FolderItem
    Dim objFolder As Shell32.Folder
    Dim propriete(34) As String, Reponse As String
 
    Dim i As Byte, j As Byte, ligne As Byte, entete As Byte
 
 
 
    repertoire = ThisWorkbook.Path    ' adapter
    entete = 2
    ligne = 3
    colonne = 1
 
 
    Set objShell = CreateObject("Shell.Application")
 
    'Répertoire cible
    Set objFolder = objShell.Namespace(repertoire)
 
    ' poser ligne de titre
 
    For i = 0 To 34
        Cells(entete, colonne + i) = objFolder.getDetailsOf(objFolder.Items, i)
    Next
 
 
 
    'boucle sur tous les elements du repertoire
    For Each strFileName In objFolder.Items
 
            'vider la table à chaque fois
            For i = 0 To 34
                propriete(i) = ""
            Next
 
        'Pour que les dosssiers ne soient pas pris en comptes
        If strFileName.isFolder = False Then
 
 
            For i = 0 To 34
               ' If objFolder.getDetailsOf(strFileName, i) <> "" Then
                    propriete(i) = objFolder.getDetailsOf(strFileName, i)
            Next
 
        End If
 
        colonne = 1
        For i = 0 To 34
            Cells(ligne, colonne + i) = propriete(i)
        Next
 
        ligne = ligne + 1
 
    Next
End Sub
Si quelqu'un peut m'apporter ses lumières, j'ai vu que d'autres cherchent à faire des choses similaires...
Alain