Filtrer des lignes à partir d'une liste déroulante à choix multiples [Résolu/Fermé]

Signaler
Messages postés
46
Date d'inscription
mercredi 10 mai 2017
Statut
Membre
Dernière intervention
10 juin 2021
-
Messages postés
46
Date d'inscription
mercredi 10 mai 2017
Statut
Membre
Dernière intervention
10 juin 2021
-
Bonjour,
Je souhaite filtrer des données à partir d'une liste déroulante à choix multiples

Voici le fichier : https://mon-partage.fr/f/thHjxLxe/

- La colonne C contient des keywords (plusieurs par cellules)
- Ces keywords sont listés un par un dans la feuille "Keywords"
- Dans la feuille "Liste des docs" je souhaite filtrer les articles s'ils contiennent les keywords de la liste "keywords"

J'aimerai avoir une sorte de boite de dialogue qui appairait avec la liste des keywords à sélectionner. Une fois que je les ai sélectionné, les articles contenants ces keywords apparaissent.

N'hésitez pas à me poser des questions si je ne suis pas assez explicite.

Merci d'avance

3 réponses

Messages postés
13064
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 juillet 2021
2 221
Bonjour

Ton fichier avec la macro adéquate :
https://mon-partage.fr/f/hiKJ8Nk7/

Cdlmnt
Via
Messages postés
46
Date d'inscription
mercredi 10 mai 2017
Statut
Membre
Dernière intervention
10 juin 2021

Merci beaucoup pour le temps que vous avez consacré pour résoudre mon problème.
Pour des raisons de confidentialité, j'ai supprimé 2 colonnes (entre "Article title" et "Main message"). J'ai essayé de modifier le code en ajoutant ces deux colonnes mais la macro ne fonctionne pas correctement.
Pouvez-vous me dire ce que je dois modifier dans le code si j'ajoute ces 2 colonnes ?
Cordialement
Messages postés
13064
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 juillet 2021
2 221
Bonjour

La macro associée au bouton de l'userform :
Private Sub CommandButton1_Click()
Dim i As Byte
 Range("F2:F113").ClearContents
    'boucle sur les éléments de la listbox et retiens ceux selectionnés
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then
        cle = ListBox1.List(i)
'boucle sur les lignes et met un x en col Esi mot clé en col D
 For n = 2 To 113
 If Application.WorksheetFunction.CountIf(Range("D" & n), "*" & cle & "*") > 0 Then Range("E" & n) = "x"
  Next n
End If
      Next i
      Unload Me
 'filtre les x
  ActiveSheet.Range("$A$1:$F$113").AutoFilter Field:=4, Criteria1:="<>"
End Sub


Et la macro associée au 2eme bouton de la feuille :
Private Sub CommandButton2_Click()
 ActiveSheet.Range("$A$1:$F$113").AutoFilter Field:=4
End Sub

Cdlmnt
Via
Messages postés
46
Date d'inscription
mercredi 10 mai 2017
Statut
Membre
Dernière intervention
10 juin 2021

J'ai changé le code avec tes dernières infos mais il y a toujours un bug.
Voici le dernier fichier
https://mon-partage.fr/f/FiIRgE7k/
Messages postés
13064
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 juillet 2021
2 221
Ah pardon, oubli de ma part dans les 2 macros pour le trie il faut remplacer 4 par 6 dans Field:=4
Messages postés
46
Date d'inscription
mercredi 10 mai 2017
Statut
Membre
Dernière intervention
10 juin 2021

Parfait =)
Merci beaucoup