Bonjour le forum,

Je réalise un projet qui permet d'identifier les images ne possédant pas de mot clé dans leurs propriétés. Ces images sont référencées dans un tableau.

Une fois que le tableau est complété par ces nom d'images dans une autre colonne permet d'écrire le mot clé qu'on aimerait lui attribuer . J'aimerais enfin que lorsque je clique sur un bouton les propriétés de l'image soient modifiées et que le mot clé choisi soit mit dans les propriétés. Voici le code que j'ai pu trouver :

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
 
Dim Img As ImageFile
Dim IP As ImageProcess
Dim v As Vector
Dim i As Integer
Dim DL As Integer
 
'Création conteneur pour l'image à manipuler
Set Img = CreateObject("WIA.imageFile")
 
'creation du gestionnaire de filtre
Set IP = CreateObject("WIA.imageProcess")
 
'création d'un vecteur
'(Un vecteur permet de créer une collection pour des valeurs du même type.)
Set v = CreateObject("WIA.Vector")
 
DL = Range("Tableau2").Rows.Count
 
For ligne = 1 To DL
 
'chargement de l'image
Img.LoadFile "S:\Bibliotheques\" & Range("Tableau2[NOM IMAGE]")(ligne).Value
 
    'définit le filtre pour gérer l'EXIF
    IP.Filters.Add IP.FilterInfos("Exif").FilterID
    IP.Filters(1).Properties("ID") = 40094
        '40091  Titre
        '40092  Commentaire
        '40093  Auteur
        '40094  Mots clés
 
        'spécifie le type de valeur pour le propriété du filtre:
        'constante VectorOfBytesImagePropertyType = 1101 (la valeur est un vecteur)
        IP.Filters(1).Properties("Type") = VectorOfBytesImagePropertyType
        'voir le fichier d'aide fourni avec la librairie WIA pour
        'obtenir la liste des constantes disponibles
 
    'stocke une chaine de caractères dans le vecteur
    v.SetFromString Range("Tableau2[MOT CLE SUGGERE]")(ligne).Value
 
    'applique au filtre le contenu du vecteur
    IP.Filters(1).Properties("Value") = v
 
    'application du filtre dans l'image
    Set Img = IP.Apply(Img)
 
    'sauvegarde de l'image
    Img.SaveFile "S:\Bibliotheques\" & Range("Tableau2[NOM IMAGE]")(ligne).Value
 
Next

Ce code permet enfaite de copier l'image et de la recréer avec un mot clé or j'aimerais uniquement modifier les propriétés de l'image originale. J'arrive au bout de ce projet mais je suis totalement bloquée car je ne connais pas d'autres fonctions permettant de le faire... Si vous testez le code vous verrez que il vous renvoie un message d'erreur comme quoi l'image existe déjà ...

Je réfléchis en parallèle à une solution qui serait de supprimer l'image originale avant d'enregistrer la nouvelle mais j'ai peur que ça perde les liens et que je ne puisse plus enregistrer la nouvelle...

Et désolée par avance, non je ne peux pas partager le fichier car il contient des données confidentielles mais je peux fournir le code de la première partie décrite au début du post si ça en intéresse certains.

Bonne journée

Vos idées sont les bienvenues .....