ListBox

GueDevelopper Messages postés 4 Date d'inscription dimanche 9 mars 2008 Statut Membre Dernière intervention 9 mars 2008 - 9 mars 2008 à 14:03
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 - 9 mars 2008 à 17:16
Bonjour à tous,
je suis vraiment, à l'échelle des développeurs, au plus bas niveau... Je souhaiterais donc me documenter sur certains aspects du langage Virtual Basic et pour une application que je suis en train de créer, il me vient une question à poser à propos du contrôle ListBox:
      j'ai une ListBox dans laquelle j'ai inséré des éléments 'String' et je souhaiterais que lorsqu'on double-clique sur l'un de ses éléments, une variable associée à cet élément UNIQUEMENT soit incrémentée de 1. Ainsi, pour un élément plusieurs fois sélectionné, je pourrais obtenir le nombre de fois pour lequel il a été sélectionné. C'est pour une application qui comptabiliserait le nombre de voix pour des candidats (dans la ListBox) lors d'un dépouillement d'une élection.
 Je voudrais donc savoir s'il y a une variable associée à chaque élément de la ListBox et si oui, si je peux l'exploiter. Dans le cas où c'est possible, pouvez-vous me montrer la syntaxe?
Merci beaucoup et bonne programmation!
"Cesse de croire et instruis-toi!"

9 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
9 mars 2008 à 14:14
Bonjour,

Aucune variable "associée", non...

Un évènement déclenché, par contre : OUI

Et rien n'empêche d'associer l'incrémentation d'un compteur de ton choix à la survenur d'un évènement ...(qu'il soit celui d'une listbox ou de tout autre contrôle...)
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 mars 2008 à 15:09
Juste mon avis personnel.

Si le nombre de candidat n'est pas trop important, il serait peut-etre plus pratique d'avoir un bouton par candidat, plutot que d'aller chercher un nom dans une listbox. Ca sera plus rapide pour l'utilisateur.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
GueDevelopper Messages postés 4 Date d'inscription dimanche 9 mars 2008 Statut Membre Dernière intervention 9 mars 2008
9 mars 2008 à 15:16
jmfmarques,
Le problème avec les compteurs, c'est qu'il doit y en avoir un pour chaque élément de ma ListBox, et aussi pour chacun des éléments rajoutés lors de l'utilisation de l'application (eh oui, lors d'un vote, il y a souvent des candidats inattendus =) ). Donc j'avais bien pensé à cette solution mais je ne sais pas si je peux la mettre en oeuvre dans mon cas, et donc je ne sais pas le faire dans le cas favorable...

Casy,
c'est aussi une solution qui s'offre à moi: une TextBox où se trouve le nom du candidat avec, en face, un button pour incrémenter d'une voix, mais le problème majeur qui se pose est qu'on ne sais pas le nombre exact de candidats au final(comme dit précédemment, il peut s'en rajouter), et je ne sais pas si on peut créer au fur et à mesure un ensemble de TextBox&button lors de l'exécution de l'application...

Merci de votre aide, si vous avez une solution, n'hésitez pas à m'en parler!!

"Cesse de croire et instruis-toi!"
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
9 mars 2008 à 15:57
Je ne vois vraiment pas ce qui t'empêcherait d'utiliser un compteur !

1) - en lieu et place d'une listbox, tu peut utiliser une ListView et te servir d'une colonne cachée comme compteur
2) - même avec une listbox, tu peux, à ton gré, y adjoindre une seconde listbox invisible et dont les index correspondent à ceux de la listbox visible pour y totaliser les votes reçus par candidat
3) - tu peux également utiliser un tableau dynamique à cet effet de compteur/candidat (toujours en faisant correspondre les index)...

Il y a en fait une foule de solutions possibles, pour peu que l'on se retrousse les manches (pas forcément trop !!!)...
0

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

Posez votre question
GueDevelopper Messages postés 4 Date d'inscription dimanche 9 mars 2008 Statut Membre Dernière intervention 9 mars 2008
9 mars 2008 à 16:02
Evidemment, je pense que cela peut se faire, mais ce n'est pas parce que je ne veux pas mettre la main à la pâte, c'est plutôt que je ne connais pas encore les principales fonctions et éléments de Visual Basic, voilà pourquoi je demande de l'aide =).
Même si je n'ai pas tout saisi de ce que tu m'a proposé, je vais me renseigner dessus...

"Cesse de croire et instruis-toi!"
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 mars 2008 à 16:02
C'est le temps qui risque de manquer peut-etre, les bureaux de votes ferment dans moins de 2 heures dans les petites comunes, celle-là même ou il peut y avoir des candidat de dernière minutes.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
9 mars 2008 à 16:32
Bonjour,



Une idée en passant :
Associer un tableau de comptage avec un le tabeau des noms des candidats.



Dim total(10)  As Integer
Dim nom(10)    As String

Private Sub Form_Load()
   Dim i As Integer
  
   For i = 0 To 10
      nom(i) = Chr$(65 + i):   List1.AddItem nom(i)
   Next
End Sub

Private Sub List1_Click()
   Dim n As Integer
   
   n = List1.ListIndex

   total(n) = total(n) + 1
End Sub

pour récupérer les votes :
For i = 0 To 10: Print nom(i), total(i): Next

@+ Cheyenne
0
GueDevelopper Messages postés 4 Date d'inscription dimanche 9 mars 2008 Statut Membre Dernière intervention 9 mars 2008
9 mars 2008 à 16:55
Cheyenne,


mci de me proposer une solution, mais je ne connais pas certains mots et ça ne marche pas : je l'ai testé et plusieurs messages d'erreur sont affichés...Dis-toi aussi que j'ai la version VB2005, est-ce la bonne syntaxe? Moi j'en sais rien... Peut-être j'ai mal testé aussi...

- que représente List1.AddItem nom(i)
- que signifie : nom(i) = Chr$(65 + i):   List1.AddItem nom(i)
??
Merci




"Cesse de croire et instruis-toi!"
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
9 mars 2008 à 17:16
Autant pour moi, j'ai zappé le VB2005 et je t'ai donné une idée pour VB6.



List1.AddItem nom(i) tu ajoutes un Item à ta liste.
nom(i) = Chr$(65 + i) tu construit ton tableau des noms, c'était pour exemple. Chr$(n) te donne un caractère dont le code ASCII est n.  65 pour A, 66 pour B, etc...


Tu aurais plus intérêt à utiliser Excel, ainsi tu aurais une trace des votes.

@+ Cheyenne
0
Rejoignez-nous