Filtre listbox avec textbox + renvoi sur feuille du classeur [Résolu]

corloste

XLDnaute Nouveau
Hello tout le monde,

Je suis tombé sur le fichier de MichelXld "FiltreListbox par début occurrence textbox" :

Ce système pourrait correspondre à mon besoin, mais avec quelques modifications :

La base de données ne serait pas une colonne, mais l'ensemble des feuilles de mon classeur avec les noms des onglets qui s'affichent donc dans la listbox quand on saisi dans la textbox(avec incrémentation automatique des nouvelles feuilles que je rajouterai par la suite).

Plus le fait de cliquer sur un des résultats affiché dans la listbox entraine l'affichage de la feuille concernée.

J'ai essayé de tout simplement utiliser le matchentry d'une combobox mais le résultat n'est pas aussi efficace que ce que présente le fichier de MichelXld

Est-ce possible et pouvez vous m'aider SVP ?
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Filtre listbox avec renvoi sur feuille du classeur

Bonjour Colorste

Je n'arrive pas à apporter les modifs qui me seraient utiles, j'attends votre aide.

Nous, on attend surtout ton fichier :confused:.

En plus le lien que tu as fourni permet de créer une nouvelle discussion. Prière de le supprimer en ré-éditant ton premier post.
 

corloste

XLDnaute Nouveau
Re : Filtre listbox avec renvoi sur feuille du classeur

Bonjour MJ13,

J'ai supprimé le lien en haut de page, je joins le fichier cité en référence, ainsi que le mien.

Donc ce que je cherche à obtenir, et à l'image du fichier "filtre lisbox..." C'est de pouvoir obtenir une sélection des différentes feuilles de mon classeur, dans la listbox, en saisissant ne serais-ce que le début de leur nom dans la textbox, et de pouvoir obtenir un renvoi sur la feuille concernée en cliquant sur son nom qui apparait dans la listbox.
 

Pièces jointes

  • FiltreListbox_par_debut_occurence_txtbox.zip
    14.3 KB · Affichages: 87
  • tri selectif.xls
    146.5 KB · Affichages: 115
  • FiltreListbox_par_debut_occurence_txtbox.zip
    14.3 KB · Affichages: 104
  • tri selectif.xls
    146.5 KB · Affichages: 111
  • FiltreListbox_par_debut_occurence_txtbox.zip
    14.3 KB · Affichages: 106
  • tri selectif.xls
    146.5 KB · Affichages: 100

MJ13

XLDnaute Barbatruc
Re : Filtre listbox avec renvoi sur feuille du classeur

Re

Voici par exemple le code à modifier pour trouver une partie de mot dans ton premier fichier.

Code:
With Plage
Set C = .Find(Recherche, Lookat:=xlPart)
If Not C Is Nothing Then
Adresse = C.Address
Do
'If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then ListBox1.AddItem C
If UCase(Recherche) = UCase(Recherche) Then ListBox1.AddItem C
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> Adresse
End If
End With
 

corloste

XLDnaute Nouveau
Re : Filtre listbox avec renvoi sur feuille du classeur

Ok,

Donc par conséquent j'en déduits le code ci-dessous sert "d'adressage de base de donnée de référence" soit l'endroit ou il doit chercher pour trouver des correspondances entre ce que je saisi et les noms des feuilles :
Code:
Recherche = TextBox1.Value
Range("A1").Select
Ligne = Feuil2.Range("B" & "65536").End(xlUp).Row
Set Plage = Feuil2.Range("B" & "2:" & "B" & Ligne)

Car si c'est le cas je n'arrive pas à le transformer pour qu'il aille chercher dans les noms des feuilles et pas dans la colonne "B" de la feuille 2.
 

corloste

XLDnaute Nouveau
Re : Filtre listbox avec renvoi sur feuille du classeur

Bonjour,

Bon voilà ou j'en suis, j'ai apporté l'extrait de code conseillé ci-dessus, mais je n'arrive pas à aller le faire chercher dans les feuilles pour comparer avec ce qui est saisi dans la textbox. Problème avec définition de la "plage".

Désolé mais j'ai encore besoin d'aide
 

Pièces jointes

  • tri selectif.xls
    149.5 KB · Affichages: 74
  • tri selectif.xls
    149.5 KB · Affichages: 77
  • tri selectif.xls
    149.5 KB · Affichages: 77

MJ13

XLDnaute Barbatruc
Re : Filtre listbox avec renvoi sur feuille du classeur

Re

Un test: j'ai adapté avec la liste des feuilles que j'ai nommé Liste (il faudra trouver le code pour la remplir à l'ouverture ou en dynamique).

Ensuite, cela filtre sur la liste en modiiant le textbox1.
 

Pièces jointes

  • tri selectifV2Colorste.xls
    143 KB · Affichages: 84

corloste

XLDnaute Nouveau
Re : Filtre listbox avec renvoi sur feuille du classeur

Merci MJ13, on avance enfin toi plus que moi.

Donc tu as créé une plage dans une colonne, que tu as nommé liste. Ça j'ai compris. Tu en fais référence dans le code avec le "range".
Donc tu parts sur le fait de pouvoir "faire référence" dans la fenêtre "nom de listes" à l'ensemble des noms de feuilles du classeur.

La question que je me pose est : Pourras-ton par la suite renvoyer sur la bonne feuille en cliquant dans la listbox sur le nom de feuille qui nous intéresse ? Si on prend comme référence une liste de noms (avec un "range") et pas directement les feuilles du classeur (avec un ????). D'autant que dans mon fichier final j'ai plus d'une centaine de feuilles, et je voulais trouver un moyen qui facilitera aux utilisateurs du fichier l'accès aux différentes feuilles.

Si tu penses que oui, ok on prends ce chemin.
 

MJ13

XLDnaute Barbatruc
Re : Filtre listbox avec renvoi sur feuille du classeur

Bonjour Colorste

Voici une façon de faire. J'ai placé une feuille Liste masquée avec le nom des onglets qui s'actualise à l'ouverture du fichier. La recherche d'une feuille se fait dans le nom de l'onglet et en cliquant dans la listbox, on doit normalement atteindre cette feuille.
 

Pièces jointes

  • TriSelectifV3Colorste.xls
    139 KB · Affichages: 118

corloste

XLDnaute Nouveau
Re : Filtre listbox avec renvoi sur feuille du classeur

Un grand merci MJ13,

Je me suis empressé de l'adapter sur mon fichier final, c'est nickel.

Il y a juste un tout petit bug, il affiche une erreur d’exécution "9" (L'indice n'appartient pas à la sélection) lorsqu'on a déjà commencé à saisir dans la textbox, qu'on l'efface sans la sélectionner, et qu'on clique dans la première ligne de la listbox redevenue vide. Par contre l'erreur ne se produit pas à l'ouverture du fichier, on a beau cliquer dans la listbox vide il ne se passe rien. Si t'as une idée ?

Autrement le système de recherche est génial, il match sur les séquences saisies qu'elles soient inclues dans les premiers mots des onglets ou les suivants (pour les onglets qui ont plusieurs mots composant leur nom) et obligatoirement dans l'ordre.

Ça renvoi bien sur la feuille choisie

La mise à jour des nouvelles feuilles saisies est bien automatique à l'ouverture du fichier, il faudra faire attention la liste est prévue pour 250 feuilles (voir dans le gestionnaire de noms) je pense qu'il suffit d'agrandir la plage de référence. Pour ma part j'ai encore de la marge.

Encore Merci,

Corloste.

PS : Pour ceux qui ne trouvent pas la feuille liste cachée, pensez à l'arborescence de VBA et la propriété "visible"
 

corloste

XLDnaute Nouveau
Re : Filtre listbox avec renvoi sur feuille du classeur

Bien, on peut dire que la boucle est bouclée, et tu peux rajouter un XL de plus sur la carlingue de ton zinc pour avoir descendu un problème de plus.

Je me suis même permis de rajouter :

Code:
Private Sub ListBox1_Click()
           If ListBox1.Value = "" Then
           MsgBox "Saisir votre recherche dans la fenêtre au dessus"
           End If
              On Error Resume Next
              Sheets(ListBox1.Text).Select
        
End Sub

Pour les utilisateurs de mon fichier qui n'auraient pas compris qu'il faut saisir dans la textbox.

Encore merci.
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 188
dernier inscrit
evebar