Critère de recherche autre que par le nom

PAT0051

XLDnaute Nouveau
Bonjour à tous,

Quand on regarde dans l'explorateur Windows en mode détail, on remarque plusieurs colonnes, le nom, la date de modification et d'autres critères dont «mots-clés*»
J'ai trouvé le moyen de remplir se champs manuellement en cliquant sur propriété, détails ou Enregistrer sous. Le but étant d'avoir un autre critère de recherche que le nom du fichier
Mais je souhaiterai que cette donnée soit issu d'une cellule du fichier Excel et enregistré automatiquement.
Existe-t-il une solution ?
 
G

Guest

Guest
Re : Critère de recherche autre que par le nom

Bonjour,

Voici de quoi ajouter ou supprimer un mot clef dans les propriétés de documents. Si ton mot clef est dans A1 par exemple, tu peux mettre: AjouterMotClef Range("A1")

A mettre dans un module général
Code:
Sub AjouterMotClef(Motclef As String, Optional sep As String = ",")
'sortir si MotClef est une chaine vide
If Trim(Motclef) = "" Then Exit Sub
Dim tmp 'contiendra un tableau provisoire des mots clefs
With ThisWorkbook.BuiltinDocumentProperties("Keywords")
    'si le mot clef n'existe pas dans la chaine des mots clefs
    If InStr(1, LCase(.Value), LCase(Motclef), vbTextCompare) = 0 Then
        'obtenir un tableau temporaire des mots clefs
        tmp = Split(Trim(.Value), sep)
        'si le tableau (d'indice 0) contient au moins 1 mot clef
        If UBound(tmp) > -1 Then
               ReDim Preserve tmp(0 To UBound(tmp) + 1)
                tmp(UBound(tmp)) = Motclef
                .Value = Join(tmp, sep & " ")
        Else
            .Value = Motclef
        End If
    End If
End With
End Sub
Sub SupprimerMotClef(Motclef As String, Optional sep As String = ",")
 Dim pos As Integer: pos = 0
 With ThisWorkbook.BuiltinDocumentProperties("Keywords")
    pos = InStr(1, LCase(.Value), LCase(Motclef), vbTextCompare)
    'remplacer le motclef par "" et éliminer les doubles séparateurs
    If pos > 0 Then .Value = Replace(Replace(.Value, Motclef, "", , , vbTextCompare), sep & sep, sep)
 End With
End Sub
Sub SupprimerTousLesMotsClefs()
ThisWorkbook.BuiltinDocumentProperties("Keywords") = ""
End Sub

En sachant que la propriété Keywords est une simple chaine de caractères.

Une virgue et un espace son ajouter entre chaque mot clef

A+
 

PAT0051

XLDnaute Nouveau
Re : Critère de recherche autre que par le nom

Bonjour Hasco,

Merci de ton aide,
Je n'arrive pas à faire fonctionner ta macro, je crée en général mes macros avec l'enregistreur puis j'apporte des modifications simples. Ton code me dépasse un peu.
Pour le moment j'ai une macro qui m'enregistre le fichier en prenant la valeur de la cellule A1, Je souhaiterai que la valeur A2 ( texte ) soit en mot-clé.
J'ai donc ajouté AjouterMotClef Range("A2") dans ma macro.....mais pas plus de réussite.
 

PAT0051

XLDnaute Nouveau
Re : Critère de recherche autre que par le nom

Ça marche, je cherchais à lancer la macro et du coup j'avais un message d'erreur, je l'ai mis en amont de macro servant à l’enregistrement et ça marche.....Il faut que je comprenne cette macro maintenant mais un grand merci
 

Discussions similaires

Statistiques des forums

Discussions
312 525
Messages
2 089 329
Membres
104 121
dernier inscrit
bobquad01