multi-selection combobox pour remplir une listbox

lelou54

XLDnaute Nouveau
Bonjour à tous le forum,

voilà j'essai depuis des jours à renseigner une listbox avec divers critère de combobox, mais en vain...
voilà j'ai crée une useform sur laquelle je vais sélectionner une machine, dans mon exemple machine A. Cette action lance une deuxième useform ou je dois renseigner le choix 1 ou seront lister les données du tableau choix 1 dans la feuille 'machine A'. Selon le choix fait, je vais afficher dans mon choix 2 la liste des données du tableau choix 2 correspondant. Pour au final afficher les résultats 'solution' et fichier dans la listbox avec possibilité de cliquer sur le lien si il y en a un . J'espère avoir été clair, car ce n'est pas facile à expliquer. Je joins mon fichier qui sera peut-etre plus explicite.

J'ai vu sur des fichiers exemples, qu'il était possible d'ajouter un petit rond qui change d'état quand on selectionne une ligne sur la listbox, et voulais savoir quelle ligne vba il fallait entrer pour avoir ceci.

Merci de vos réponses
 

Pièces jointes

  • Fichier selection.xls
    148 KB · Affichages: 151

Dranreb

XLDnaute Barbatruc
Re : multi-selection combobox pour remplir une listbox

Bonsoir.
J'aurais une solution facile à mettre en œuvre si vous aviez de simples listes de toutes les combinaisons de choix possibles, et que vous vouliez que ceux ci apparaissent en ordre alpha dans les listes de chaque ComboBox. Donc en répétant sur toutes les lignes de choix détaillés la valeur du choix global qui s'y rapporte. Mais il ne serait pas nécessaire que ces listes soient classées conformément à cette arborescence. En somme une liste de toutes les solutions avec à coté 2 colonnes pour les valeurs de Choix1 et Choix2 qu'elles concernent.

P.S. Hé, ce serait même plus simple de n'avoir qu'une seule liste mais avec une 3ème colonne pour la machine, qui serait aussi d'abord choisie dans un ComboBox !
 

Pièces jointes

  • ComboBoxCasc.zip
    18.5 KB · Affichages: 211
  • ComboBoxCasc.zip
    18.5 KB · Affichages: 230
  • ComboBoxCasc.zip
    18.5 KB · Affichages: 246
Dernière édition:

lelou54

XLDnaute Nouveau
Re : multi-selection combobox pour remplir une listbox

Bonjour Dranreb, le forum

Je trouve votre idée intéressante et je voulais savoir si vous aviez un fichier exemple à me montrer??
Sinon je n arrive pas a lire les fichiers inclus dans le fichier zip....ou je ne sais pas comment les lires.

Merci de vos réponses

Cordialement
 

Dranreb

XLDnaute Barbatruc
Re : multi-selection combobox pour remplir une listbox

Bonjour.
Normalement il suffit de les importer depuis l'éditeur VB.
Un exemple de programmation est donné dans le module de classe ComboBoxCasc, mais je vous aiderai si vous avez des difficulté à l'adapter dans un classeur joint muni de vos essais.
 

lelou54

XLDnaute Nouveau
Re : multi-selection combobox pour remplir une listbox

Bonjour Dranreb, le Forum,

j'ai regarder votre code qui est très complet, mais là pour moi c'est une usine à gaz....Je débute en vba et ne connais vraiment que les bases minimums....j'essai d'adapter le code mais pour l'instant sans succès ...merci en tout cas de votre aide

j'essai encore de comprendre ....je pense qu'il va falloir faire une petite formation

merci encore de votre aide :)
 

Dranreb

XLDnaute Barbatruc
Re : multi-selection combobox pour remplir une listbox

Bonjour.
Si vous avez déjà constitué une liste à 3 colonnes et n'arrivez pas à faire tourner ces instructions dans l'userform :
VB:
Dim WithEvents CBC As ComboBoxCasc ' Déclaration d'un objet ComboBoxCasc avec évèvements.
Private Sub Userform_Initialise()
Set CBC = New ComboBoxCasc  ' Procure une instance à l'objet.
CBC.CouleurSympa          ' Permet de distinguer si les ComboBox contiennent un choix prévu ou non. Peu utile s'ils ont .MatchRequired = True.
CBC.Plage Feuil1.[A2].Resize(Feuil1.[A65536].End(xlUp).Row - 1) ' Indiquer au moins une colonne de la plage du tableau à couvrir.
CBC.Add Me.ComboBox1, "A" ' Enseigne le ComboBox du 1er choix comme devant recevoir des listes de choix prise de la colonne "A"
CBC.Add Me.ComboBox2, "B" ' Enseigne le ComboBox du 2ième choix comme devant recevoir des listes de choix prise de la colonne "B"
CBC.Add Me.ComboBox3, "C" ' Enseigne … etc. Mettez autant de CBC.Add qu'il y a de ComboBox à gérer.
CBC.Actualiser            ' Démarre la gestion des ComboBox
End Sub
alors joignez votre classeur que je voie pourquoi.

Important : Dans Outils, Références, cherchez dans la liste et cochez "Microsoft Scripting Runtime"

P.S. Je suppose donc que vous arriver à le faire tourner. Comme pour des procédures d'objets Worksheet ou autres, utilisez ensuite, pour implanter les modèles de procédures dont vous aurez besoin, les listes déroulantes qui surmontent la fenêtre le code. Celle de gauche contient l'objet CBC. Pour accéder à la plage du tableau, plus besoin de méthode Range de la feuille la contenant, vous pouvez utiliser CBC.PlgTablo à la place. La procédure CBC_Bingo que vous aurez implantée reçoit en paramètre la liste des numéros de lignes dans cette plage dont il faut garnir la ListBox.
À +
 
Dernière édition:

Statistiques des forums

Discussions
312 490
Messages
2 088 882
Membres
103 981
dernier inscrit
vinsalcatraz