Pas de doublet dans une combo box?

batteur_fou Messages postés 15 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 22 décembre 2007 - 17 nov. 2007 à 11:49
batteur_fou Messages postés 15 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 22 décembre 2007 - 17 nov. 2007 à 21:07
Bonjou à tous, j'apporte une petite colle en ce début de weekend!

Mon problème est le suivant:
    -j'ai un tableau à 2 colonnes de string qui contiennent par exemple le nom d'un objet dans la première colonne, et sa couleur dans la deuxieme. Admettons que j'ai deux objets Objet1 et Objet2, le premier en 3 couleurs (rouge, vert, bleu) et le deuxième en deux (rouge et bleu).
J'ai donc un tableau Tableau(5,2)
   
    -mon problème est de savoir comment faire pour évité, lorsque je crée une combobox contenant les noms des objets d'avoir 3 fois Objet1 et 2 fois Objet2.

    -deplus j'aimerai que une fois l'objet sélectionnén je puisse sélectionner sa couleur (pas de soucis pour cela), et quand j'appuie sur un bouton, il me supprime la ligne (objet,couleur). Par exemple, je sélectionne Objet2 en rouge, je veux que le tableau soit Tableau(4,2) avec Objet1 en rouge, vert, bleu et Objet deux en bleu.

Voilà, j'espère que ma question est assez claire...

4 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
17 nov. 2007 à 14:44
Si tu ne veux pas répéter le nom Objet1 dans ton Combobox, tu ne pourras donc plus savoir de quelle couleur d'objet il s'agit. Autrement, il faudrait que tu ajoutes la couleur à Objet1 et donc Objet1 devra se répéter...

si j'ai bien compris...

MPi²
0
batteur_fou Messages postés 15 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 22 décembre 2007
17 nov. 2007 à 17:20
Euh non, j'ai pas tout compris là...
Voilà mon tableau exemple :
| Objet1, rouge |
| Objet1, vert    |
| Objet1, bleu   |
| Objet2, rouge |
| Objet2, bleu   |

Je souhaite que ma premiere combobox affiche Objet1 et Objet2 (et non Objet1,Objet1,Objet1,Objet2,Objet2), l'autre combobox étant inactive. Puis, lorsque j'ai choisi mon objet, la seconde m'affiche les couleurs correspondantes à cet objet.

Enfin lorsque je clique sur un bouton " OK ", j'aimerai que mon tableau soit modifier, l'objet sélectionné avec sa couleur en moins. Par exemple, si je sélectionnait Objet2 en rouge, mon tableau deviendrait :
| Objet1, rouge |

| Objet1, vert    |

| Objet1, bleu   |

| Objet2, bleu   |

Est-ce que c'est plus claire?
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
17 nov. 2007 à 20:38
Donc, lorsque tu charges un de tes combobox, vérifie si l'item y est déjà.
Tu peux utiliser une fonction comme celle-ci

Function IsInList(Valeur As Variant, Controle As Control) As Boolean
    Dim I As Integer
   
    For I = 0 To Controle.ListCount - 1
        If CStr(Valeur) = Controle.List(I) Then
            IsInList = True
            Exit For
        End If
    Next
End Function

Tu n'as donc qu'à vérifier si la donnée est dans la liste avant de la charger
....
If Not IsInList(MaValeur, Combobox1) Then
    Combobox1.AddItem MaValeur

MPi²
0
batteur_fou Messages postés 15 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 22 décembre 2007
17 nov. 2007 à 21:07
Merci!
0
Rejoignez-nous