Filtre sans doublons : cbx et listbox

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 !

keepcool183

XLDnaute Occasionnel
bonjour à tous,

un deuxième message aprés celui d'hier où j'avais solicité votre aide.

DOnc la j'ai réussi à créer un filtre de la listbox grâce aux combobox, Grace à un fichier présent sur le forum, le probleme c'est que seul la première ligne s'affiche.

J'ai essayé de créer une boucle mais j'avoue que comme je debute, ça n'a pas trop marché.

Ci joint un bout du fichier.

Le but de ce fichier est de permettre un ajout automatique aprés filtre dans le devis.

Merci
 

Pièces jointes

Re : Filtre sans doublons : cbx et listbox

Bonjour keepcool183, le forum,

Dans ta liste déroulante, tu fais appel à la source "atcnom", or celle-ci est vide en A162:A199.

Remplis cette liste des noms que tu veux faire apparaître et tout rentre dans l'ordre. Il n'est pas besoin de boucle.

Bonne journée.

Jean-Pierre
 
Re : Filtre sans doublons : cbx et listbox

bonjour Jean-pierre, le fil,
Merci de t'être pencher sur mon problème.

En fait le problème ne vient pas de cette liste déroulante la. (j'ai du enlever plusieurs données pour pouvoir poster un fichier léger).

la listbox qui me gêne se trouve dans un userform (clic sur saisie produit).

Le probleme est que le systeme de Filtre ne marche que pour la première ligne, c'est à dire que :
Si j'ai plusieurs lignes qui correspondent aux critères, Une seule s'affichera dans la Listbox.

Je cherche à afficher toutes les lignes correspondant aux critères des combobox.

Merci 😉
 
Re : Filtre sans doublons : cbx et listbox

Bonjour keepcool183, jeanpierre 🙂,

Je suppose que tu veux filtrer l'affichage au fur et à mesure des sélections dans les combobox.
Dans ce cas, le code se trouvant dans le module de classe va poser problème car en choisissant le 2eme critère, cela va annuler le choix du premier.
Je te suggère d'utiliser le principe du filtre automatique que tu as mis en place pour créer la listbox.
Bref, il faut revoir tout le code...
 
Re : Filtre sans doublons : cbx et listbox

Bonsoir skoobi, Jean pierre

Effectivement je voudrais que la list se filtre grâce aux combobox.

Je n'est pas bien saisis ta remarque, je ne demande pas une réalisation à ma place juste des pistes.

Où modifier le code?

Merci 😉
 
Re : Filtre sans doublons : cbx et listbox

Re,

Où modifier le code?
Supprime le module de classe et cré le code suivant pour le combobox "critère 4":

Code:
Private Sub cbx1_Change()
Dim Elmnt As Range, Col As Integer
ListBox1.Clear
[C1].AutoFilter Field:=3, Criteria1:=cbx1.Value
For Each Elmnt In Range("C2", [C65536].End(xlUp)).SpecialCells(xlCellTypeVisible)
  ListBox1.AddItem Range("A" & Elmnt.Row).Value
  For Col = 1 To 13
    ListBox1.List(ListBox1.ListCount - 1, Col) = Cells(Elmnt.Row, Col + 1).Value
  Next
Next
End Sub
Ca devrait t'aider pour les codes des autres comboboxs.

Plus le code "Initialise" modifié:

Code:
Private Sub UserForm_Initialize()
ActiveSheet.ShowAllData
t = Range("a2:n" & Range("a65536").End(xlUp).Row): ListBox1.List = t
t1 = Range("C2:c" & Range("c65536").End(xlUp).Row): cbx1.List = t1
t2 = Range("L2:l" & Range("l65536").End(xlUp).Row): cbx2.List = t2
t3 = Range("m2:m" & Range("m65536").End(xlUp).Row): cbx3.List = t3
t4 = Range("n2:n" & Range("n65536").End(xlUp).Row): cbx4.List = t4
 
 End Sub
 
Dernière édition:
Re : Filtre sans doublons : cbx et listbox

Bonjour Skoobi, le fil

Franchement Skoobi merci j'ai adapté ton code modifié les valeurs des cbx et tout marche bien.

j'ai aussi mis une MAcro pour réinitialiser les filtres, j'ai juste un dernier point à ajuster : est il possible de faire en sorte que dans les cbx je n'est pas de doublon.

j'ai récupérer un code que JP m'a donné sur un autre fil
Code:
With ComboBox1
     If .ListCount > 0 Then .Value = Range("l" & j)
    .Value = Range("l" & j)
    '...et filtre les doublons
    If .ListIndex = -1 And Range("l" & j) <> "" Then .AddItem Range("l" & j)
End With

Le problème c'est que quand je le met dans le code des cbx que tu a réalisé ça ne marche pas.

Merci encore 🙂
 
Re : Filtre sans doublons : cbx et listbox

Re bonjour,

voici un exemple de code qui cré une liste sans doublon dans un combobox:

Code:
Private Sub UserForm_Initialize()
  Dim MonDico As Object, Cellule As Range
  Set MonDico = CreateObject("Scripting.Dictionary")
  For Each Cellule In Range(Range("a3"), Range("a65536").End(xlUp)).SpecialCells(xlCellTypeVisible)
    If Not MonDico.Exists(Cellule.Value) Then MonDico.Add Cellule.Value, Cellule.Value
  Next Cellule
  ComboBox1.List = MonDico.Items
  MonDico.RemoveAll
End Sub

Bon après-midi
 
- 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

Retour