Tri automatique listbox en fonction de saisie combobox

Jonathan1986

XLDnaute Nouveau
Bonjour à tous, bonjour le forum,

Je fais appel à vous car je suis débutant en vba et ce ue je veux faire dépasse mes connaissances, je n'ai e plus pas trouvé de solutions sur les forums (ou n'ai pas le niveau pour adapter certains codes), j'espère que quelqu'un aura un peu de temps à me consacrer :)

Voila j'ai un UF qui choisi des produits pour les mettre dans le tableau d'un autre onglet (je n'ai pas encore codé la copie d'un produit). Le problème est que j'aurais beaucoup de produits. Actuellement quand je fais un choix dans la listbox, deux valeur texte sont renvoyées dans deux combobox. Je voulais savoir s'il y avait un moyen de filtrer le tableau source quand on saisie dans une des deux combobox (source combo1 = colonne A, source combo2=colonne B).

Par exemple si je tape ELI dans la combo1 je voudrais que le tableau de la listbos n'affiche que les lignes pour lesquelles la valeur de la colonne A commence par ELI.

Voici le code qui met ma sélection dans les controls :


' Initialisation UF
Private Sub UserForm10_Initialize()
Dim i&, fin&, aa
With Feuil10
fin = .Range("A" & Rows.Count).End(xlUp).Row
aa = .Range("A2:T" & fin)
For i = 1 To UBound(aa)
aa(i, 20) = i + 1
Next i
L2.List = aa
End With
End Sub



' sélection dans LB et affichage dans les TB
Private Sub L2_Click()
Dim lag&, aa
Dim CTRL As Control
For Each CTRL In Me.Controls
If TypeOf CTRL Is MSForms.TextBox Or TypeOf CTRL Is MSForms.ComboBox Then
CTRL = ""
End If
Next CTRL

If L2.ListIndex = -1 Then Exit Sub
On Error Resume Next
With Feuil7
CB1 = L2.List(L2.ListIndex, 0)
CB2 = L2.List(L2.ListIndex, 1)
TB1 = L2.List(L2.ListIndex, 4)
TB2 = L2.List(L2.ListIndex, 17)
TB3 = L2.List(L2.ListIndex, 18)
TB4 = L2.List(L2.ListIndex, 5)
TB7 = L2.List(L2.ListIndex, 3)
TB8 = TB7
TB10 = L2.List(L2.ListIndex, 6)
TB11 = L2.List(L2.ListIndex, 7)
TB12 = L2.List(L2.ListIndex, 8)
TB13 = L2.List(L2.ListIndex, 9)
TB14 = L2.List(L2.ListIndex, 10)
TB15 = L2.List(L2.ListIndex, 11)
TB16 = L2.List(L2.ListIndex, 12)
TB17 = L2.List(L2.ListIndex, 13)
TB26 = Application.VLookup(TB10, Range("Tableausans1"), 3, False)
TB27 = Application.VLookup(TB11, Range("Tableausans1"), 3, False)
TB28 = Application.VLookup(TB12, Range("Tableausans1"), 3, False)
TB29 = Application.VLookup(TB13, Range("Tableausans1"), 3, False)
TB30 = Application.VLookup(TB14, Range("Tableausans1"), 3, False)
End With
End Sub

Je voudrais que quand l'on tape dans CB1 ou CB2 la listbox se trie ...

Merci d'avance pour votre aide et votre temps :)
a+
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 208
Membres
103 158
dernier inscrit
laufin