Comment créer une liste de choix multiple

zombe

XLDnaute Occasionnel
Salut le forum

Je souhaite créer une liste de choix multiple mais je m'y connais pas trop.
En effet, dans mon combobox1, je suis appeler à operer 1 ou plusieurs choix mais le combobox ne me le permet pas. On m'a parler de liste de choix multiple mais...
Merci de m'aider avec des explications à l'appui pour que je puisse m'en sortir dans les cas avenir.
Cdlt
 

Pièces jointes

  • Choix_multiple.xlsm
    20.4 KB · Affichages: 232

Papou-net

XLDnaute Barbatruc
Re : Comment créer une liste de choix multiple

Bonsoir zombe,

Effectivement, le combobox ne permet pas de sélectionner plusieurs lignes. Par contre, le listbox oui, à condition de régler sa propriété MultiSelect à True (False par défaut).

Pour te permettre de voir la différence, j'ai intégré un listbox sur la copie de ton fichier ci-jointe. N'hésites pas à contrôler ou à modifier les propriétés de ces contrôles.

Espérant avoir aidé.

Cordialement.
 

Pièces jointes

  • Copie de Choix_multiple.xlsm
    21.8 KB · Affichages: 276

zombe

XLDnaute Occasionnel
Re : Comment créer une liste de choix multiple

Salut Papou

Merci pour ta proposition.
Si j'ai bien compris, les éléments de la lisbox restent affichés.
Ils ne sont pas cachable comme les éléments d'un combobox ou il faut dérouler pour voir les éléments.
J'ai le code ci-dessous qui permet d'operer plusieurs choix dans une liste deroulante d'une feuille excel.
Dans un combo n'est-il pas possible d'adapter ce code pour qu'il permette d'ateindre le résultat?
Je demande cela car pour moi, la liste deroulante "ressemble" au combobox.
C'est une proposition et cela ne signifie une remise en cause de votre solution pour ma part.
merci pour tout Papou.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("B9,B12"), Target) Is Nothing And Target.Count = 1 Then
     Application.EnableEvents = False
     ValSaisie = Target
     Application.Undo
     p = InStr(Target, ValSaisie)
     If p > 0 Then
       Target = Left(Target, p - 1) & Mid(Target, p + Len(ValSaisie) + 1)
       If Right(Target, 1) = ":" Then
          Target = Left(Target, Len(Target) - 1)
       End If
     Else
       If Target = "" Then
         Target = ValSaisie
       Else
        Target = Target & ":" & ValSaisie
       End If
     End If
     Application.EnableEvents = True
  End If
End Sub
 

Papou-net

XLDnaute Barbatruc
Re : Comment créer une liste de choix multiple

RE zombe,

Les listbox peuvent également s'afficher sur une seule ligne, tout en autorisant la saisie multiple avec les flèches d'ascenseur.

Seulement, ces flèches sont peu commodes à l'utilisation en mono-ligne car trop petites. Pour y pallier, j'ai repris l'exemple précédent dans lequel le listbox se déroule lorsqu'il prend le focus et se replie lorsqu'il le perd. C'est un pis-aller mais ça fonctionne parfaitement.

Concernant ta seconde question sur les combobox, on peut toujours réaliser l'équivalent des listes déroulantes sur les feuilles, mais je ne pense pas que cela soit pratique. D'autant qu'à chaque validation d'une option le combobox se replie et qu'il faut re-cliquer sur la flèche pour ré-afficher les options.

Mais si tu y tiens, pourquoi pas ? J'ai donc appliqué cette méthode au combobox1, en prévoyant de ne pas enregistrer les doublons éventuels. Pour la démo, un msgbox affiche les options cliquées lorsque tu quittes le combobox1, mais il est bien sûr possible d'envisager tout autre traitement des données.Reste un inconvénient : il est impossible de supprimer une option alors qu'avec le listbox ça reste faisable.

Je pense que tu as désormais tous les éléments à ta disposition pour te permettre de choisir la solution qui te conviendra le mieux.

En te souhaitant une bonne soirée.

Cordialement.
 

Pièces jointes

  • Copie 01 de Choix_multiple.xlsm
    24.2 KB · Affichages: 167

zombe

XLDnaute Occasionnel
Re : Comment créer une liste de choix multiple

Salut Papou

Merci pour tes solutions et les éclaircissements apportés.
J'ai pu expérimenter les 2 et j'opte pour le combobox avec choix multiples.
La liste deroulante de la feuille excel que j'utilise ne se comporte pas comme le modele que vous avez réalis pour le combobox. En effet, avec ma liste deroulante, tous les choix opérés s'affichent mais le combox que vous avez réalisé, un seul élément s'affiche mais le msgbox permet de voir tous les éléments choisis.
Est-il possible de faire en sorte que tous les choix s'affichent dans le combobox?
Nous sommes déjà habitués au choix multiples dans une liste deroulante donc il nous sera facile d'en continuer avec les combobox.
Vous dites :"il est impossible de supprimer une option alors qu'avec le listbox ça reste faisable."
Avec la touche delete, j'arrivais à supprimer l'élément indésirable mais lettre par lettre.
Ex : quand je souhaite effacer NEANT, en appuyant 5fois sur la touche delete, j'obtienais l'effacement du mot NEANT.
Juste une question de passage :comment valider les choix d'une listbox? je coche plusieurs éléments mais...
Merci
 

Papou-net

XLDnaute Barbatruc
Re : Comment créer une liste de choix multiple

Bonjour zombe,

Une petite erreur s'est glissée dans mon fichier. En effet, si tu choisis des noms qui comportent des séquences de lettres identiques, seul le premier choix est retenu : c'est dû à mon souci d'éliminer les doublons. J'y ai donc remédié et je t'envoie la version corrigée.

Concernant l'affichage des options choisies dans le combobox, JB (que je salue au passage) y a comme à son habitude magistralement répondu.

Pour la validation des choix dans la liste déroulante, un msgbox s'affiche dès que tu cliques sur un autre contrôle.

En conclusion, si je puis me permettre de te donner mon humble avis :

Les listbox me paraissent les mieux adaptées au niveau de l'ergonomie du programme. C'est d'ailleurs dans cette optique, je pense, que les concepteurs d'Excel ont conçu ces contrôles différents.

Cordialement.
 

Pièces jointes

  • Copie 02 de Choix_multiple.xlsm
    23.7 KB · Affichages: 112
  • Copie 02 de Choix_multiple.xlsm
    23.7 KB · Affichages: 109
  • Copie 02 de Choix_multiple.xlsm
    23.7 KB · Affichages: 95

zombe

XLDnaute Occasionnel
Re : Comment créer une liste de choix multiple

Salut Papou

Pour des problèmes de connexions, j'ai pas pu donner une suite rapide.
Merci pour ta solution et surtout ton conseil.
Je me rallie à ta solution.
Je souhaite encore comprendre certains comportement des listbox:
Lorsqu'on déroule la listbox pour faire les choix, après les avoir fait est-ce que la lixtbox peut se refermer?
Au qu'un msgbox apparaisse pour indiquer les choix qui ont été fait, est-il possible que les éléments choisis s'affichent dans la case de la listbox et que la listbox se referme également.
Mon constat général est que la listbox ne se referme pas une fois les choix éffectués.
C'est ce que je souhaite solutionner si possible.
Merci pour tout
 

Papou-net

XLDnaute Barbatruc
Re : Comment créer une liste de choix multiple

Bonjour zombe,

Je te remercie d'avoir choisi ma proposition et, après avoir lu ton dernier message, j'ai revu ton fichier.

Je suis revenu à l'utilisation du combobox1 mais, afin d'afficher la liste des options choisies, j'y ai superposé un label (Label10).

Un clic sur Label10 affiche la liste déroulante ComboBox1. Si tu désires refermer cette liste déroulante sans choisir un nom, il te suffit de cliquer sur la flèche à droite.

Chaque clic dans ComboBox1 opère de la manière suivante : si le nom de la banque n'est pas dans la liste de Label10 il y est ajouté et, s'il y figure déjà, il y est retiré.

Espérant avoir répondu à ta demande initiale.

Bonne fin de WE.

Cordialement.
 

Pièces jointes

  • Copie 02 de Choix_multiple.xlsm
    23.3 KB · Affichages: 125
  • Copie 02 de Choix_multiple.xlsm
    23.3 KB · Affichages: 133
  • Copie 02 de Choix_multiple.xlsm
    23.3 KB · Affichages: 136

zombe

XLDnaute Occasionnel
Re : Comment créer une liste de choix multiple

Salut papou

Vraiment merci à toi pour ta disponibilité et tes solutions.
J'ai bcp apprécié.
Afin de me permettre de pouvoir l'adapter à mon cas, je souhaite comprendre certaines choses:
Je dois donc coller le code du combo dans le combo et ensuite ajouter un label sur le combobox avec son code.
J'ai remarqué que si je sélectionne le meme élément 2 fois, cela annule le choix:est-ce bien cela.
Si oui je vois que cela résoud aisement un problème que je rencontrais avec le combo (effacer un élément choisi).
Sinon est-il possible de trouver un moyen pour pouvoir effacer un élément sélectionné par megard?
merci papou
 

Papou-net

XLDnaute Barbatruc
Re : Comment créer une liste de choix multiple

RE zombe,

Effectivement, tu dois superposer un Label sur ton ComboBox, et recopier le code pour ces deux contrôles.Ce label te permet de visualiser la liste des noms choisis, ce qui serait autrement compliqué à gérer avec le seul ComboBox. Attention à régler la largeur du Label pour ne pas masquer la flèche de déroulement du Combo.

Pour répondre à ta dernière question, si tu veux annuler une saisie par erreur il te suffit de le sélectionner à nouveau dans la liste. C'est la solution la plus simple que j'ai trouvée.

Cordialement.
 

Discussions similaires

Réponses
15
Affichages
544