Enlever un item d'une combo box

Signaler
Messages postés
30
Date d'inscription
jeudi 24 février 2011
Statut
Membre
Dernière intervention
24 avril 2011
-
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
-
Hello,

Dans mon petit programme j'utilise des "combo box" de type 2 "Dropdown list" pour ne pas que l'utilisateur puisse y entrer d'autres valeurs que celles proposées.

Donc j'entre des nombres de 1 à n comme ceci, au moment où la page est chargée:

For i = 1 to n '(ici 5)
Combo_A.additem i
Next i


Jusque là tout va bien. Mais je veux que lorsque j'appuie sur un bouton "Cmd_Next" Les chiffres choisit au préalable n'apparaissent plus dans le Combo box. Voilà ce que je code:

Private Sub Cmd_Next Click()

Msgbox (val_combo.Text) 'Message que j'utilise pour vérifier ce que le programme enregistre et qui fonctionne bien

combo_A.removeitem val(combo_A.text)' j'ai essayé de coder str(val(combo_A.text)) plutôt que combo_A.Text


Là où ça coince c'est que quand mon premier nombre dans le combo est 1, il me retire le 2, donc j'ai ajouté un "-1" dans le removeitem

combo_A.removeitem val(combo_A.text) -1 ou str(val(combo_A.text)-1)


du coup je met 1 j'appuie sur Next le 1 Disparait comme il le faut. Je sélectionne ensuite le 2 j'appuie sur Next et là c'est le 3 qui disparait....

J'espère que cela vous paraîtra un peu plus logique qu'à moi...

PS: i est déclaré comme integer...

8 réponses

Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Regardes plutôt la propriété ListIndex, je crois que ce sera plus adapté.

Mon site
Messages postés
30
Date d'inscription
jeudi 24 février 2011
Statut
Membre
Dernière intervention
24 avril 2011

Re,

Merci pour ta réponse.

Je voudrais savoir pourquoi la Listbox (j'ai supposé que c'était la même chose que ListIndex, mais c'est peut être là que se trouve mon erreur..) est plus adaptée, parce que il ce peut que j'ai 100 chiffres dans cette Listbox ce qui ne s'avère pas très pratique vu qu'il faut faire défiler tout les nombres avant d'arriver au 100ème.

Et en fait mon programme ne fonctionne pas mieux. Voilà mon nouveau code:

For i = 1 To N
    List1.AddItem i
Next i                 'ça c'est toujours ok.

Private Sub Cmd_Next Click()

MsgBox (Val(List1.Text)) 'Là déjà ça ne fonctionne plus 0 s'affiche dans la msgbox
List1.RemoveItem Val(List1.Text) 'Et là quel quel que soit le chiffre selectionner, après le premier click sur Next c'est le 1 qui part, et après le second click c'est le 2 et ainsi de suite...

End sub
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Non, ListIndex est une propriété (au moins des ListBox, mais je pense qu'elle porte le même nom pour un ComboBox).

Mon site
Messages postés
30
Date d'inscription
jeudi 24 février 2011
Statut
Membre
Dernière intervention
24 avril 2011

Je suis désolée mais j'ai beau cherché mais je ne comprends pas je ne vois pas où changer cette propriété. J'ai même regardé des trucs sur le net mais je vois pas... Et mettre cette propriété ça change quoi?
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

J'ai vérifié (VB6), ListIndex existe pour les ComboBox.
Cette propriété te donne l'index sélectionné (base 0)
Pour supprimer, utilises la valeur qu'elle te retourne.
Regardes sa réaction.

Mon site
Messages postés
30
Date d'inscription
jeudi 24 février 2011
Statut
Membre
Dernière intervention
24 avril 2011

Salut!

Désolée mais je comprends toujours pas... J'ai cherché dans la fenêtre de propriétés de la combo box ou de la list box, et je ne trouve pas de propriété Listindex. Mais! J'ai enfin capté qu'il fallait l'utiliser en combo_A.Listindex!!! Donc j'ai essayé de remplacé Additem par ça mais ça ne fonctionne pas, j'ai essayé plusieurs manière de l'utiliser mais je ne comprends pas comment ça fonctionne.

Et je sais pas si c'était clair dans mon premier message mais les nombre que je mets dans ma combo box doivent impérativement commencé à 1 et vont jusqu'à n déterminé précédemment.
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

ListIndex n'est visible que dans le code, pas dans l'édition de la fenêtre.
Essayes Combo1.ListIndex, ou mieux, regardes dans l'aide.

Mon site
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Après relecture, je pense que l('on commence à se mélanger, montres du code ou réexplique (ce que tu as, ce que tu veux) afin d'éviter de trop dériver.