Excel 2016 : réaliser un menu déroulant avec choix multiple

Résolu/Fermé
sourire_anne - 28 mars 2022 à 14:38
 sourire_anne - 29 mars 2022 à 16:36
Bonjour,
J'aimerais réaliser deux menus déroulants avec choix multiple.
Mes connaissances se limitent actuellement au choix unique dans un menu déroulant.
J'ai d'ores et déjà créé dans une feuille à part les menus déroulants sous forme tableau.
La validation des données est aussi prête.

Seulement, j'ai besoin de proposer :
1- un menu déroulant avec choix multiple, en bloquant lorsque des choix sont différents des propositions , dans une colonne
2 - un menu déroulant avec choix multiple, avec priorisation des choix (1er = principal, 2 = secondaire, 3 = complémentaire), sur 3 colonnes.

Avez-vous une démo pour m'aider ?
Pouvez-vous m'expliquer le pas à pas ?

En tant de besoin, je peux vous envoyer le fichier.

Je vous en remercie particulièrement,

Bonne journée
Anne


Configuration: Windows / Chrome 99.0.4844.84
A voir également:

17 réponses

via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
28 mars 2022 à 15:24
Bonjour Anne

Oui sans un exemple de ton fichier et des choix possibles difficile de t'aider !
Fichier à poster sur cjoint.com https://www.cjoint.com/
, faire créer un lien, le copier et revenir le coller ici

Explique aussi ce que tu veux dira par "en bloquant lorsque des choix sont différents des propositions , dans une colonne "
avec un ou des exemples précis

Dans l’attente
Cdlmnt
Via

0
sourire_anne
28 mars 2022 à 15:52
Bonjour,

Cjoint.com refuse de me proposer un joint. Il y aurait il un bug aujourd'hui ?

Pour bloquant, je veux dire que la personne ne pourra remplir rien d'autres que ce qui lui est proposé.

Bien cordialement,
Anne
0
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
Modifié le 28 mars 2022 à 16:27
Non chez moi ça marche bien
une fois le fichier téléchargé bien aller au bas de la page pour avoir le bouton Créer le lien


Si ça ne marche pas cjooint tu peux passer par un autre site comme WeTransfer


0
sourire_anne
28 mars 2022 à 16:48
Via55,
C'était bien bloqué chez moi...
Après multiples essais, le voici : https://www.cjoint.com/c/LCCoVM2co3Q
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DjiDji59430 Messages postés 4114 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 23 septembre 2024 668
28 mars 2022 à 17:18
Raté !!!
Ton lien ne fonctionne pas

Crdlmt
0
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
28 mars 2022 à 17:49
Si le lien fonctionne
0
sourire_anne
28 mars 2022 à 17:22
Et là ?...
https://www.cjoint.com/c/LCCpwaGgwwQ
0
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
28 mars 2022 à 18:09
Re,

Pour ta problématique 1 c'est déjà pris en compte
Pour la problématique 2 je ne vois pas d'autre moyen que de passer par une macro
https://www.cjoint.com/c/LCCqhC7SvnG

Cdlmnt
Via
0
sourire_anne
29 mars 2022 à 10:15
Bonjour Via55,
Merci pour ta réponse.

J'ai du mal à comprendre ta réponse dans le tableau.
Pour la colonne C, la personne peut saisir plusieurs actions. Comment faire autre que par un menu déroulant simple, comme présenté dans l'exemple ?

Pour les colonnes D, E, F, j'ai du mal avec le commentaire. je pense faire simple surtout que nous avons 600 lignes à répondre.

Bonne journée,
Bien cordialement,
Anne

https://www.cjoint.com/c/LCDh6mBhubQ
0
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
Modifié le 29 mars 2022 à 12:03
Bonjour Anne

Pas possibilité de choix multiples dans une liste déroulante par formule
Il faut mieux passer par des colonnes avec les différentes actions et cocher celles choisies
https://www.cjoint.com/c/LCDjSJdYsyG

Pour interdire 2 fois la même réponse dans les colonnes choix 1 choix 2 choix 3 pas moyen de faire autrement que passer par la macro :
Private Sub Worksheet_Change(ByVal Target As Range)
' si entrée dans la plage I2:K1000 (NB :modifier la plage si nécessaire)
If Not Intersect(Target, Range("I2:K1000")) Is Nothing Then
    'NB.SI sur la ligne entre I et K pour compter le nombre d'items équivalent à celui choisi dans liste déroulante
    a = WorksheetFunction.CountIf(Range("D" & Target.Row & ":F" & Target.Row), Target.Value)
    ' si item choisi existe déjà dans la ligne
        If a > 1 Then
        'on annule en remplaçant le choix par du vide
        Range(Target.Address) = ""
        End If
End If
End Sub

Pour mettre la macro dans ton fichier réel il suffit de la copier, dans ton fichier réel d'ouvrir l'éditeur VBA avec le raccourci ALT+F11, de choisir dans l'arborescence à gauche le nom de la feuille dans laquelle doit s'appliquer la macro, de double-cliquer dessus et dans la page blanche de droite coller la macro, modifier la plage de cellules où elle doit s’appliquer si nécessaire (pas même colonnes que dans exemple) et fermer l'éditeur VBA

Si tu ne veux pas de macro alors il faut procéder comme pour les actions et mettre 8 colonnes de choix, on entrera dans ces colonnes le choix de priorité 1, 2 ou 3 . possible alors par validation de données d'interdire 2 fois le même choix
https://www.cjoint.com/c/LCDkcYCJFfG

Cdlmnt
Via

0
sourire_anne
29 mars 2022 à 11:53
Et pour une liste à selection multiple, est ce la solution ?
Comment faire ?
0
The_boss_68 Messages postés 928 Date d'inscription dimanche 15 novembre 2015 Statut Membre Dernière intervention 10 juin 2024 177
29 mars 2022 à 13:39
Bonjour,
Pour la colonne C, la personne peut saisir plusieurs actions


Pour la colonne C avec une macro

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

Slts
0
sourire_anne
29 mars 2022 à 13:43
comment modifier les propositions existantes dans la macro par les Vraies ?
0
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
29 mars 2022 à 14:01
1) revoir mon post 10 j'avais rajouté des infos après coup que tu n'a pas du lire
2) Pour une sélection multiple il faut là encore passer par une macro en VBA faisant ouvrir un userform avec une zone de liste à choix multiple et retranscrivant les données choisies dans la cellule
https://www.cjoint.com/c/LCDl6upBd7G
0
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
29 mars 2022 à 14:22
Autre possibilité que celle indiquée dans mon post 15, toujours par macro bien sûr, pas moyen de faire autrement mais ici sans userform mais avec zone de liste à cocher (et + mis entre les choix, pourrait se faire aussi sur le modèle avec userform du post 15
https://www.cjoint.com/c/LCDmu1jhsGG
0
sourire_anne
29 mars 2022 à 14:52
via55, c'est exactement ce que je souhaite :-)
Pour modifier le "carré jaune" et les choix, je le trouve où ? Que dans le code ?
0
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
29 mars 2022 à 15:54
Pour modifier les choix c'est dans la feuille Menus déroulants
Si la liste des choix est plus longue que celle actuelle il faut modifier la plage (en gras ci dessous) dans la macro :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([c2:c1000], Target) Is Nothing And Target.Count = 1 Then
Me.ListBox1.MultiSelect = fmMultiSelectMulti
Me.ListBox1.List = Sheets("Menus déroulants").Range("A3:A8").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 = 90
Me.ListBox1.Width = 100
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

Pour modifier la taille de la fenêtre de choix qui s'ouvre c'est aussi dans la macro ci-dessus
Me.ListBox1.Height = 90 détermine la hauteur
et Me.ListBox1.Width = 100 détermine la largeur

Quand à la couleur jaune pour la changer il faut aller dans le Ruban - Développeur et cliquer sur Mode création, la liste de choix apparait - clic droit dessus puis Propriétés et dans la fenêtre qui s'ouvre modifier la couleur de la propriété Backcolor

Si tu n'as l'onglet Développeur dans le ruban voilà ce que dit l'aide Microsoft :
L’onglet Développeur n’est pas affiché par défaut, mais vous pouvez l’ajouter au ruban.
Sous l’onglet Fichier, voir Options>Personnaliser le ruban.
Sous Personnaliser le ruban et Onglets principaux, activez la case à cocher Développeur.
0
sourire_anne
29 mars 2022 à 16:36
merci pour tout
0