XL 2019 Filtre et recherche d'un mot ou une chaîne à l'ordre ou sans ordre, continue ou discontinue

cd95

XLDnaute Occasionnel
Bonjour,

J’ai un tableau dans un onglet « BD » avec une colonne « C » qui est filtrée par une ComboBox dans l’onglet résultat. Je n'arrive pas à trouver la syntaxe pour pouvoir filtrer le tableau en entier avec toujours comme cible la colonne « C ». Est-il possible de m'aider à résoudre ce problème en rajoutant si c'est possible l'option de colorier les mots recherchés même s’ils sont discontinus. Merci

N.B : L’élément essentiel à conserver dans ce code c’est de pouvoir toujours filtrer les recherches avec n’importe quel sens. Voir en dessous l’exemple :

Recherche ComboBox
Résultat
jau tour pepetit tournevis jaune
 

Pièces jointes

  • Multiples recherches et filtrage.xls
    73 KB · Affichages: 13

laurent3372

XLDnaute Impliqué
Supporter XLD
Il faut toujours que la Bdd soit sous forme de tableau structuré. Les résultats, eux, ne sont pas structurés. J'ai fait le ménage dans les noms de la feuille.
Je te renvoie la feuille avec Bdd strucurée. C'est celle-là qui fonctionne.
 

Pièces jointes

  • Tableau non stucturé V1.1.xlsm
    46.5 KB · Affichages: 4

cd95

XLDnaute Occasionnel
Il faut toujours que la Bdd soit sous forme de tableau structuré. Les résultats, eux, ne sont pas structurés. J'ai fait le ménage dans les noms de la feuille.
Je te renvoie la feuille avec Bdd strucurée. C'est celle-là qui fonctionne.
Bonsoir,

Merci pour votre réponse mais à mon avis il doit me manquer une réf. Non disponible ou qui n’est pas activé dans « Références VBAProject » ou autre chose car ce n’est pas normal que ça fonctionne chez vous et pas chez moi. J’ai essayé à l’instant même de faire un autre petit tableau avec les mêmes procédures et ça ne fonctionne pas et ça m’intrigue vraiment et je n’arrive pas à résoudre ce problème. (J'ai essayé 18 fois à refaire un tableau qui fonctionne !!!)

CaptureCD.PNG


CaptureCD2.PNG
 

Pièces jointes

  • Classeur18.xlsm
    28.2 KB · Affichages: 2

laurent3372

XLDnaute Impliqué
Supporter XLD
Il faut d'abord supprimer l'ancienne feuille Bdd puis la recréer avec les données souhaitées. Ensuite, il faut ltransformer les données en table structurée (Insertion>Tableau) puis nommer le table "Bdd" (au lieu de "Tableaux").
Il ne faut pas créer d'autres noms ni d'autres tables dans le classeur.

J'ai modifié la macro pour qu'elle recopie automatiquement les entêtes de la table Bdd dans la feuille Résultats.
 

Pièces jointes

  • Multiples recherches et filtrage V1.2.xls
    97.5 KB · Affichages: 7

cd95

XLDnaute Occasionnel
Il faut d'abord supprimer l'ancienne feuille Bdd puis la recréer avec les données souhaitées. Ensuite, il faut ltransformer les données en table structurée (Insertion>Tableau) puis nommer le table "Bdd" (au lieu de "Tableaux").
Il ne faut pas créer d'autres noms ni d'autres tables dans le classeur.

J'ai modifié la macro pour qu'elle recopie automatiquement les entêtes de la table Bdd dans la feuille Résultats.
Aye aye, d’accord maintenant après vos explications je comprends mieux le problème et malheureusement si j’ai bien compris je ne peux donc l’intégrer dans mon fichier puisque j’ai plusieurs d’autres onglets qu’ont des tableaux structurés et d'autres mêmes avec des tableaux croisés dynamiques. Merci vraiment beaucoup mais ce n’est pas perdu car je vais essayer de faire des fichiers séparés avec votre code pour les tableaux simples. Merci et bon courage
 

laurent3372

XLDnaute Impliqué
Supporter XLD
Quand je dis qu'il ne faut pas créer d'autres noms ou tables dans le classeur, ce n'est pas tout à fait vrai: on peut en créer, mais rien qui interfère avec le tableau Bdd.

Je vais préparer une nouvelle version qui va chercher les données de la Bdd dans un classeur et onglet spécifié par l'utilisateur. Comme ça, mon programme reste dans son .xlsm propre et travaille avec des xlsx et xlsm extérieurs.

Peux-u m'envoyer un fichier de données exemple (avec plusieurs onglets (tableaux structurés et TCD).

PS: Désolé, j'ai commencé à te tutoyer et maintenant il st trop tard pour revenir en arrière
 

eriiic

XLDnaute Barbatruc
Bonjour à tous,

vu que ta BD ne doit pas changer en permanence, un essai qui pré-mâche le boulot à l'ouverture du fichier ou en quittant la feuille BD.
Aucune idée du gain de performance par rapport aux autres propositions sur une grande base :)
Tu diras...
Par contre je n'ai pas compris le changement des données vu ensuite, je suis resté sur le 1er fichier.
eric

Edit : arf, je viens de voir un soucis, je reviens plus tard remettre le fichier
 

cd95

XLDnaute Occasionnel
Bonjour à tous,

vu que ta BD ne doit pas changer en permanence, un essai qui pré-mâche le boulot à l'ouverture du fichier ou en quittant la feuille BD.
Aucune idée du gain de performance par rapport aux autres propositions sur une grande base :)
Tu diras...
Par contre je n'ai pas compris le changement des données vu ensuite, je suis resté sur le 1er fichier.
eric

Edit : arf, je viens de voir un soucis, je reviens plus tard remettre le fichier
Bonjour « eriiiic »,

Merci pour ton intervention et à mon avis tu as bien compris le souci de ton code avant même de poster ma remarque.

En fait le tableau que « laurent3372 » m’a envoyé répond tout à fait bien à mes attentes sauf que je ne peux pas l’intégrer dans mon fichier original puisqu’il contient d’autres tableaux structurés et tableaux croisés dynamiques qui font défaut à son code et surtout que je ne suis pas futé pour comprendre ses instructions car les fichiers qu'il m'a envoyés fonctionnent tous correctement mais quand je veux en faire tout seul un nouveau ça bug et pourtant j'applique à la lettre ses démarches.

N.B : le but du logiciel c’est de pouvoir rechercher n’importe quel tronçon de chaîne et avec n’importe quel sens, les filtrés et de colorier les lettres tapées dans la ComboBox dans la liste des recherches.

Ci-joint le dernier petit fichier qui illustre mes attentes (Colonne cible N°7)

CaptureExemple.PNG

.
 

Pièces jointes

  • Multiples recherches et filtrage V1.2.xls
    97.5 KB · Affichages: 4

cd95

XLDnaute Occasionnel
Si tu es satisfait de la réactivité de la proposition de laurent autant continuer avec.
Améliorer un truc déjà confortable n'apporte pas une grande plus-value :)
eric
J’espère que tu as lu tout mon message pour comprendre qu’il y a quand même un petit problème de compatibilité et ensuite excuse-moi de te dire que c’est la moindre des choses d’être satisfait d’une personne qui t’apporte son aide même si son dévouement n’est pas fructueux et ce n’est pas le cas.
En fin je te remercie sincèrement pour ta tentative de vouloir m’aider. ;)
 

laurent3372

XLDnaute Impliqué
Supporter XLD
Pendant que vous papotiez eriiic et toi, j'ai bien travaillé:
Première macro (Ctrl-t)
  • Ouvrir mon classeur Filtrage.xlsm
  • ouvrir un classeur quelconque contenant les données à filtrer (Data.xls ou .xlsx ou .xlsm).
  • activer la feuille contenant les données
  • Frapper Ctrl+t : cela recopie la feuille dans mon fichier Filtrage.xlsm
  • Fermer le classeur de données Data
Deuxième macro(Ctrl+b)
  • Dans le classeur Filtrage.xlsm
  • Activer la feuille de données.
  • Sélectionner dans la ligne de titre du tableau la colonne sur laquelle doit s'appliquer le filtre.
  • Frapper Ctrl+b : cela initialise la feuille résultat.
Par la suite, si on veut changer de colonne de filtrage,
  • en restant dans la feuille Résultat,
  • Sélectionner dans la ligne de titre du tableau la colonne sur laquelle doit s'appliquer le filtre.
  • Frapper Ctrl+b : cela initialise la feuille résultat.
Le classeur Filtrage.xlsm est en lecture seule pour éviter toute modification accidentelle.
Après avoir copié un fichier de données pas Ctrl+t, tu peux enregistrer le classeur sous un autre nom.
 

Pièces jointes

  • Filtrage V1.4.xlsm
    56.3 KB · Affichages: 4

cd95

XLDnaute Occasionnel
Encore une nouvelle version qui colore en rouge TOUTES les occurrences d'un mot dans le texte de la cellule
Rien à dire et je n’ai pas de mots pour mieux m’exprimer mais à mon niveau ce que tu as fait est tout simplement une tuerie, une usine à gaz. C’est une bonne note qui englobe tout le concept à savoir la structure le code VBA et surtout l’idée ingénieuse de ta part. Merciiiiiiiiiiii
 

Statistiques des forums

Discussions
312 097
Messages
2 085 257
Membres
102 840
dernier inscrit
blaise09