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

Une cellule critère pour filtrer une combobox

  • Initiateur de la discussion Initiateur de la discussion mawua
  • Date de début Date de début

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 !

mawua

XLDnaute Occasionnel
Une cellule critère pour filtrer une listbox

Bonjour tous le monde.

Je pete un cable à force de chercher dans le forum la soluce à mon problème.
Je voulais deranger personne avec cette question mais bon là je ne trouve rien. Ormis des liens morts.

Ma demande concerne une liste déroulante.
Je voudrais filtrer cette liste par la valeur d'une cellule E10 (située sur la meme feuil que la listbox).
La cellule de critère fait référence à la colonne B (à partir de la ligne 3 jusqu'en bas), les valeurs cible de la liste déroulante sont réferencées dans la colonne D (idem) de feuil2.

J'ai joint le bout de fichier qui correspond à ma requête.
La listbox en question est en feuil3 (D't'façon y en a qu'une!)

Un gros coup de pouce serait le bienvenu. Si en plus il pouvait ne pas y avoir de doublons dans la listbox......
Merci par avance
 

Pièces jointes

Dernière édition:
Re : Une cellule critère pour filtrer une listbox

Bonjour le forum.
J'ai compris qu'il fallait que je passe par la déclaration d'un tableau.
Ce tableau doit comprendre les cellules B3 à D65536 de ma feuil base de donnée.
Il faut ensuite lancer une recherche dans la colonne1 du tableau pour trouver toute les occurence de la cellule E10 de Feuil3
Et les equivalences (en colonne 3 du tableau), sans doublons, de cette recherche doivent apparaitre dans la listbox de Feuil3.

Voilà j'espère avoir été clair.
 
Re : Une cellule critère pour filtrer une listbox

bonjour mawua

une premiere approche

mais je ne suis pas sur d'avoir bien saisi quelles sont les colonnes a traiter

les doublons eventuels ne sont pas traités et j'ai limité l'exploration de la colonne B a la derniere valeur differente de ""
 

Pièces jointes

Re : Une cellule critère pour filtrer une listbox

Bonjour PierreJean.

Oui, cette routine est la bonne. Tu as bien identifié les colonnes malgré mes explications brumeuses.
J'étais arrivé à un truc similaire hier. Puis j'ai voulu éviter les doublons et là j'ai du me fourvoyer. J'ai cru comprendre que les collections etaient plus adaptée à ce genre de situation puis il y a eu un feu d'artifice.... après....Je crois avoir vu un clown dans un caniveau et...

Enfin, merci PierreJean pour ce recalibrage de mon problème.
Ouf;
 
Re : Une cellule critère pour filtrer une listbox

J'ai tenté d'integrer une option sans doublon, mais la Combobox reste desespérément vide même si le code ne produit pas d'erreur.

Quelqun pourrait me dire "Ce qui marche" (si jamais y a des lignes qui veulent dire quelquechose) et surtout "ce qui ne marche pas"?

Private Sub ComboBox1_Change()

Dim Collec As Collection 'déclare la variable Collec
Dim cel As Range 'déclare la variable cel
Dim x As Integer 'déclare la variable x
Dim n As Integer

ComboBox1.Clear
Set Collec = New Collection 'définit la variable Collec

For n = 3 To Sheets("BDD").Range("B65536").End(xlUp).Row
On Error Resume Next 'passe à la ligne suivante si erreur
If cel("B" & n).Value = ActiveSheet.Range("E10") Then 'test du la concordance
Collec.Add cel("D" & n).Value, CStr(cel.Value)
End If
'ajoute la valeur de la cellule comme nouveau membre de la collection Collec
'la clé "Ctsr(Cel.value)" provoque une erreur si le membre existe déja
Next n
'remplissage de la ComboBox1
'boucle sur tous les membres de la collection Collec
For x = 1 To Collec.Count
'ajoute la valeur du membre à la ComboBox1
ComboBox1.AddItem Collec(x)
Next x 'prochain membre de la collection
 
Re : Une cellule critère pour filtrer une listbox

a mon avis l'utilisation de cel est defectueuse (mais je n'affirme rien)

modifiée ainsi ta routine fonctionne

Code:
Dim Collec As Collection 'déclare la variable Collec
'Dim cel As Range 'déclare la variable cel
Dim x As Integer 'déclare la variable x
Dim n As Integer
ComboBox1.Clear
Set Collec = New Collection 'définit la variable Collec
For n = 3 To Sheets("BDD").Range("B65536").End(xlUp).Row
On Error Resume Next 'passe à la ligne suivante si erreur
If Sheets("BDD").Range("B" & n).Value = ActiveSheet.Range("E10") Then 'test du la concordance
Collec.Add Sheets("BDD").Range("D" & n).Value, CStr(Sheets("BDD").Range("D" & n).Value)
End If
'ajoute la valeur de la cellule comme nouveau membre de la collection Collec
'la clé "Ctsr(Cel.value)" provoque une erreur si le membre existe déja
Next n
'remplissage de la ComboBox1
'boucle sur tous les membres de la collection Collec
For x = 1 To Collec.Count
'ajoute la valeur du membre à la ComboBox1
ComboBox1.AddItem Collec(x)
Next x 'prochain membre de la collection

et effectivement il etait bien facile d'eviter les doublons !!!
 
Re : Une cellule critère pour filtrer une listbox

Le code est opérationnel.
Il a fallu que je le passe sous worksheet_activate pour qu'il fonctionne, etrangement sous Combobox1_Change rien n'y faisait.

Un problème est soulevé cependant, j'ai testé avec des valeurs en plus dans BDD, s'il y a des lignes vides intercalée, la combobox n'affiche pas les données de ces lignes isolées.

Pourvu qu'il y ait une solution simple (bis)
 
Re : Une cellule critère pour filtrer une listbox

Autant pour moi, je n'ai rien dit
La combo est bel et bien rempli mais pour que les "résultats" apparaissent il faut réactiver l'onglet. Cela vient probablement du Worksheet_Activate

Dans le cas de recherche multiple, c'est un procédé qui est un peu pénible.
Activer une autre feuille puis reactiver la premiere pour mettre à jour la combo...

Une idée pour pallier cet inconvénient ? Un conseil ?

Au fait merci PierreJean, très grand merci.
 
Re : Une cellule critère pour filtrer une listbox

ce que j'ai fait:

repris la sub dans un module
fait un call dans workbook_open

j'en ai mis un egalement dans worksheet_activate pour reactualiser lorsque l'on va modifier BDD

vois si cela te convient
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…