Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Listbox

linebich

XLDnaute Junior
Bonjour les gens
jqui peut amelioer ce code qui a pour objectif
d'alimenter un dictionnaire par les valeurs qui corespond au contenu de notre combox et afficher ces modalité sans doublon dans une listebox
Private Sub ListBox1_Click()

Set D = CreateObject("Scripting.Dictionary")

Sheets("Base ").Activate
If Range("I" & (8 + I)).Value = liste_8.Value Then
L1 = Range("H" & (8 + I)).Row
Me.ListBox1 = L1

Next I
Me.ListBox1 = D.keys
End If


End Sub

l
 

linebich

XLDnaute Junior
c'est a dire l'orsque on choisi par exemple la frace en divers 8 , cette liste nous affiche les modalités qui ont la france comme pays pour qu'on puis les regarder et les chercher facilement au niveau du deuxieme combox qui 'est divers 7
 

patricktoulon

XLDnaute Barbatruc
re
alors soit tu t'exprime très mal soit ton fichier en exemple n'est pas SUFFISAMMENT représentatif de ta demande
il faut faire un peu d'effort dans les demandes si l'on veut des réponses concrètes!!
autant textuellement dans l'expression de celle ci que dans les exemples fournis
en l'etat au regard de ton tableau on sait toujours pas ce que tu veux vraiment
 

job75

XLDnaute Barbatruc
La macro ListBox1_Click ne peut pas fonctionner quand ListBox1 est vide, utilisez plutôt :
VB:
Private Sub liste_8_Change()
If liste_8.ListIndex = -1 Then ListBox1.Clear: Exit Sub
Dim x$, d As Object, tablo, i&
x = LCase(liste_8)
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
tablo = Sheets("Base").[B8].CurrentRegion.Resize(, 8) 'matrice, plus rapide
For i = 2 To UBound(tablo)
    If LCase(tablo(i, 8)) = x Then d(tablo(i, 7)) = ""
Next
If d.Count Then ListBox1.List = d.keys Else ListBox1.Clear
End Sub
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
420
Réponses
4
Affichages
455
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…