XL 2019 Filtre multiple

  • Initiateur de la discussion Initiateur de la discussion JohnBill
  • 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 !

JohnBill

XLDnaute Occasionnel
Bonjour à tous les confinés qui doivent surement comme moi mettre un peu d'ordre dans leurs fichiers excel.
J'aurais une question (surtout à l'intention de Boisgontier car je tente d'utiliser une macro qu'il a publié dans un précédent post), mais que je n'arrive pas à faire fonctionner.
On dirait que l'userform ne s'initialise pas.
Le filtre automatique d'excel étant limité en occurences, j'essaye de faire la même chose à l'aide d'une macro avec listbox et case à cocher pour faire une interro multiple.
Bien entendu, si un autre féru d'excel m'apporte une solution, je suis preneur et le remercie par avance.
Je joint le fichier auquel il manque surement quelque chose.
 

Pièces jointes

Bonjour,
En mettant en commentaire l'appel à la procédure EnteteListBox dans l'évènement Initialize du userform, j'obtiens ceci. Il y a bien les entêtes ???
Capture.PNG
 
Bonjour,

Le tableau n'a pas d'en-tete.
J'ai ajouté un autre programme générique: recherche multi-colonnes multi-mots
J'ai le même qui permet les ajouts/modifs.

Il faut 2 secondes au départ pour constituer le dictionnaire des mots -clés .
Ce dictionnaire peut être supprimé.



Boisgontier
 

Pièces jointes

Dernière édition:
Merci à vous deux pour vos réponses rapides.
J'ai effectivement modifié la plage de référence du tableau ( il ne fallait pas inclure les entêtes) et cela fonctionne mais j'ai trois petites questions qui j'espère seront les dernières :
1) Que faut il modifier dans la listbox pour filtrer sur les noms d'artistes ?
2) Faut il modifier la plage de référence du tableau si je rajoute des données ou se modifie t-elle toute seule ?
3) Quelle est la grandeur maximale possible du tableau ?
 
VB:
Dim f, NbCol, NomTableau, TblBD()
Private Sub UserForm_Initialize()
  NomTableau = "Tableau1"
  TblBD = Range(NomTableau).Value
  NbCol = UBound(TblBD, 2)   ' modif
  Set d = CreateObject("scripting.dictionary")
  For i = LBound(TblBD) To UBound(TblBD)
    d(TblBD(i, 2)) = ""
  Next i
  Me.ChoixListBox1.List = d.keys
  EnteteListBox
End Sub

Private Sub ChoixListBox1_change()
  Affiche
End Sub

Sub Affiche()
  Set dchoisis1 = CreateObject("Scripting.Dictionary")
  For i = 0 To Me.ChoixListBox1.ListCount - 1
    If Me.ChoixListBox1.Selected(i) Then dchoisis1(Me.ChoixListBox1.List(i, 0)) = ""
  Next i
  n = 0: Dim Liste()
  For i = LBound(TblBD) To UBound(TblBD)
     tmp = TblBD(i, 2)    'modif
     If (dchoisis1.exists(tmp) Or dchoisis1.Count = 0) Then
         n = n + 1
         ReDim Preserve Liste(1 To NbCol, 1 To n)
         For k = 1 To NbCol
            Liste(k, n) = TblBD(i, k)
         Next k
     End If
  Next i
  If n > 0 Then Me.ListBox1.Column = Liste Else Me.ListBox1.Clear
End Sub


2) Faut il modifier la plage de référence du tableau si je rajoute des données ou se modifie t-elle toute seule ?

Un vrai tableau se modifie tout seul
Le votre n'est PAS un vrai tableau.

Boisgontier
 

Pièces jointes

Dernière édition:
Alors là ! Je dis CHAPEAU.
C'est plus que je n'en espérais.
C'est la Nec Plus Ultra des solutions par rapport au filtre automatique d'Excel qui limite le nombre de ligne à afficher.
Je te remercie de ta solution qui a aussi l'avantage de me faire progresser dans mes connaissances en VBA.
🙂🙂🙂
 
- 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