anecaca
Messages postés30Date d'inscriptionjeudi 24 février 2011StatutMembreDernière intervention24 avril 2011
-
23 avril 2011 à 19:08
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024
-
24 avril 2011 à 13:49
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...
anecaca
Messages postés30Date d'inscriptionjeudi 24 février 2011StatutMembreDernière intervention24 avril 2011 23 avril 2011 à 20:01
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
anecaca
Messages postés30Date d'inscriptionjeudi 24 février 2011StatutMembreDernière intervention24 avril 2011 23 avril 2011 à 23:10
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?
Vous n’avez pas trouvé la réponse que vous recherchez ?
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 23 avril 2011 à 23:19
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.
anecaca
Messages postés30Date d'inscriptionjeudi 24 février 2011StatutMembreDernière intervention24 avril 2011 24 avril 2011 à 09:50
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.
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 24 avril 2011 à 13:49
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.