Excel 2016 : réaliser un menu déroulant avec choix multiple
Résolu
sourire_anne
-
sourire_anne -
sourire_anne -
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
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:
- Excel 2016 : réaliser un menu déroulant avec choix multiple
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel trier par ordre croissant chiffre - Guide
17 réponses
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
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
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
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
Via55,
C'était bien bloqué chez moi...
Après multiples essais, le voici : https://www.cjoint.com/c/LCCoVM2co3Q
C'était bien bloqué chez moi...
Après multiples essais, le voici : https://www.cjoint.com/c/LCCoVM2co3Q
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
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
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 :
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
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
Bonjour,
Pour la colonne C avec une macro
https://www.cjoint.com/c/LCDlLXkB4Tj
Slts
Pour la colonne C, la personne peut saisir plusieurs actions
Pour la colonne C avec une macro
https://www.cjoint.com/c/LCDlLXkB4Tj
Slts
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
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
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
https://www.cjoint.com/c/LCDmu1jhsGG
via55, c'est exactement ce que je souhaite :-)
Pour modifier le "carré jaune" et les choix, je le trouve où ? Que dans le code ?
Pour modifier le "carré jaune" et les choix, je le trouve où ? Que dans le code ?
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 :
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.
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.