Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro de type filtre "contient" pour sélectionner les lignes contenant un mot clé

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

chris6999

XLDnaute Impliqué
Bonsoir à tous

Une petite question pour bien commencer le week-end

Je souhaiterais créer dans un fichier Excel une macro qui sélectionnerait les lignes lorsque la colonne A contient un mot clé (ou plusieurs) saisi(s) dans une zone (par ex dans la cellule C3)
Cela correspondrait vous l’avez compris au filtre « contient ».

Ce qui serait bien c’est que la sélection ne tienne pas compte de la casse et des accents.

Le lancement de la macro se ferait à partir du moment où l’utilisateur aurait saisi le mot clé puis « entrée »
Si aucune ligne ne correspond à la recherche j’aimerais que s’affiche un message du style « mot clé introuvable »

Je pense également rajouter un bouton pour annuler le filtre.
Cette annulation du filtre se ferait également lors de la fermeture du fichier.

J’ai un peu regardé sur les forums mais ce que j’ai trouvé ne fonctionne pas.

Si l’un des experts VBA passe par là… ce serait sympa de m’apporter vos lumières.

Nb : j’ai mis mon fichier en PJ

Très cordialement
Chris
 

Pièces jointes

Re : Macro de type filtre "contient" pour sélectionner les lignes contenant un mot cl

Bonsoir Chris6999

Code à mettre dans Feuil1
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  ' Si modification de la cellule C1
  If Target.Address(0, 0) = "C1" Then
    ' Si la cellule contient une valeur
    If Target.Value <> "" Then
      ' Filter sur cette valeur
      Range("A3:C3").AutoFilter Field:=3, Criteria1:="=*" & Target.Value & "*"
    Else
      ' Supprimer le filtre
      Range("A3:C3").AutoFilter Field:=3
    End If
  End If
End Sub

A+
 
Re : Macro de type filtre "contient" pour sélectionner les lignes contenant un mot cl

Merci BrunoM45 pour ton aide

En testant la macro que tu m'as si gentiment proposé, je constate que cela ne fonctionne pas forcément.

Par exemple lorsque je fais une recherche à partir d'un mot existant dans la base 'exemple "équin"ou "hongreur" le filtre ne donne aucun résultat.
Avec d'autres mots clé cela marche ...! je ne comprends pas pourquoi

La plage de référence pour la recherche du mot clé se fait sur l'ensemble des colonnes alors que je souhaitais juste filtrer en fonction des éléments contenus dans la colonne A

Merci de me dire ce que tu en penses
A+

Je mets mon fichier enrichi de la macro en pièce jointe
 

Pièces jointes

Re : Macro de type filtre "contient" pour sélectionner les lignes contenant un mot cl

Re,

Désolé, mais le code fourni filtre uniquement la colonne C
Colonne au-dessus de laquelle tu as la cellule jaune

Il faut changer
Code:
Field:=3
par
Code:
Field:=1
et ce devrait estre bon

A+
 
Bonjour à tous ! J'aimerais faire exactement comme chris6999 avec mon propre tableau excel. J'aimerais un code qui me sorte toutes les lignes contenant un ou plusieurs mot-clés choisis au préalable et présents dans la colonne H "sujet" de mon tableau. J'ai essayé d'adapter le code de Bruno à mon tableau mais je n'y arrive pas, je suis novice avec VBA ne sais pas trop utiliser les macros encore... Je recherche de mon côté pour y arriver et serait ravi d'avoir des conseils de votre part. Merci beaucoup et bonne soirée !

Je joins un bout de mon fichier :
 

Pièces jointes


Bonjour erolland

Pour ce que tu demandes, il faut utiliser un filtre avancé

Voici ton fichier avec un bout de code qui devrait t'aller si j'ai bien compris ta demande 😉

A+
 

Pièces jointes

Bonjour et merci à tous les deux ! En effet c'est cela qu'il me fallait, merci beaucoup. Avoir une feuille "résultat" qui regroupe les lignes contenant les mots-clés saisis, c'est parfait !
Cependant Chris, je n'arrive pas à exécuter la macro avec ton fichier, quand j'essaye de saisir d'autres mots-clés dans le rectangle jaune, la feuille "résultat" ne change pas... je dois mal faire quelque chose mais je ne sais quoi...
Merci encore pour votre aide
 
Merci monsieur Boisgontier ça m'a l'air parfait mais étant novice je n'arrive pas à utiliser le userform, quand je fais exécuter la macro, ça me met le message suivant : la méthode 'Range' de l'objet '_Global' a échoué. Comment exécutér la macro avec mes données ? Je joins mon fichier avec mes données. Merci beaucoup
 

Pièces jointes

Merci bien ! Mais j'ai le même problème lorsque je rentre toute ma base de données...
Est-il possible d'afficher en premier, dans les résultats, les lignes dont la criticité (colonne L de la base de données) est "catastrophic" et "hazardous" ? Puis en dessous s'afficheraient les lignes restantes avec leurs criticités moins importantes (majeur, mineur, etc.) avec les mots-clés définis au préalable.
Aussi, il faudrait qu'il soit possible de choisir plusieurs mots-clés de la colonne "Sujet", par exemple, je rentre "window gear fuel" dans le userform et cela affiche en résultats toutes les lignes dont la colonne "Sujet" contient les mots window OU gear OU fuel, à la manière d'un contient .... OU ....
Je ne sais pas si j'ai été clair... Merci pour votre aide en tout cas !
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
563
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…