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

MJ13

XLDnaute Barbatruc
Bonjour à tous

Désolé, mais j'ai pas tous suivi, Juste une remarque: quand vous enregistrer un fichier Excel, vous pouvez choisir la résolution pour les images dans les options avec F12 ou Enregistrer-sous..

Sinon, j'avais testé pour la taille des fichiers et c'était en . Gif que 27 images engendrait un fichier de 2 Mo contre 22 Mo dans d'autres format d'images. Bon après, la qualité s'en ressent un peu.
 

Pièces jointes

  • ExcelCompresisonImages.jpg
    ExcelCompresisonImages.jpg
    72.7 KB · Affichages: 31

re4

XLDnaute Occasionnel
Oui tu as raison je ne sais pas pourquoi je viens de re tester le fichier du post 114 effectivement il y a un message echec après ajout de ta ligne sur arw,cr2 et tif mais les miniatures cr2 et arw s'affichent pour la tif il y a ''nous ne pouvons pas afficher l'image''
 

re4

XLDnaute Occasionnel
Bonjour à tous

Désolé, mais j'ai pas tous suivi, Juste une remarque: quand vous enregistrer un fichier Excel, vous pouvez choisir la résolution pour les images dans les options avec F12 ou Enregistrer-sous..

Sinon, j'avais testé pour la taille des fichiers et c'était en . Gif que 27 images engendrait un fichier de 2 Mo contre 22 Mo dans d'autres format d'images. Bon après, la qualité s'en ressent un peu.
Bonjour,
Il est sur 150ppp on peut descendre à 96 mais ça ne va pas changer grand chose
L'autre sélection ''utiliser la résolution par defaut'' ne donne pas le nbre de ppp
Une question : est-ce que les shapes sont considérées comme une copie d'image ?
 

Dudu2

XLDnaute Barbatruc
Il me semble que j'ai oublié d'inclure cette bibliothèque dans le code de "Tags Exif Images Répertoire - Colonne Ordre.xlsm":
1619361672930.png

S'il y a une version plus avancée dans Windows 10 (version > 2.0) , utilise-la et ajoute-la dans les References VBA.
(Panneau VBA / Outils / References)
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Une question : est-ce que les shapes sont considérées comme une copie d'image ?
Non. L'image est incluse dans la Shape au lieu d'être directement en position indiquée en feuille.
A mon avis ça ne change rien au problème.
Mais si tu veux essayer sans la Shape il suffit de supprimer la ligne
VB:
msoShape:=msoShapeRectangle, _
1619362340281.png

De mon point de vue c'est important d'arriver à faire fonctionner la conversion pour avoir des miniatures. Évidemment, sans Windows 10, c'est difficile de la trouver. Je ne peux faire que des suppositions et pas de tests.
 

re4

XLDnaute Occasionnel
Il me semble que j'ai oublié d'inclure cette bibliothèque dans le code de "Tags Exif Images Répertoire - Colonne Ordre.xlsm":
Regarde la pièce jointe 1103389
S'il y a une version plus avancée dans Windows 10 (version > 2.0) , utilise-la et ajoute-la dans les References VBA.
(Panneau VBA / Outils / References)

Effectivement ce n'était pas activé mais malheureusement le problème persiste
 

Dudu2

XLDnaute Barbatruc
Effectivement ce n'était pas activé mais malheureusement le problème persiste
En attendant de comprendre ce bazar Windows (je vais poster un sujet spécifique) il ne reste qu'une solution pour garder un fichier Excel de taille acceptable, c'est de ne pas générer les miniatures pour les conversions qui ont échouées.
A propos, les TIF devraient fonctionner maintenant que tu as ajouté la librairie ad hoc.
 

re4

XLDnaute Occasionnel
Non. L'image est incluse dans la Shape au lieu d'être directement en position indiquée en feuille.
A mon avis ça ne change rien au problème.
Mais si tu veux essayer sans la Shape il suffit de supprimer la ligne
VB:
msoShape:=msoShapeRectangle, _
Regarde la pièce jointe 1103394
De mon point de vue c'est important d'arriver à faire fonctionner la conversion pour avoir des miniatures. Évidemment, sans Windows 10, c'est difficile de la trouver. Je ne peux faire que des suppositions et pas de tests.

Effectivement avec ou sans shape le poids du fichier est identique
 

re4

XLDnaute Occasionnel
En attendant de comprendre ce bazar Windows (je vais poster un sujet spécifique) il ne reste qu'une solution pour garder un fichier Excel de taille acceptable, c'est de ne pas générer les miniatures pour les conversions qui ont échouées.
A propos, les TIF devraient fonctionner maintenant que tu as ajouté la librairie ad hoc.
A propos, les TIF devraient fonctionner maintenant que tu as ajouté la librairie ad hoc.
Non chez moi ça affiche image non trouvée, comme je le disais mais les raw s'affichent avec échec de conversion
Autre précision : sur certains les APN plein format chaque raw peut faire plus de 50Mo
 

Dudu2

XLDnaute Barbatruc
Voici le fichier qui en cas d'erreur de conversion, affiche une miniature par défaut au lieu du fichier (RAW) non converti pour alléger le fichier Excel.

Si t'as des trucs à ajouter, peut-être vaut-il mieux m'en faire part. Ce sera plus facile pour moi de les placer dans le code.
 

Pièces jointes

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

re4

XLDnaute Occasionnel
Voici le fichier qui en cas d'erreur de conversion, affiche une miniature par défaut au lieu du fichier (RAW) non converti pour alléger le fichier Excel.

Si t'as des trucs à ajouter, peut-être vaut-il mieux m'en faire part. Ce sera plus facile pour moi de les placer dans le code.
effectivement ça n'a pas converti les raw et pas reconnu le tif, j'admire ta patience (avec post 131)
Capture 131.PNG

Je te fais une liste pour demain, c'est juste des idées non indispensable
 

Dudu2

XLDnaute Barbatruc
Ton truc me parait bizarre.
Si tu mets TIF dans les extensions à convertir soit tu obtiens "Miniature non disponible" soit tu obtiens une JPEG. Or dans ton cas tu obtiens typiquement ce qui s'affiche avec un TIF non converti. Donc je ne comprends pas.

Voici pour moi:
1619379967241.png
1619380012888.png
 

Discussions similaires

Statistiques des forums

Discussions
315 094
Messages
2 116 156
Membres
112 672
dernier inscrit
djudju