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

Résolu
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

Configuration: Windows / Chrome 99.0.4844.84

17 réponses

  1. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  2. sourire_anne
     
    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
  3. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  4. sourire_anne
     
    Via55,
    C'était bien bloqué chez moi...
    Après multiples essais, le voici : https://www.cjoint.com/c/LCCoVM2co3Q
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. DjiDji59430 Messages postés 4278 Date d'inscription   Statut Membre Dernière intervention   717
     
    Raté !!!
    Ton lien ne fonctionne pas

    Crdlmt
    0
    1. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Si le lien fonctionne
      0
  7. sourire_anne
     
    Et là ?...
    https://www.cjoint.com/c/LCCpwaGgwwQ
    0
  8. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  9. sourire_anne
     
    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
  10. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  11. sourire_anne
     
    Et pour une liste à selection multiple, est ce la solution ?
    Comment faire ?
    0
  12. The_boss_68 Messages postés 959 Date d'inscription   Statut Membre Dernière intervention   182
     
    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
  13. sourire_anne
     
    comment modifier les propositions existantes dans la macro par les Vraies ?
    0
  14. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  15. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  16. sourire_anne
     
    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
  17. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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