Alimentation d'une listBox, selon criteres dans Combobox

Bonjour à tous !

Actuellement dans mon fichier, j'ai un userForm1 avec des combo box.

Mon Userform2, contient une listbox1

J'aimerai alimenter cette listBox, selon les critères choisis dans les combobox de l'userFrom1 ?

J'arrive à l'alimenter via cette formule =>
ListBox1.RowSource = Sheets("Dls_actives").Range("B2:L4000").Value

Mais il n'y a actuellement pas de prise en compte des "filtres" correspondant aux combobox

Je ne sais pas comment écrire la formule

Auriez vous une piste?

je vo

us remercie par avance !

Cdlt

Bonjour Manoss76

Comme vous avez à priori la possibilité de 7 critères différents
la seule possibilité pour la ListBox est de l'alimenter avec une boucle sur toutes les lignes en testant les 7 critères possibles

Pour l'alimentation d'une Listbox par boucle vous avez des tas de sujets sur ce forum

A+

Merci pour la réponse

Je dois faire ce genre de boucle , pour chaque critère de filtre c'est ca? =>

For I = 2 To 50000

If ComboBox2.Value = "CANTELEU" Then ListBox1.Range("A" & I).Value = ComboBox2.Caption

End If

Bonjour

Dans "Dls active" il n'y a pas de proposition. Est ce dans cette feuille qu'il faut faire des recherches?

Si oui EPCI souhaité c'est dans la colonne H?

A+ François

Bonjour,

C'est de ma faute, c'est un fichier de test et je n'ai pas mis la colonne EPCI ds ma feuille... oubli de ma part...

Si on part sur les autres filtres possible , les données sont effectivement issues de la feuille 'Dls_actives"

Par exemple, si je sélectionne "LE HAVRE", dans ma combobox2, de mon userform1

Je souhaite remonter toutes les lignes de la feuille DLs_Active, avec la commune Le Havre ( colonne H)

(avec si possible la possibilité de prendre en compte plusieurs filtres, issue de mon userForm1)

A titre d'info, ce sujet reponds à mon besoin =>

https://forum.excel-pratique.com/excel/alimenter-une-listbox-multicolonne-en-fonction-d-une-valeur-d...

Notemment cette reponse =>

https://forum.excel-pratique.com/d/download?p=961228&f=56402_6064663d233de879042143

Mais je ne comprend pas le code pour l'adapter....

Cdlt

Ton besoin je le comprends mais en VBA si je dis recherche "LE HAVRE" dans la colonne H et que après tu ajoutes une colonne il faut tout reprogrammer....

Tu as aussi un textbox pour le nom et pas de colonne nom, etc....

Je veux bien t'aider mais pas en 20 fois...

dis quelle colonne correspond à quelle combobox

A+ François

Alors dans ma listBox 1 =>

Colonne A = colonne B de la feuille Dls_Active

Colonne B= colonne C de la feuille Dls_Active

Coonne C= colonne D de la feuille Dls_Active

Colonne D = colonne E de la feuille Dls_Active

Colonne E = colonne F de la feuille Dls_Active

Colonne F = colonne G de la feuille Dls_Active

Colonne G = colonne H de la feuille Dls_Active

Colonne H = colonne I de la feuille Dls_Active

Colonne I = colonne J de la feuille Dls_Active

Colonne J = colonne K de la feuille Dls_Active

Colonne K = colonne L de la feuille Dls_Active

(Ma liste à 11 colonnes)

Les résultats doivent dépendre des sélections de mes combobox en UserForm 1

EPCI = à rechercher ds colonne N feuille 'Dls_active'

Quartil = à rechercher ds colonne N feuille 'Dls_active'

Type bien = à rechercher ds colonne N feuille 'Dls_active'

Commune = à rechercher ds colonne N feuille 'Dls_active'

Nature = à rechercher ds colonne N feuille 'Dls_active'

Compo familiale = à rechercher ds colonne N feuille 'Dls_active'

J'ai remis un nouveau fichier, avec la valeur EPCi en colonne N

Dsl erreur de saisie =

Les résultats doivent dépendre des sélections de mes combobox en UserForm 1

EPCI = à rechercher ds colonne N feuille 'Dls_active'

Quartil = à rechercher ds colonne K feuille 'Dls_active'

Type bien = à rechercher ds colonne P feuille 'Dls_active'

Commune = à rechercher ds colonne H feuille 'Dls_active'

Nature = à rechercher ds colonne Q feuille 'Dls_active'

Compo familiale = à rechercher ds colonne R feuille 'Dls_active'

Bonjour manoss76

Si j'ai bien compris, voici ce que vous pouvez faire

Private Sub CommandButton1_Click()
  Dim Col As Long, dLig As Long, Lig As Long, Ind As Long
  Dim Lbx As MSForms.ListBox
  ' Définir la ListBox de l'USF2
  Set Lbx = UserForm2.ListBox1
  ' Avec al feuille
  With Sheets("Dls_actives")
    ' Dernière ligne remplie
    dLig = .Range("B" & Rows.Count).End(xlUp).Row
    ' Parcourir chaque ligne
    'Combo1 EPCI = à rechercher ds colonne N feuille 'Dls_active'
    'Combo4 Quartil = à rechercher ds colonne K feuille 'Dls_active'
    'Combo6 Type bien = à rechercher ds colonne P feuille 'Dls_active'
    'Combo2 Commune = à rechercher ds colonne H feuille 'Dls_active'
    'Combo7 Nature = à rechercher ds colonne Q feuille 'Dls_active'
    'Combo5 Compo familiale = à rechercher ds colonne R feuille 'Dls_active'
    For Lig = 2 To dLig
      If .Range("N" & Lig) Like "*" & Me.ComboBox1 & "*" _
      And .Range("K" & Lig) Like "*" & Me.ComboBox4 & "*" _
      And .Range("P" & Lig) Like "*" & Me.ComboBox6 & "*" _
      And .Range("H" & Lig) Like "*" & Me.ComboBox2 & "*" _
      And .Range("Q" & Lig) Like "*" & Me.ComboBox7 & "*" _
      And .Range("R" & Lig) Like "*" & Me.ComboBox5 & "*" Then
        Lbx.AddItem .Range("B" & Lig)
        Ind = Lbx.ListCount - 1
        For Col = 2 To 10
          Lbx.Column(Col - 1, Ind) = .Cells(Lig, Col).Value
        Next Col
      End If
    Next Lig
  End With
'UserForm1.Visible = False
UserForm2.Show
End Sub

A+

Oui Super Bruno , je vais creuser d'avantage mais ca a l'air d'etre ca !

Par hasard, vous savez comment faire pour ne plus avoir de donnée dans les combo box?

Par exemple si je ne veux plus utiliser le filtre "commune" , actuellement je suis obligé de sélectionner quelque chose

Ou alors je vide mes combobox apres affichage sur la listbox?

Re,

Une fois que la ListBox est alimentée, vous pouvez effectivement vider les Combobox

Et ensuite afficher l'USF2 ou alors vider après l'avoir affiché

A+

Il y a un combobox motif prioritaire....

EPCI = à rechercher ds colonne N feuille 'Dls_active' Correspond pas

Type bien = à rechercher ds colonne P feuille 'Dls_active' Correspond pas

Nature = à rechercher ds colonne Q feuille 'Dls_active' Correspond pas

Compo familiale = à rechercher ds colonne R feuille 'Dls_active' Correspond pas

Quand tu auras une feuille "Dls_actives" qui correspondra à ta demande le fichier ci dessous marchera...

Tu peux faire des essai avec Commune... pas avec Quartil car combobox=1,2,3 et données =Quartil 1, Quartil 2, etc...

31quartil-v1.xlsm (55.10 Ko)

A+ François

Merci à vous pour votre investissement et vos solutions !

Bonjour , @BrunoM45,

Comment je peux faire pour avoir plus de colonnes de visibles dans ma listBox?
Ca doit ce situer ici non?=>

Lbx.AddItem .Range("B" & Lig)
Ind = Lbx.ListCount - 1
For Col = 3 To 11
Lbx.Column(Col - 2, Ind) = .Cells(Lig, Col).Value
'Lbx.Column(Col - 2, Ind) = .Cells(Lig, Col).Value
Next Col

Bonsoir,

La méthode AddItem est limitée à 10 colonnes, il faut sinon utiliser l'Alimentation par List.

Mais il ne faudra plus compter sur les filtres à moins de passer pas une feuille temporaire

Rechercher des sujets similaires à "alimentation listbox criteres combobox"