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
 

patricktoulon

XLDnaute Barbatruc
re
bonjour linebich , job75
je crois que ça va bien plus loin que le dictionnaire non alimenté

je crois qu'il y a non compréhension du principe d'item
 

linebich

XLDnaute Junior
voila le fichier veuillez jeter un regard sur la liste que j'ai ajouter au niveau du formalaire pour comprendre l'objectif derriere
 

Fichiers joints

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:

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas