Champ de recherche pour fichier sur plusieurs onglets

Bonjour,

Suite à la vidéo "Comment créer un champ de recherche efficace en 3 minutes ? " dont voici le lien : https://www.blog-excel.com/creer-un-champ-de-recherche-vba/

Je travaille sur un fichier concurrent dont j'ai mis un exemple en PJ

Je cherche à faire un travail similaire à la vidéo, avec quelques différences :

>> Ma barre de recherche est dans le premier onglet "Search" et les informations recherchés sont dans plusieurs onglets et ne sont pas contenus dans une seule colonne. Si c'est trop compliqué, je pourrai mettre une barre de recherche sur chaque onglet éventuellement

>> Serait-il possible qu'une fois les résultats affichés dans la listbox du premier onglet "Search", je puisse cliquer sur la ligne qui m'intéresse et que cela me renvoie directement à la ligne et à l'onglet correspondant ?

Merci d'avance et n'hésitez pas pour plus de précisions,

Bonne journée

Salut à toi,

Je suis en attente de la même réponse que ta demande.

Cdt,

Bonjour Messieurs,

Voici une proposition,

Dans l'attente de votre retour,

A+

Bonjour,

Merci infiniment Jers19, c'est exactement ce que je cherchais ! Et c'est bien au dessus de mes compétences...

Bonne continuation !

Merci de ton retour et ravi que cela te convienne.

Bonne continuation.

N'oublie pas de clôturer le sujet

Merci

Re-bonjour Jers 19,

J'ai en fait un petit problème quand j'applique ta formule sur mon fichier final (malheuresement je ne peux pas l'envoyer car trop volumineux...)

La fonctionnalité qui fait que je peux cliquer sur les résultats de la liste et que cela me ramène directement à la bonne ligne dans le bonne onglet ne marche pas et j'ai cette ligne du code affiché en jaune : NomOnglet = Sheets(1).ListBox1.List(ListBox1.ListIndex, 1)

Sais-tu d'où vient le problème ?

Merci encore,

Très bonne journée

Encore moi,

Je voulais aussi ton avis sur une autre fonctionnalité que je voudrais mettre en place :

L'idée serait de pouvoir cliquer (et non double cliquer) sur le texte trouvé, et que le résultat s'affiche sur une zone de texte à côté sur la droite. Je joins le fichier original qui illustre cela.

Le soucis est qu'il faudrait différencier les catégories (i.e toutes les lignes grisées : "Introduction'", "Performances", "Accessoires"...) des sous catégories (toutes les autres). En effet, si je rentre par exemple "Performances" dans la barre de recherche, il faudrait que cela me renvoie toutes les lignes sous catégories dans la nouvelle zone de texte créé à droite.

Dans l'attente de ta réponse, n'hésite pas si je ne suis pas clair !

PS : je peux t'envoyer mon fichier final (trop volumineux) par mail si besoin

Merci mille fois !

Salut,

Concernant ton 1er message, remplace :

NomOnglet = Sheets(1).ListBox1.List(ListBox1.ListIndex, 1) 

par

NomOnglet = ListBox1.List(ListBox1.ListIndex, 1) 

Concernant ta 2eme demande, je ne suis pas sur de bien comprendre

Si tu indiques "Performance" et que tu cliques sur ce mot dans la listbox de gauche, tu veux que cela affiche dans la listbox de droite "Ratings, Derating, Settings, à 415V". C'est cà ?

Et si on saisit un mot qui n'est pas une catégorie, qu'affiche t'on dans la listbox de droite ?

J'ai besoin de mieux comprendre ton besoin. En fait, je n'ai pas compris ce que tu attends exactement de cette 2eme listbox.

Dans l'attente de tes précisions

Salut !

1) Merci beaucoup pour le 1er sujet, ça marche c'est nickel

2) Pour le 2eme sujet excuse moi je vais re-préciser :

-Effectivement si j'indique une catégorie et que je clique sur ce mot dans la listbox de gauche, il faudrait que la listbox de droite affiche tout ce qu'il y a en dessous de cette catégorie. Je te détaille les étapes avec un exemple :

Ex : j'indique "Performance" dans la barre de recherche ==> dans la listbox de gauche, je retrouve "Performance" pour les différents concurrents comme c'est déjà le cas ==> je clique (et pas double clique sinon j'atteris sur l'onglet) sur "Concurrent 1" ==> dans la listbox de droite, les lignes 13 à 17 de l'onglet "Concurrent1" apparaissent

-Dans le cas où je n'indique pas une catégorie, seule la ligne correspondante est affichée

Ex : j'indique "Lancement commercial" dans la barre de recherche ==> dans la listbox de gauche, je retrouve "Lancement commercial" pour les différents concurrents comme c'est déjà le cas ==> je clique sur, par exemple, "Concurrent 1 ==> dans la listbox de droite, la ligne 9 de l'onglet "Concurrent 1" apparait

J'espère que je suis plus clair, n'hésite pas si ce n'est pas le cas !

Très bonne journée

Salut,

Voici une proposition.

J'ai placé la recherche dans un userform car j'ai trouvé ça plus souple à l'utilisation.

Pour afficher l'userform, il faut faire ctrl+a

Contrainte : dans les onglets concurrents, il ne peut pas y avoir de fusion en ligne 1, j'ai donc répété les informations dans chaque cellule.

Dans l'attente de ton retour

Jers

Salut Jers,

C'est nickel t'es un chef ! Et bien plus simple avec un Userform

Je l'ai testé sur mon fichier final : le problème c'est que j'ai plus de lignes que sur le fichier que je t'ai envoyé.

Ex : sous la catégorie "Protections" je n'ai pas que 4 lignes mais plus de 10... Pareil pour les autres catégories, et j'ai aussi des catégories additionnels qui du coup ne s'affichent pas

==> Du coup, je ne sais pas quoi changer dans le code afin que cela s'adapte au nombre de lignes et de catégories additionnels dans mon fichier final. Tu as une idée ?

PS : n'hésite pas encore une fois si tu as besoin du fichier final je te l'envoie par mail

Merci encore et très bonne journée !

Salut,

En fait je ne comprend pas trop ton problème sur ce coup là.

Quand les données ne peuvent pas s'afficher dans le liste, il y a des barres de défilement qui apparaissent afin que tu puisses te déplacer dans la liste.

Cela ne te convient pas ?

Dans le fichier exemple, dans l'onglet concurrent 1, j'ai rajouté plusieurs lignes dans le paragraphe performance pour test.

A+

Salut,

Si les listes de défilement me vont parfaitement et je vois qu'elles apparaissent dans le fichier que tu as mis en pièce joint, c'est parfait.

Seulement, ce n'est pas le cas quand je copie le code sur mon fichier final, et je n'arrive pas à savoir pourquoi. De la même façon, les catégories additionnels (l'équivalent de "Protections") que j'ai dans mon fichier final n'apparaissent pas.

J'ai mis 2 captures d'écran pour illustrer ces 2 soucis, n'hésite pas si ce n'est pas encore clair.

Merci à toi et bonne journée !

capture nouvelles categories capture protections

En fait, j'ai considérer que

  • les catégories (ex : performances) n'avaient pas de donnée saisie en colonne B
    les sous catégories (toutes les autres infos en fait) avaient une donnée saisie en colonne B

Est-ce le cas dans ton fichier ? En gros, toutes les lignes non grises correspondant aux caractéristiques doivent avoir des données en B

Oui c'est bien le cas !

Ok peux-tu envoyer le fichier avec juste une feuille qui pose problème

Salut,

Voici une portion du fichier (il est trop volumineux pour l'envoyer en entier), mais le principe est le même avec environ 10 onglets similaires.

Quand tu tapes "Protections"', il n'y a que 4 sous catégories qui apparaissent alors qu'il y en a 10 dans le fichier.

Ou encore quand tu tapes "Communication protocol" ou "Metering & Data", aucune ligne n'apparait.

PS : l'onglet qui s'appelle "Feuil 1" est le seul qui ne suit pas la même structure dans le sens où il regroupe tous les concurrents. Par contre le principe de catégories/sous-catégories est le même, tu penses qu'on pourra afficher les résultats de la même façon ?

N'hésite pas si tu as besoin de plus d'infos,

Bonne journée !

Salut,

C'est ce que j'ai essayé de te dire la dernière fois.

Si dans les sous catégories, la colonne B est vide, le code s'arrête car j'étais parti du principe qu'il y avait toujours des données en colonne B sauf pour les noms des catégories.

Si ce n'est pas le cas, il faut trouver un autre moyen de différencier les catégories et les sous catégories.

Je me suis donc baser sur la couleur de la cellule, ou plus exactement sur le fait qu'il n'y est pas de couleur dans les sous catégories.

Attention, il es impératif de colorer la dernière ligne afin de définir la longueur de la dernière catégorie.

A tester

Rechercher des sujets similaires à "champ recherche fichier onglets"