VBA - Filtre ListBox

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

yusukens

XLDnaute Occasionnel
Bonjour
d'après plusieur topic du forum j'ai réussi a filtrer un ListBox selon un ComboBox.

par contre ça saute 2 lignes si je le fait en 3 colonnes.

voila mon code :

Code:
Private Sub ComboBox1_Change()
Dim CHOIX
Dim NBref
CHOIX = ComboBox1.Value
NBref = Range("K1")
'Effacer la liste LISTE
LISTE.RowSource = ""
'Remplir le tableau LISTE après filtrage
For i = 3 To NBref
    If Range("C" & i).Value = CHOIX Then
        Me.LISTE.AddItem (Range("  B" & i))
        Me.LISTE.List(LISTE.ListCount - 1, 1) = Range("B" & i)
        Me.LISTE.AddItem (Range("  C" & i))
        Me.LISTE.List(LISTE.ListCount - 2, 2) = Range("C" & i)
        Me.LISTE.AddItem (Range("  D" & i))
        Me.LISTE.List(LISTE.ListCount - 3, 3) = Range("D" & i)
    End If
Next i
End Sub


Pouvez vous m'aidez s'il vous plait
 
Re : VBA - Filtre ListBox

Re,

en rouge à supprimer, en bleu à modifier:

For i = 3 To NBref
If Range("C" & i).Value = CHOIX Then
Me.LISTE.AddItem (Range(" B" & i))
Me.LISTE.List(LISTE.ListCount - 1, 1) = Range("B" & i)
Me.LISTE.AddItem (Range(" C" & i))
Me.LISTE.List(LISTE.ListCount - 1, 2) = Range("C" & i)
Me.LISTE.AddItem (Range(" D" & i))
Me.LISTE.List(LISTE.ListCount - 1, 3) = Range("D" & i)
End If
Next i
 
Re : VBA - Filtre ListBox

Salut encore moi
Pourai tu m'expliquer deux petit truc sur le code ? j'ai beau chercher je ne comprend pas.

pourquoi mettons nous cette ligne ?
Code:
Me.LISTE.AddItem (Range(" B" & i))
Si je l'enleve ça ne marche plus et si je change la lettre "B" par un autre ça marche encore.

Peut tu m'expliquer cette ligne ?
Me.LISTE.List(LISTE.ListCount - 1, 1) = Range("B" & i)

Un dernier truc, je vois que après le filtre nous avons plus d'entete,
Je ne vois pas ou on doit mettre le ColumnHeads
 
Re : VBA - Filtre ListBox

AddItem cré la nouvelle valeur de la liste dans la première colonne, ça revient à faire:
Me.LISTE.List(LISTE.ListCount - 1, 0) = Range("A" & i).
La propriété List se définit comme ceci:
List(ligne,colonne) sachant que la première ligne ainsi que la première colonne vaut 0.
Dans ce cas précis, LISTE.ListCount - 1 = 0.
Un dernier truc, je vois que après le filtre nous avons plus d'entete,
Je ne vois pas ou on doit mettre le ColumnHeads
Comme la listbox n'est plus alimenté par la propriété RowSource, l'entete ne peut être récupéré (enfin d'après moi).
 
- 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

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
479
Réponses
4
Affichages
330
Retour