Combobox

teamtiti Messages postés 61 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 28 mai 2008 - 8 févr. 2008 à 18:51
teamtiti Messages postés 61 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 28 mai 2008 - 9 févr. 2008 à 17:33
Bonjour a tous .J'ai cherché mais rien trouvé ou rien compris.
Voila j'ai plusieur comboBox et dedans j'ai une liste de stub (stub01,stub02,.................stub40) la même chose dans chaque comboBox.
Je voudrait que quand la personne a selectionné un stub dans un des comboBox celui-ci disparaisse dans les autres comboBox.
Merci de votre aide

6 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
8 févr. 2008 à 19:38
Bonsoir,

Il sera bon que tu précises ce que tu ne sais pas faire ....

1) extraire (dans une variable) le contenu de l'article sélectionné ?
2) parcourir une combobox (par une boucle FOR, par exemple) pour en analyser, article par article (index par index) le contenu de chaque article ?
3) comparer chaque contenu ainsi extrait avec celui de ta variable ?
4) supprimer un article ?
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
8 févr. 2008 à 20:52
Bonsoir a tous,

Bonsoir jmfmarques, ce que je comprend c'est que teamtiti veut mettre a jour les listes des autres combobox en fonction du contenu de la premiere. C'est a dire que la valeur (afficher) dans la premiere combobox doit etre retirer de la liste des autres Combobox . je ne connais le VB.net ou VB2005 mais voici comment je le ferais en VBA

teamtiti, je te donne une solution avec 2 combobox pour ne pas te macher le travail. Cela devrait etre un peu plus compliqué avec plus de 2 Combobox. Il te faudra peut etre passer par une variable tableau intermediaire si tu ne veux pas boucler sur les combobox. Cette variable tableau me parait d'autan plus justifiée, si c'est une selection en cascade que tu es en train de creer.

Private Sub ComboBox1_Change()
    ComboBox2.List() = ComboBox1.List() 'je met ceci ici pour mon exemple mais a toi de voir pour ton cas
    if  ComboBox1.value <> "" then UpdateCombo
End Sub

Sub UpdateCombo()
    Dim i As Integer
    For i = 0 To ComboBox2.ListCount - 1
         If ComboBox2.List(i) = ComboBox1.Value Then
                ComboBox2.RemoveItem (i)                If ComboBox1.Value ComboBox2.Value Then ComboBox2.Value ""
                Exit For
         End If
    Next
End Sub

Private Sub ComboBox2_Change()    If ComboBox1.Value ComboBox2.Value Then ComboBox2.Value "" ' pour empecher l'utilisateur d'ecrir _
    manuellement la valeur deja afficher dans la combobox1
End Sub

A+
0
teamtiti Messages postés 61 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 28 mai 2008
9 févr. 2008 à 07:49
Merci bigfish mais vb ne veut pas de Value , ListCount et RemoveItem
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
9 févr. 2008 à 13:09
Bonjour,
@bigfish :

il aurait été plus judicieux de passer la variable à comparer en paramètre.
Sub UpdateCombo(xValeur As String,xCombo1 As ComboBox,,xCombo2 As ComboBox)
    Dim i As Integer
    For i = 0 To xCombo1.ListCount - 1
         If xCombo1.List(i) = xValeur




For i = 0 To xCombo2.ListCount - 1
         If xCombo2.List(i) = xValeur




Si tu selectionnes dans combo1
   tu lances UpdateCombo xValeur,xCombo2 ,xCombo3


Si tu selectionnes dans combo2
    tu lances UpdateCombo xValeur,xCombo1 ,xCombo3


Si tu selectionnes dans combo3
     tu lances UpdateCombo xValeur,xCombo1 ,xCombo2


mais bon !
puisque  ListCount et RemoveItem ne peuvent pas être utilisées, il faudra passer par 3 tableaux
contenat chacun le contenu du combo correspondant.
Après la selection, parcouritr les deux autres tableaux,
larquer l' élément supprimé puis réemplir les combos correspondants avec les éléments non marqués.





<hr />

... Il y' en a même qui m' ont vu voler.
<hr />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
9 févr. 2008 à 13:18
A voir même si on ne pouvait utiliser qu' un seul tableau !
A approfondir...

<hr />
... Il y' en a même qui m' ont vu voler.
<hr />
0
teamtiti Messages postés 61 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 28 mai 2008
9 févr. 2008 à 17:33
J'ai cherché toute la journée et pour l'instant une partie marche j'arrive bien a enlever le stub des liste mais raffraichir sa va moin bien c'est a dire que si j'ai fais une sélection dans combobox2 il me l'enléve bien du combobox3 mais si je rechanche la selection du combobox 2 il ne me réafécte pas mon ancienne séléction dans le combobox3





Private



Sub
ComboBox2_SelectedIndexChanged(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
ComboBox2.SelectedIndexChanged


Select



Case
ComboBox2.Text


Case



"Stub1"
: Stub01()


Case



"Stub2"
: Stub01()


Case



"Stub3"
: Stub01()


Case



"Stub4"
: Stub01()


Case



"Stub5"
: Stub01()


End



Select






End



Sub






Private



Sub
ComboBox3_SelectedIndexChanged(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
ComboBox3.SelectedIndexChanged


Select



Case
ComboBox2.Text


Case



"Stub1"
: Stub02()


Case



"Stub2"
: Stub02()


Case



"Stub3"
: Stub02()


Case



"Stub4"
: Stub02()


Case



"Stub5"
: Stub02()


End



Select






End



Sub






Private



Sub
Stub01()ComboBox3.Update()


Dim
ItemObject(40)

As
System.Object


Dim
i

As



Integer






For
i = 0

To
40ItemObject(i) =


"Stub"
& i


Next
iComboBox3.Items.AddRange(ItemObject)

ComboBox3.Items.Remove(ComboBox2.SelectedItem)


End



Sub






Private



Sub
Stub02()


'ComboBox2.Items.Clear()






Dim
ItemObject(40)

As
System.Object


Dim
i

As



Integer






For
i = 0

To
40ItemObject(i) =


"Stub"
& i


Next
iComboBox2.Items.AddRange(ItemObject)

ComboBox2.Items.Remove(ComboBox3.SelectedItem)


End



Sub
0
Rejoignez-nous