J'ai déjà posté sur ce sujet mais en vain, je relance donc une dernière fois ma demande (last tentative avant pétage d'ordi :D):
Vilà j'alimente une combobox à partir du choix fait dans une première combobox. L'ennuie c'est que j'ai des doublons et que je n'arrive pas les enlever ( depuis une semaine et demie quand même :). voici mon code qui, j'espère, vous seras utile:
Private Sub ComboBox2_Enter() ' Programme qui s'execute lorsque l'on clique sur la combobox pour définir la catégorie
If ComboBox4.Value <> "" Then
'on initiale la combo comme pour la combobox4
ComboBox2.Clear
'on récupère le contenu de la première combo
vVAr1 = ComboBox4.Value
'on remplit la seconde combo en se servant de la valeur de la première comme filtre
For Each c In Worksheets("Listes").Range("B7", "B5000")
If c = vVAr1 Then
vVAr2 = c.Offset(0, 1).Value
ComboBox2.AddItem vVAr2
'on trie la combobox2
ComboBox2.List = ListTrie(ComboBox2.List)
End If
Next
Else: MsgBox "Veuillez choisir un constructeur."
End If
Salut
La meilleure façon de ne pas avoir de doublon, c'est de ne pas ajouter d'item s'il existe déjà - Lapalisse (1470-1525)
Je ne vois pas de code qui s'occupe de supprimer les doublons ici ...
As-tu tapé "doublon combobox" parmi les codes du site ?
Il y a pourtant des exemples.
Il faut apprendre à chercher avant d'apprendre à programmer.
Donc, avant de faire un AddItem, il te suffit de parcourir tous les items existants de ta ComboBox à la recherche d'un Item qui serait le même que celui que tu t'apprêtes à insérer.
Une simple fonction suffit :
Private Function IsItemExists(ByRef monItem As String) As Boolean
Dim r As Long
For r = 0 To (ComboBox2.ListCount - 1)
If StrComp(ComboBox2.List(r), monItem, vbTextCompare) = 0 Then
IsItemExists = True
Exit For
End If
Next r
End Function
Ici, on utilise StrComp au lieu d'un test standard = afin de s'affranchir des min/maj.
et, au lieu de faire directement ton AddItem :
If Not IsItemExists(vVAr2) Then ComboBox2.AddItem vVAr2
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Hey,
j'aurais du préçiser comme sur mes anciens posts que j'avais bien chercher mais que le résultat ne suivait pas.... bref. Merci de ta réponse clair et rapide.