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 !
Je souhaite lister dans une Listbox des éléments de ma feuille de calcul
L’exemple joint me permet tout à fait de le faire
Mais pour certains éléments je vais le faire souvent
Exemple : "Espèces" , "Libellé" ou "Divers"
Plutôt que de charger ma ListBox et de remplir la TextBox pour ces éléments
Je souhaiterais pouvoir lister ces éléments directement à partir de ma feuille en cliquant par exemple sur Libellé dans un genre de liste déroulante
Mais est-ce possible ??
Re : Recherche dans une ListBox à partir d'une liste déroulante directement sur la fe
Bonsoir Cide,
Ton fichier modifié en pièce jointe.
Dans le but de simplifier les choses, je te propose une solution légèrement différente: un double-clic sur une cellule de la colonne F affiche le formulaire filtré.
Sinon, ce que tu demandes est possible, mais ça demande une réflexion pour éviter les doublons de la liste. Donc si ça te convient, j'en serais ravi.
Re : Recherche dans une ListBox à partir d'une liste déroulante directement sur la fe
RE:
Pour anticiper ta réponse, voici une version conforme à ta demande initiale.
La liste déroulante est en F2, mais on peut la placer n'importe où bien sûr. Quand le choix est fait par la liste déroulante, la zone de texte (TextBox1) est masquée mais si on utilise le bouton elle est active.
Pour le fun, j'ai conservé le choix par double-clic. A toi de conserver la solution que tu préfères.
Re : Recherche dans une ListBox à partir d'une liste déroulante directement sur la fe
Bonjour à Tous, Bonjour Papou-Net
Merci beaucoup
Concernant ta première solution, j'en suis très ravi
Je l'ai retranscrit dans mon fichier d'origine (Plus de 500 lignes)
et cela fonctionne très bien
En fait, je n'avais pas pensé à cette méthode du tout !
Mais elle est très satisfaisante pour des libellés qui reviennent souvent
Car évidement on les a facilement sous la main pour cliquer dessus.
Je suis donc aussi intéressé par ta 2ème solution avec la liste déroulante
Par contre si elle fonctionne très bien dans le fichier exemple, elle ne fonctionne pas dans mon fichier d'origine
Peut-être à cause du fait que j'ai déjà un
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
J'ai donc du en faire un seul avec les 2
Mais comme les 2 ne traitent pas de la même colonne
Je ne suis pas sûr que cela viennent bien de cela.
Mais de toute façon cela ne convient pas
Je me rencontre que je n'ai pas assez donné d'explication dans ma demande
J'ai actuellement environ 500 lignes dans mon tableau et à terme cela sera multiplié par 2 au moins
Dans ces 500 lignes, je n'ai heureusement pas besoin de faire des recherches sur tous les libellés
En fait j'ai besoin de faire des recherches sur une bonne trentaine de libellés
C'est donc plus simple aussi, car il n'y a donc aucun risque de doublons
Cette liste pourrait se situer dans la feuille 2
Et je la compléterais manuellement chaque fois que cela sera nécessaire
Cela devrait donc ce faire à partir de ta solution
Mais elle n'est pas commentée et je suis loin de tout comprendre !
S'il t'est possible de l'adapter, merci d'avance
Re : Recherche dans une ListBox à partir d'une liste déroulante directement sur la fe
Bonjour Cide,
Merci pour ton retour.
Voici donc le code commenté:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'La variable "Plage" désigne la zone de liste en colonne F (F5 à F24 dans ce cas)
Dim Plage As Range
' La ligne suivante définit "Plage" de la façon suivante:
'Elle recherche les cellules qui contiennent des données (SpecialCells(xlCellTypeConstants)
'dans la zone F5:F1048576 (1048576 correspondant à Rows.count)
'Cette façon de faire évite d'avoir àn modifier le code en cas d'ajout ou de suppression de lignes dans la liste
Set Plage = Range("F5:F" & Rows.Count).SpecialCells(xlCellTypeConstants)
' La ligne suivante vérifie si la cellule double-cliquée est incluse dans la Plage précédemment définie
'Si ce n'est pas le cas (Is Nothing), la macro se termine ici (Exit Sub)
If Intersect(Plage, Target) Is Nothing Then Exit Sub
'Les instructions suivantes (précédées d'un point) s'appliquent au formulaire Recherche
With Recherche
.TextBox1 = Target.Value 'écrit le contenu de la cellule double-cliquée dans la zone de texte
.Show
End With
Cancel = True 'Annule l'action du double-clic, sinon il faudrait appuyer sur Enter pour continuer
End Sub
Re : Recherche dans une ListBox à partir d'une liste déroulante directement sur la fe
Re,
Merci pour ta réponse
Mais il y a erreur
Tu m'as envoyé le code commenté pour la 1ère solution
Celui-ci est parfait et fonctionne très bien.
C'est bien quand même car cela va me permettre de le comprendre totalement
Mais c'est le 2ème code qui pose problème
Celui avec une liste déroulante.
Re : Recherche dans une ListBox à partir d'une liste déroulante directement sur la fe
RE:
Voici le second fichier commenté.
Code:
Par contre si elle fonctionne très bien dans le fichier exemple, elle ne fonctionne pas dans mon fichier d'origine
Peut-être à cause du fait que j'ai déjà un
[FONT=monospace]Private Sub Worksheet_Change(ByVal Target As Range)
Effectivement, certaines conditions sortant de la macro avant la fin, toutes les actions attachées à l'événement Change ne sont pas exécutées. Si tu le veux, tu peux m'envoyer le code de ta procédure pour que je puisse regarder l'intégration de la mienne.
- 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