Excel : Gestion d'une liste a choix multiple

Résolu/Fermé
EoleF1 - 25 oct. 2011 à 14:07
 EoleF1 - 25 oct. 2011 à 20:06
Bonjour,

J'ai un petit problème (étrange non ? :D)


Voila j'ai créé une zone de liste, ce n'est pas la première fois donc niveau paramètrage ça va. Le soucis c'est que je n'ai jamais fait une liste a choix multiple. Et du coup je suis coincé.

D'habitude, avec un choix simple, une valeur est renvoyée dans la cellule liée en fonction de la sélection. En choix multiple la valeur ne change pas quelque soit la sélection. J'ai lié plusieurs cellules pour renvoyer les différentes valeurs de chaque choix mais ça ne fonctionne pas.

La structure du programme est assez simple :
Dans la Feuil1 je possède une liste
Dans la Feuil2 ma liste à choix multiple
J'aimerai afficher dans la Feuil2 les éléments sélectionnés dans la liste (un élément par case)

Une idée? Merci d'avance!

A voir également:

3 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
25 oct. 2011 à 14:18
Exemple

Patrice
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 25/10/2011 à 14:55
Bonjour Patrice
étant intéressé par la question, je me permet de préciser ce que je crois avoir compris en espérant que tu as la réponse:

Dans ton exemple, 1°tableau
La question est à mon sens (et c'est pour ça que la réponse m'intéresse)
dans ton premier tableau en C5 insères non pas une zone de liste déroulante, mais une zone de liste, qui fonctionne de la même façon, sauf que tu as aussi les options "choix multiple" et "choix étendu"
Si tu optes pour le choix simple, c'est OK, mais la question serait de remplir un champ complet avec l'option choix multiples, en y plaçant en colonne les codes sélectionnés

Mais si on coche "multiple" dans les options,en plaçant dans la fenêtre "cellule liée" les limites du champ récepteur, le code de la cellule en tête reste bloqué et rien ne s'incrémente.

au plaisir de te lire.

crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
25 oct. 2011 à 15:25
Salut vaucluse,

Tu peux jeter un oeil à ma réponse au dessus, j'avais compris comme toi ;-)
eric
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
25 oct. 2011 à 15:32
Salut Eric
exact, mais je n'avais pas lu ton message en envoyant le mien, j'en conclus que hors macro, il n'y a rien à faire.
Ce n'est pas trop logique alors que cette fonction liste permet de sélectionner le type de fonctionnement, et d'entrer des champs récepteurs plutôt qu'une seule cellule!
en tous cas, merci
crdlmnt
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié par Patrice33740 le 25/10/2011 à 16:41
Bonjour Vaucluse,

Tout cela est une question de sémantique :
Je parle de liste déroulante à choix multiple, qui évidemment n'a rien à voir avec une sélection multiple dans une liste de choix.

Dans ce dernier cas, l'aide VBA précise : Vous ne pouvez pas lier des zones de liste à sélection multiple en utilisant la propriété LinkedCell
Comme le dit Éric, on se retrouve donc dans l'obligation d'utiliser une macro.

Cordialement
Patrice
0
Ok merci beaucoup poru ces réponses !
Je vais passer par macro alors
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
25 oct. 2011 à 14:38
Bonjour,

Je ne pense pas que la multisélection d'une listbox soit gérable hors vba.
Il faut utiliser la propriété .selected (un tableau même taille que le nombre d'items) qui t'indique vrai si l'item est sélectionné.
Exemple qui te retourne en A l'état des items (0 à 15) :
Private Sub ListBox1_Change()
    For i = 0 To 15
        [A1].Offset(i) = ListBox1.Selected(i)
    Next i
End Sub

http://www.cijoint.fr/cjlink.php?file=cj201110/cijXZa6G5Y.xls

eric
-1