Afficher seulement les "mots clés" autorisés

Forum pour toutes vos questions à propos d'Excel (avec ou sans macros) ...
surpriz
Jeune membre
Jeune membre
Messages : 26
Inscrit le : 20 janvier 2015
Version d'Excel : 2007

Message par surpriz » 19 avril 2018, 21:24

Bonsoir,

Encore besoin de vous :'(

J'ai un fichier (voir PJ) qui contient une liste de mots autorisés en A et en colonne B des mots (seul ou plusieurs séparés par des virgules). L'objectif est d'obtenir en C seulement les mots clés qui ont été autorisés.

Le fichier est en PJ pour une meilleure compréhension.
tmp.xlsx
(29.22 Kio) Téléchargé 6 fois
Avec toute ma gratitude.
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 7158
Appréciations reçues : 149
Inscrit le : 16 juin 2013
Version d'Excel : 2013 UK Windows 10

Message par h2so4 » 20 avril 2018, 00:37

Bonsoir,

une solution avec une fonction personnalisée, à mettre dans un module

Code : Tout sélectionner

Function motauth(liste, listea)
    t = Split(liste, ",")
    For i = LBound(t) To UBound(t)
        Set re = listea.Find(Trim(t(i)), lookat:=xlWhole, LookIn:=xlValues)
        If Not re Is Nothing Then
            m = m & t(i) & ","
        End If
    Next i
    motauth = Left(m, Len(m) - 1)
End Function
appel de la fonction

Code : Tout sélectionner

=motauth(liste, listea)
liste est la cellule qui contient la liste des mots à valider par rapport à listea qui est une plage de cellules qui contient les mots autorisés.
Fichiers joints
tmp.xlsm
(14.12 Kio) Téléchargé 13 fois
surpriz
Jeune membre
Jeune membre
Messages : 26
Inscrit le : 20 janvier 2015
Version d'Excel : 2007

Message par surpriz » 20 avril 2018, 07:43

Merci bcp.

Et tu valides l''appel de la fonction via "Controle + Maj + Entrée" ? Car je viens de faire des tests et il m'indique #Valeur!
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 7158
Appréciations reçues : 149
Inscrit le : 16 juin 2013
Version d'Excel : 2013 UK Windows 10

Message par h2so4 » 20 avril 2018, 10:23

bonjour

non, une simple validation. la fonction renvoie "#value" si aucun mot n'est trouvé dans la liste des mots autorisés. dis-moi ce qu'il faut afficher dans ce cas, je te mettrai une correction.
surpriz
Jeune membre
Jeune membre
Messages : 26
Inscrit le : 20 janvier 2015
Version d'Excel : 2007

Message par surpriz » 20 avril 2018, 10:38

C'est parfait comme ça. C'etait en fait Excel sous Mac qui m******. Sous windows, ça marche comme sur des roulettes. Merci infiniment. :btres:
surpriz
Jeune membre
Jeune membre
Messages : 26
Inscrit le : 20 janvier 2015
Version d'Excel : 2007

Message par surpriz » 21 avril 2018, 16:39

Re :-D

Et tu saurais comment faire pour detecter seulement une partie des Keywords ? Je m'explique :

Colonne A - Mots clés authorisés : PHP
Colonne B - Mots clés : PHP5,PHP 5,PHP 5.2
Colonne C - Résultats : PHP
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 7158
Appréciations reçues : 149
Inscrit le : 16 juin 2013
Version d'Excel : 2013 UK Windows 10

Message par h2so4 » 24 avril 2018, 18:41

Bonsoir,

une proposition

Code : Tout sélectionner

Function motauth(liste, listea)
    Dim t()
    liste = UCase(liste)
    For Each c In listea
        i = i + 1
        ReDim Preserve t(1 To i)
        t(i) = c
    Next
    For i = LBound(t) To UBound(t) - 1
        For j = i + 1 To UBound(t)
            If Len(t(i)) < Len(t(j)) Then a = t(i): t(i) = t(j): t(j) = a
        Next j
    Next i
    For i = LBound(t) To UBound(t)
        If InStr(liste, UCase(t(i))) > 0 Then
            m = m & t(i) & ","
            liste = Replace(liste, UCase(t(i)), "")
        End If
    Next i
    motauth = Left(m, Len(m) - 1)
End Function
Fichiers joints
tmp.xlsm
(15.01 Kio) Téléchargé 4 fois
surpriz
Jeune membre
Jeune membre
Messages : 26
Inscrit le : 20 janvier 2015
Version d'Excel : 2007

Message par surpriz » 25 avril 2018, 08:57

Magique ! Tu es un As !

Merci beaucoup
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message