Doublons toujours pas résolu [ devient fou ] [Résolu]

Messages postés
32
Date d'inscription
mercredi 14 avril 2010
Dernière intervention
20 mai 2010
- - Dernière réponse : Zer0Termi
Messages postés
32
Date d'inscription
mercredi 14 avril 2010
Dernière intervention
20 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




Merci à vous, cordialement , moi
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
72
3
Merci
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)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 111 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
32
Date d'inscription
mercredi 14 avril 2010
Dernière intervention
20 mai 2010
0
Merci
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.

Bonne journée :D
Commenter la réponse de Zer0Termi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.