Liste déroulante choix multiple [Résolu/Fermé]

Messages postés
55
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
28 février 2018
- - Dernière réponse : Marlj
Messages postés
55
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
28 février 2018
- 28 févr. 2018 à 19:30
Bonjour,

Je voudrais avoir une cellule avec une liste de choix où l'on peut cocher plus d'un choix dans la liste déroulante.
J'ai regardé sur les forum, j'ai trouvé des exemples donnés pour un fichier en particulier, mais je n'arrive pas à l'adapter à mon fichier et il n'y a pas d'explication sur la façon de faire.
Par exemple, si mon classeur a une feuille appelée Entreprise et que dans la colonne A, j'entre le nom d'une entreprise, dans la colonne B, j'aimerais entrer les emplois disponibles dans cette entreprise. Il peut donc y en avoir plus d'un (secrétaire, concierge, etc.). J'ai une autre feuille qui s'appelle Liste qui contient une liste de métiers (cette liste est nommée "Métiers"). Alors comment je dois procéder? Est-ce seulement une VBA?

Merci beaucoup de votre aide (et ça aidera sûrement d'autres personnes qui cherchent)


Afficher la suite 

7 réponses

Messages postés
24688
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
20 novembre 2019
4890
0
Merci
Il ne devrait pas y avoir besoin de VBA

1° niveau,
par exemple en A2:A100 on commence en A2
validation par une liste comprenant les noms d'entreprises

2° niveau
dans chacune de vos feuilles, nommez la liste des métiers correspondant avec le nom de l'entreprise écrit exactement comme dans le menu déroulant 1° niveau

pour installer la liste de validations en B2:
Données/ Validation/ liste et la formule:
=INDIRECT(A2)

si besoin pour nommer:
sélectionnez le champ / Ruban / Onglet formule / définir un nom et inscrivez le nom dans le cadre en haut


crdlmnt
Marlj
Messages postés
55
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
28 février 2018
1 -
Rebonjour,

Merci de votre toujours grande rapidité à répondre. Comme le dit votre phrase, je crois que je n'ai pas été claire dans ma question :) J'aimerais vous envoyer un exemple, mais je ne vois comment inclure un fichier (désolée!!).

Je n'ai pas plusieurs feuilles. Dans ma feuille 1 (entreprise), dans la colonne A, j'entre le nom d'une entreprises (ce nom ne vient pas d'une liste) et dans les colonnes suivantes j'entre des infos pour cette entreprise (ex. coordonnées, secteur, etc.). J'ai une colonne qui s'appelle "Emplois disponibles" et je voudrais y entrer plus d'un métiers (car pour une même entreprise il peut y avoir des emplois de secrétaire, concierge, conseiller, directeur, etc.) dans la même cellule. Cette liste de métiers est dans un onglet nommé liste et la liste se nomme "Métier"

J'ai vu sur un forum, on clique sur la cellule et une liste déroulante apparaît où on peut cocher plusieurs choix séparés par un trait ou une virgule.

Si vous préférez que je vous envoie un exemple, SVP, juste me dire comment joindre un fichier.

Merci beaucoup.
Marlj
Messages postés
55
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
28 février 2018
1 -
Rebonjour Vaucluse,

Voici un exemple, ce n'est pas mon vrai fichier, question de confidentialité. Je veux la liste de choix multiple dans la colonne en jaune.

Je sens qu'il ne me manque pas grand chose avec ce que j'ai vu avec les forum, mais il me manque un détail (et c'est un peu frustrant!), alors si vous avez une VBA et le détail pour l'adapter...
Merci beaucoup, beaucoup!
Marlj
Messages postés
55
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
28 février 2018
1 -
Messages postés
50375
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
20 novembre 2019
11228
0
Merci
Bonjour Marlj

- 1) http://www.commentcamarche.com/faq/33905-listes-deroulantes-de-cellule-en-cascade
pour créer des listes déroulantes en cascade.
- 2) " je voudrais y entrer plus d'un métiers ... dans la même cellule " ; ça, c'est impossible ! Tu peux les entrer dans plusieurs cellules, et dans une nouvelle cellule faire une concaténation. Mais si tu as vu ça dans un forum, utilise donc ce que tu y as vu ; parce que moi, je ne connais rien de tel (sans VBA) ...
- 3) Pour envoyer un fichier, tu peux utiliser Cjoint.com
 1) Tu vas dans http://cjoint.com/ 
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (15 Mo maxi)
3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu fais un clic-droit dessus et tu choisis "Copier le lien"
5) Tu reviens dans ta discussion sur CCM, et dans ton message tu fais "Coller".
=>Voir la fiche http://www.commentcamarche.net/faq/29493-utiliser-cjoint
Marlj
Messages postés
55
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
28 février 2018
1 -
Bonjour,

Merci pour votre réponse et merci pour le lien cjoint.com, je l'utiliserai.

Pour ce qui est de ma liste déroulante, merci pour la liste déroulante en cascade, mais ce n'est pas de cela que j'ai besoin.
Pour l'entrée de plusieurs choix dans une même cellule, ce n'est pas "impossible". Ça se fait avec une VBA (je n'ai pas dit que je ne voulais pas de VBA, je pense qu'il y a une action de plus qui accompagne la VBA). Je vous met un lien pour vous montrer où je l'ai vu https://www.excel-downloads.com/threads/liste-selection-multiple.83182/ (voir le fichier de réponse de Sergio) Ce que je n'arrive pas à faire c'est de le transposer à mon fichier, juste le copier-coller du VBA, ça ne marche pas, il me manque une info dans la marche à suivre... de là ma demande sur ce forum.
Merci.
Messages postés
9175
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
11 novembre 2019
1659
0
Merci
Bonjour à tous

Un exemple du à eric
https://www.cjoint.com/c/HBAul5docOB

Cdlmnt
Messages postés
634
Date d'inscription
dimanche 15 novembre 2015
Statut
Membre
Dernière intervention
19 novembre 2019
66
0
Merci
Bonsoir,

Aucun exemple joint dans le post 6

Oups"désolé je n'ai pas vu le post 7 j'ai oublié d'actualiser"

Slts
Marlj
Messages postés
55
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
28 février 2018
1 -
Oui, petit oubli :), voir post 7. Merci.
The_boss_68
Messages postés
634
Date d'inscription
dimanche 15 novembre 2015
Statut
Membre
Dernière intervention
19 novembre 2019
66 -
Re

Un exemple, d'une liste déroulante à choix multiple, dans la colonne D tu peux faire un choix d'autant d'emploi que tu désires, ne pas oublier d'activer les macros pour que cela fonctionne

https://www.cjoint.com/c/HBAvZAfN7uj

Slts
Marlj
Messages postés
55
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
28 février 2018
1 -
Bonjour,

Merci, mais malheureusement, je ne peux ouvrir votre fichier, ça me dit comme message : "Impossible d'ouvrir le fichier car son format ou son extension n'est pas valide". :(
The_boss_68
Messages postés
634
Date d'inscription
dimanche 15 novembre 2015
Statut
Membre
Dernière intervention
19 novembre 2019
66 -
Bonjour,

Un autre essai....., en tout cas chez moi il fonctionne
https://mon-partage.fr/f/VOhTbudr/

Slts
Marlj
Messages postés
55
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
28 février 2018
1 -
SUPER, j'ai transposé dans mon fichier et ça fonctionne! Merci beaucoup.
J'ai une petite question supplémentaire (puis-je abuser de vos savoirs? :)), juste pour aller plus loin.

Dans votre exemple, je choisi un métier et je dois retourner dans la liste de choix pour faire un autre choix. Dans un exemple que j'ai vu, il y avait des cases à cocher et quand la liste apparaissait, on pouvait cocher plusieurs choix. Est-ce quelque chose à ajouter dans la VBA.

Merci beaucoup -à tous- de vos lumières
Cdlmnt
Messages postés
50375
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
20 novembre 2019
11228
0
Merci
Le fichier contient des macros ;
le document joint a donc le suffixe xlsm ; mais, lorsque tu vas cliquer sur le lien,
c'est un fichier en xlsx qui est proposé !
Si tu fais directement [Ouvrir] tu obtiendras le message de refus cité plus haut ...
... il faut donc faire [Enregistrer] ;
ensuite cliquer sur [Ouvrir le dossier]
et enfin, modifier le nom du fichier ainsi téléchargé
en remplaçant le dernier caractère x par m ...
Marlj
Messages postés
55
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
28 février 2018
1 -
Ah Merci! Ça fonctionne.

Bonne journée.
Messages postés
634
Date d'inscription
dimanche 15 novembre 2015
Statut
Membre
Dernière intervention
19 novembre 2019
66
0
Merci
Re

Un autre exemple que j'ai adapté sur ton fichier mais que j'ai puisé chez Boisgontier Jacques

https://mon-partage.fr/f/M69CBsQG/


Exemple de Boisgontier Jacques

http://boisgontierjacques.free.fr/fichiers/DonneesValidation/DVChoixMultListBoxOption.xls

Slts
Marlj
Messages postés
55
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
28 février 2018
1 -
Rebonjour The_boss_68. Merci de votre grande patience avec moi :)

Votre exemple avec mon fichier, c'est exactement ce que je veux. Mais je veux pouvoir le transposer dans d'autres fichier dans le futur. Dans votre exemple précédent, j'ai copié-collé votre VBA, j'ai modifier les plages et ça marché.

Dans le présent exemple, si je fais la même chose, ça ne marche pas. Mais, j'ai trouvé où je bloque (j'avance!), c'est au niveau de la ListBox.

Donc, si je copie-colle votre VBA et que je fais les modifs pour mon nouveau fichier (plage de la ligne 2 et de la ligne 4), ca ne marche pas. Dois-je modifier autre chose? Ou faire quelque chose par rapport à la ListBox? Encore merci de votre super patience avec moi!

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([D2:D23], Target) Is Nothing And Target.Count = 1 Then
Me.ListBox1.MultiSelect = fmMultiSelectMulti
Me.ListBox1.List = Sheets("Liste").Range("A2:A34").Value
a = Split(Target, " ")
If UBound(a) >= 0 Then
For i = 0 To Me.ListBox1.ListCount - 1
If Not IsError(Application.Match(Me.ListBox1.List(i), a, 0)) Then Me.ListBox1.Selected(i) = True
Next i
End If
Me.ListBox1.Height = 430
Me.ListBox1.Width = 120
Me.ListBox1.Top = Target.Top
Me.ListBox1.Left = Target.Left + Target.Width
Me.ListBox1.Visible = True
Else
Me.ListBox1.Visible = False
End If
End Sub
Private Sub ListBox1_Change()
For i = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(i) = True Then temp = temp & Me.ListBox1.List(i) & " , "
Next i
ActiveCell = Trim(temp)
End Sub
Messages postés
634
Date d'inscription
dimanche 15 novembre 2015
Statut
Membre
Dernière intervention
19 novembre 2019
66
0
Merci
Bonjour,

Un peu compliqué pour t'expliquer de but en blanc,
Si tu copies que la macro, cela ne marchera pas, il faut copier la listBox1 aussi, l'as-tu fait?? .... si non....tu ouvres le fichier que j'ai mis à ta dispo au post 16, lorsqu'il est ouvert tu clic en haut dans le bandeau sur développeur, puis sur mode création et là va s'afficher la liste complète que tu pourras copier et coller sur ton fichier perso et pour la suite je te laisse découvrir. Au cas où je reste à ta dispo

Slts
Marlj
Messages postés
55
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
28 février 2018
1 -
Wow!, ça marche!!! tu fais ma journée... ma semaine... mon mois!!! Je vais inscrire comme résolu, mais une dernière question :

Si je le fais dans un nouveau fichier, je vais coller ton VBA, mais est-ce que je peux juste insérer un ListBox (j'ai vu comment) ou je dois aussi coller TA listBox, autrement dit, y a-t-il quelque chose de spécial dans ta listBox?

Merci encore, ça va m'être très utile... et pour d'autres aussi peut-être.

Slts
The_boss_68
Messages postés
634
Date d'inscription
dimanche 15 novembre 2015
Statut
Membre
Dernière intervention
19 novembre 2019
66 -
Bonjour,

En fait ce n'est pas ma listbox mais celle que j'ai déjà pris sur le fichier de Boisgontier au post16, par contre cela ne t’empêche pas à toi de créer une listbox si tu en es capable. Ici en l'occurrence c'était du copier collé, pour faciliter les choses.

Slts
Marlj
Messages postés
55
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
28 février 2018
1 -
Merci beaucoup!

Slts