XL 2016 Lister fichiers avec Exifs et propriétés (suivant son choix) - code à modifier

re4

XLDnaute Occasionnel
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

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:
Solution
OK. Si le titre de la colonne E est "Ordre" la formule serait mieux avec =SI([@Ordre]>0;"Oui";"Non")
C'est une syntaxe propre aux tableaux structurés (le symbole @ représente la ligne courante).

Mais à partir du moment où c'est le chiffre qui déclenche l'affichage, on peut se passer de la colonne "Afficher".
Voici une version qui, selon ta préférence, utilise la colonne Ordre (de classement) dont la gestion requiert la ré-attribution des numéros et le tri du tableau (bouton dédié) en cas de modification de classement.
Pour le centrage vertical des lignes tu as une idée ?
Une instruction VBA.

Fichier mis à jour 21/04/2021 14h32

re4

XLDnaute Occasionnel
Bonjour dudu2
Merci pour ces modifs, ce que je voulais dire mais c'est certainement très improbable, est que si avant le lancement du GO les largeurs des colonnes sont équivalentes ou plus grandes que se qui va être extrait alors tout es ok.
Mais cas certainement improbable si ces colonnes sont plus petites l'autofit ne réagit pas comme l'on voudrait, c'est à dire que si les extraits d'une colonne sont plus petits que le titre alors l'autofit (largeur de la colonne) ne se fait que sur les extractions et pas sur le titre qui lui est plus large, ce n'est pas vraiment un problème.
C'est un constat chez moi et qui ne remet absolument pas cause ton super travail.

Mille et un mercis ,-)
Bonne journée
 

Dudu2

XLDnaute Barbatruc
Mais cas certainement improbable si ces colonnes sont plus petites l'autofit ne réagit pas comme l'on voudrait, c'est à dire que si les extraits d'une colonne sont plus petits que le titre alors l'autofit (largeur de la colonne) ne se fait que sur les extractions et pas sur le titre qui lui est plus large,
Dans le fichier du post #44 les colonnes s'ajustent sur le titre si le titre est plus grand que les valeurs.

En manipant sur la largeur des colonnes, en effet, l'Autofit sur la colonne ne fonctionne plus et la ligne de titre ne semble plus considérée dans l'Autofit. Même manuellement !!!
Malgré mes recherches, je ne sais pas pourquoi !
 
Dernière édition:

re4

XLDnaute Occasionnel
Aucune importance, c'est gérable.
Je n'arrive pas à faire fonctionner la recherche des mots clés la réponse est 0 fichier(s) listé(s).
Encore une fois je peux m'en passer, c'était pour voir comment ça fonctionnait, je me plonge petit à petit dans les méandres de ton programme ;-)
 

Dudu2

XLDnaute Barbatruc
Pour les mots-clés c'est juste pour citer des mots ou chaines de caractères faisant partie des noms de fichiers.
Je m'en sers tout le temps sur mes répertoires où les noms de mes photos comportent la date, le lieu, le nom et prénom des personnes. Rien de compliqué.
 
Dernière édition:

re4

XLDnaute Occasionnel
Pour les mots-clés c'est juste pour citer des mots ou chaines de caractères faisant partie des noms de fichiers.
Ok, je croyais que c’était les mots clés qu'il y a dans les Exifs
mots clés.JPG

du coup, j'ai ajouté ça
'Choix des mots clés
'x avec ou sans popup
If AfficherPopUpMotsCles = True Then UserForm_MotsClés.Show

Tu es d'accord ?

faut élargir les colonnes un maximum avant de les mettre en autofit
Oui, c'est ce que j'avais constaté lors des essais

Encore un mystère, ça trouve les CR2 et les TIF mais pas les ARW, c'est pas grave tu y as passé beaucoup de temps...
Edit; erreur de ma part j'avais laissé RAW et non ARW, tout est ok donc
 
Dernière édition:

re4

XLDnaute Occasionnel
Oui :
Afficher le popup gadget de saisie des mots clés des noms de fichiersNon

J'ai un doute, je pensais que les Shapes étaient juste un lien, mon fichier test excel fait plus de 200 Mo avec une image tif (174Mo) et un CR2. Si ce n'est pas le cas il va remplir mon disque si je scanne tout le répertoire photo ;-)
 
Dernière édition:

re4

XLDnaute Occasionnel
désolé Dudu2, je n'y arrive pas ! Comment faire pour ne pas lance ''UserForm_MotsClés''
'Choix des mots clés
UserForm_MotsClés.Show
Ou alors simuler ''Ignorer"" de cet Useform

Je suis parti de la :
AfficherPopUpMotsCles = UCase(Trim(TblOptions.DataBodyRange.Cells(11, 2).Value)) = "Oui"

Par exemple If AfficherPopUpMotsCles = False Then (Ignorer)
Juste un truc simple sans faire un nouveau fichier

Il faudrait avoir un outil de conversion
Je comprends donc que ce n'est pas simplement un lien ?

Merci
 

Dudu2

XLDnaute Barbatruc
Je comprends donc que ce n'est pas simplement un lien ?
Un lien ne permet pas d'afficher une image.
Ce qui est possible de faire pour les fichiers Raw , c'est de ne pas afficher la miniature de l'image et la remplacer par un texte ou une image spéciale mais conserver l'hyperlien sur l'image réelle.

Je n'arrive pas à avoir l'option Modifier pour le post #44 donc je te mets ici le fichier avec l'option de saisie des mots-clés.

Fichier supprimé.
 
Dernière édition:

re4

XLDnaute Occasionnel
Bonjour,
Les mots clés et interprétation de ''mots clés''
Dans ton programme tu utilises comme mots clés une partie du nom du fichier pour retrouver ton fichier.
J'ai une autre approche qui est une approche photographique en effet si l'on renseigne des mots clés dans les exits avec un logiciel de catalogage type Lightroom ou autres (...) ou directement dans mots clés des propriétés des fichiers, ces mots sont inscrits dans le détail des propriétés des fichiers.
L'avantage est qu'il n'y pas de limitation et que l'on peut faire une recherche de ces mots directement dans l'explorateur Windows pour retrouver la ou les photos.

Rien de nouveau donc que tu sais déjà ,-)
Bonne journée

Edit :
Si tu as envie et le temps, est-ce simple (sans trop modifier le fichier) de mettre le nom du fichier en 1er colonne au lieu du chemin ? Ca oblige à modifier beaucoup de paramètres ?
Merci
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Voilà le fichier pour ta recherche de mots-clés.

J'ai trouvé un moyen de convertir les images mais pas encore testé.
Je suppose qu'on peut au moins convertir entre eux les formats disponibles en constantes:
wiaFormatBMP, wiaFormatPNG, wiaFormatGIF, wiaFormatJPEG, ou wiaFormatTIFF.
Je ne sais pas si on peut partir d'une .cr2 ou d'une .arw. Il faut tester mais je n'ai pas d'image de cette sorte.

Edit: Pour la conversion j'ai trouvé mieux:
 

Pièces jointes

  • Tags Exif Images Répertoire - Colonne Ordre.xlsm
    140.7 KB · Affichages: 27
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 167
Messages
2 085 904
Membres
103 028
dernier inscrit
MLAGHITI