XL 2019 Afficher les noms des checkbox sélectionné dans une listbox

Tipeu

XLDnaute Nouveau
Bonjour a tous,

Je suis a la recherche d'une solution pour générer le nom de mes checkbox sélectionnés dans une liste box visible a coté en direct.
Photo ci dessous : pour la démonstration j'ai cliqué sur ma checkbox nommé 1A j'aurais voulu que son nom apparaisse dans la listbox et si possible d'y rajouter un complément de phrase.
1595511586118.png

Merci de votre aide, un jeune padawan qui a envie d'apprendre mais bloque un peu tout seul malgrés toutes les aides dispo sur le web.
 

Dranreb

XLDnaute Barbatruc
Oui, peut être, mais il ne faut absolument pas poursuivre dans cette voie.
La base ça doit être le tableau des trous possibles, et si on tient aux CheckBox il faut que le CkxCollection soit capabler de renvoyer dans un Long() la liste des numéros de lignes dans ce tableau des CheckBox cochées afin de pouvoir y retrouver les coordonnées du centre quand on clique sur une ligne de la ListBox. La première chose à faire c'est de chargez ce tableau dans une variable tableau Private et de remplacer cette stupide série de CkxCln.Add constants par une boucle qui l'explore. j'ai donné les formule pour les argument X et Y en fonction des Centre X et Centre Y. Il resterait à y communiquer le numéro de ligne utilisé comme compteur dans cette boucle.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Ça a des avantages et des inconvénients par rapport aux Dictionary.
Les avantages: Accès positionnel possible à un membre de la collection., parcours possible par boucle For Each In
Les inconvénients: Clés String uniquement supportées, impossibilité d'en extraire les tables des clés et des items.
 

laurent950

XLDnaute Accro
Bonjour @Dranreb

J'ai posté le fichier et commenté est Aérer le code pour bien voir ou j'ai cette problématique de la variable
Collection (dans le module de Classe)

Notamment cette (Variable Object Cln)
- qui est impossible a récupérer a travers une classe
- Comme aussi depuis un module standard

La procédure Test (Ne sert a rien) c'est juste pour récupérer l'objet dans cette procédure !
- avoir accès a cette variable depuis la classe.

Par contre même dans le module de classe la variable Cln est vide (Nothing)
VB:
Property Get LectCln() As Collection
'
'
'
    Set LectCln = Cln   ' Cln est Vide ? (Cln = Nothing)
'
'
'
'
End Property

pourtant il devrait y avoir des valeurs dans Cln (Puisque je suis dans la classe à se moment là !)

Cela coince @Dranred ?

Mille merci pour les multiples solutions que vous m'apporter au fils du temps.
 

Pièces jointes

  • Temp (Test Variable Collection dans Classe).xlsm
    28.6 KB · Affichages: 13

Dranreb

XLDnaute Barbatruc
Bonsoir.
Non, c'est normal que la collection Cln du nouvel exemplaire de CkxCollect créé dans la sub test soit vide puisqu'il n'y a eu aucun appel à sa méthode Add, qui seule y ajoute des éléments.
C'est vrai que le Set Cln As New Collection est inutile s'il a été déclaré Private Cln As New Collection.
Rappel: toutes les données même Private sont propre à l'exemplaire, contrairement aux procédures qui sont propres au type.
 

laurent950

XLDnaute Accro
Bonsoir @Dranreb
Merci pour cette réponse je vous Poste se que j'ai résolu.

La question : C'est possible de faire la même choses avec des
Property plutot que des Publics ?
Je veux dire pour tous le code
Les declarations Public sont obligatoire et incontournable (Pour réalisé ce programme ?)
C'est juste une question que je me pose et que je ne suis pas arrivé a réalisé avec tous en privée (Property)
 

Pièces jointes

  • Temp (Compte Item var Cln Collection Dans Module de Classe.xlsm
    28.6 KB · Affichages: 5

Dranreb

XLDnaute Barbatruc
Que voulez vous dire par "il n'y a pas d'héritage entre les classes" ?
Il est possible de définir un module de classe Interface pour pouvoir en définir plusieurs variantes qui commenceront par une instruction Impléments suivi du nom de l'interface.
 

Statistiques des forums

Discussions
312 310
Messages
2 087 113
Membres
103 474
dernier inscrit
taha1995