Bonjour à tous,
Je reviens avec une autre idée avec le code ci-dessous que j'ai légèrement modifé avec quelques annotations de débutant (que je suis ,-)
Cette macro fonctionne bien et extrait seulement les exifs que l'on désire avec quelque prérequis.

Je ne sais pas faire, vous est-il possible de m'aider et de la modifié pour :
1- Aller chercher le répertoire par l'ouverture d'une boite (explorer ?), à la place de : Set objFolder = objShell.Namespace("C:\Users\PC\Pictures\Test")
2- Lister aussi tous les sous répertoires.

Merci beaucoup
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
'original ?
 
'Prérequis
'créer une feuille ''Code'' avec en tête en ligne 1:
'Colonne A les codes de toutes propriétés
'Colonne B les noms de ces propriétés
'Colonne C un X par exemple pour ne choisir que les plus utiles
'Colonne D index par ordre de péférence (noms que l'on veut, puis tris de A-Z sur colonne D)
'Colonne E les codes (colonne A) du tri de D
 
' Ne liste que le repertoire choisi (mais affiche les dossiers sous répertoire en nom)
 
Sub LireExifTags5()
Dim det_Headers(355)
 
Sheets("Code").Select
 
' compte le nbre de cellule non vide de la colonne E de la feuille 'Code'
LastRow = Cells(Rows.Count, 5).End(xlUp).Row
 
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("C:\Users\PC\Pictures\Test")
 
Workbooks(1).Sheets(1).Activate
    DernLigClear = Range("A" & Rows.Count).End(xlUp).Row
 
    Range("A2:OJ" & DernLigClear).ClearContents 'jusqu'a la colonne 400
 
For i = 2 To LastRow
c = i - 2
k = Worksheets("Code").Cells(i, 5) 'Seulement les exifs que l'on désire
 
det_Headers(c) = objFolder.GetDetailsOf(objFolder.Items, k)
ActiveSheet.Cells(2, c + 1) = det_Headers(c) 'headers en ligne 2
 
Workbooks(1).Sheets(1).Activate
j = 3 ' pour datas en ligne 3
 
For Each strFileName In objFolder.Items
For m = 1 To LastRow
Next
 
Sheets(1).Cells(j, i - 1).Value = objFolder.GetDetailsOf(strFileName, k)
 
j = j + 1
 
Next
Next
 
'Columns("A:z").AutoFit
ActiveSheet.UsedRange.EntireColumn.AutoFit
End Sub