Zer0Termi
Messages postés32Date d'inscriptionmercredi 14 avril 2010StatutMembreDernière intervention20 mai 2010
-
3 mai 2010 à 08:58
Zer0Termi
Messages postés32Date d'inscriptionmercredi 14 avril 2010StatutMembreDernière intervention20 mai 2010
-
3 mai 2010 à 10:08
Hello à toutes et à tous,
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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 3 mai 2010 à 09:55
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)
Zer0Termi
Messages postés32Date d'inscriptionmercredi 14 avril 2010StatutMembreDernière intervention20 mai 2010 3 mai 2010 à 10:08
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.