Partager via

Faire une zone de liste avec plusieurs choix

Anonyme
2023-10-10T14:52:25+00:00

Bonjour,

Je cherche à faire une zone de liste. J'ai en effet besoin de faire une liste déroulante dans laquelle il est possible de cocher plusieurs choix en même temps et pas un seul comme dans une liste déroulante normale.

J'ai cherché sur le net mais je ne trouve pas (je précise que je suis sur Mac) ou alors je ne trouve pas les bons menus, ou c'est trop complexe. J'ai ajouté l'onglet Développeur et j'appuie sur "zone de liste", ce qui m'ouvre une fenêtre mais dans laquelle je ne peux pas entrer quoi que ce soit, à chaque fois ça m'inscrit "référence non valide".

Je tiens à préciser que je ne suis pas une connaisseuse aguerrie d'Excel, je fais des choses basiques, mais j'aurais vraiment besoin de ça !

Merci d'avance pour votre aide.

Microsoft 365 et Office | Excel | Other | MacOS

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

10 réponses

  1. Anonyme
    2023-10-11T12:42:03+00:00

    Bien, mais sous quelle forme est-ce que tu veux les "assigner" ? Comment est-ce que ça doit se matérialiser ? Une liste avec des colonnes et un filtrage ne conviendrait-elle pas aussi bien (tout en étant plus simple à mettre en place) ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2023-10-11T11:00:19+00:00

    Ce qu'il me faut c'est qu'à chaque nom soit assigné donc un ou plusieurs surtout types de contact (ex : adhérent, bénévoles, partenaires, financeurs, réseau science, réseau artistique,.....) par le biais d'un menu déroulant dans lequel je peux cocher plusieurs types, donc, et que je puisse ensuite filtrer quand j'ai des envois à faire.

    Karine

    0 commentaires Aucun commentaire
  3. Anonyme
    2023-10-11T07:14:39+00:00

    Disons que tu ne trouveras probablement pas des macros "toutes faites" correspondant exactement à ton besoin. Ça serait vraiment un gros coup de bol.

    Ce que j'ai mis est un exemple de comment obtenir la liste des lignes sélectionnées. Un point de départ, logiquement, pour en faire quelque chose. Mais quoi ? Que veux-tu faire une fois que tu as sélectionné un ou plusieurs éléments dans la liste ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2023-10-11T06:09:28+00:00

    Bonjour,

    Merci beaucoup pour ton explication, je vais essayer déjà d'aller jusqu'au point qui me paraît pas trop compliqué c'est à dire jusqu'à la macro. Mais là ça se complique en effet, car même si je sais ce que je veux faire, je ne sais pas du tout le transposer en "langage" macro VBA. Est ce que ça se trouve quelque part ce type de formules ?

    Merci

    Karine

    0 commentaires Aucun commentaire
  5. Anonyme
    2023-10-10T16:37:59+00:00

    C'est effectivement dans l'onglet "Développeur" du ruban que tu vas trouver le bouton pour créer une zone de liste qui te permet de sélectionner plusieurs lignes :

    .

    Donc, tu cliques sur le bouton, tu traces sur ta feuille la zone de liste. Ensuite, tu fais un clic droit sur cette zone de liste et tu demandes le "Format de contrôle..." Dans l'onglet "Contrôle" de la fenêtre qui s'ouvre tu indiques la plage d'entrée (A2:A6 dans mon illustration) et la cellule liée (ici B1). Jusque là, c'est assez simple.

    Maintenant, tu dois choisir entre "Simple", "Multiple" et "Étendue". Si tu sélectionnes "Simple", tu ne pourras sélectionner qu'une ligne dans ta liste et la valeur correspondante s'affichera en B1. Mais si tu choisis "Multiple" ou "Étendue", les choses vont devenir compliquées : tu pourras bien sélectionner plusieurs lignes, mais tu n'auras pas dans la cellule l'indication des choix faits.

    Pour obtenir les lignes sélectionnées dans une liste à choix multiples, il va falloir faire appel à une macro VBA. Comme par exemple celle-ci :

    Sub MyListBox()
    Dim MaListe As ListBox
    Dim i As Long, MonChoix As String

    MaListe = Sheets("Feuil1").ListBoxes(1)

    With MaListe
    For i = 1 To .ListCount
    If .Selected(i) Then
    MonChoix = MonChoix & i & " " & .List(i) & Chr(10)
    End If
    Next i
    End With
    MsgBox "Éléments sélectionnés :" & Chr(10) & MonChoix
    End Sub

    Ce n'est qu'un exemple, tout dépend du contexte et de ce que tu souhaites faire...

    0 commentaires Aucun commentaire