Edit 19/04/2021 : Les solutions sont aux posts #28 et #44 un grand merci à Dudu2
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 à partir du dossier racine tous les fichiers de tous les sous répertoires.
Merci beaucoup
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 à partir du dossier racine tous les fichiers de tous les sous répertoires.
Merci beaucoup
VB:
'original ?
'https://www.excel-downloads.com/threads/macro-pour-extraire-l
'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
Dernière édition: