XL 2013 Liste déroulante conditionnelle avec sélection multiple

Steve8585

XLDnaute Nouveau
Bonjour à tous,

Je souhaite créer une liste déroulante conditionnelle avec la possibilité de sélectionner un ou plusieurs attributs dans cette liste (sûrement via un formulaire).
J'ai regardé un peu sur le net, apparemment il faut passer par une macro, ce que je ne maîtrise quasiment pas (en tout cas pas la rédaction).
Vous trouverez en pièce jointe l'exemple de fichier sur lequel je souhaite appliquer cette liste déroulante.

Un grand merci d'avance de votre aide.

Steve
 

Pièces jointes

  • Liste déroulante conditionnelle à sélection multiple.xlsx
    18.6 KB · Affichages: 26

xUpsilon

XLDnaute Accro
Re Steve,

J'ai réussi à prendre un peu de temps pour toi.
Voici ci-joint un exemple de ce que l'on peut faire.
A titre indicatif quelques précisions :
- regarde bien le code du UserForm pour pouvoir l'adapter à tes besoins, j'ai tout commenter pour que tu puisses comprendre facilement, mais c'est pas franchement compliqué (pour visionner le code, onglet Développeur (non affiché par défaut), puis Visual Basic, puis clic droit sur "UserForm1" et "Code")
- les listes de données, que ce soit pour le noms des équipes ou pour les options, doivent être rangées en colonnes, je ne connais pas de possibilité où l'on puisse avoir les options sur des cases en ligne
- dans mon exemple, j'ai simplement pris comme source de données les cases que j'avais rempli ("Listbox1.rowsource = "B2:B5"" par exemple), mais si ces listes sont dynamiques, je te conseille d'insérer un petit bout de programme qui cherche la dernière ligne remplie de ton tableau et qui adapte la "taille" du RowSource en fonction de nombre de lignes d'options disponibles.

J'espère que c'est ce que tu voulais.

Bonne continuation
 

Pièces jointes

  • Multichoix conditionnel.xlsm
    18.2 KB · Affichages: 32

xUpsilon

XLDnaute Accro
temp.JPG

Alors voici à quoi ressemble ma feuille, le bouton c'est un simple contrôle de formulaire dans la catégorie "Contrôles" de l'onglet "Développeur", et le code qui en découle c'est :
VB:
Sub Bouton1_Cliquer()
    UserForm1.Show
End Sub
En sortie du bouton et
Code:
Private Sub ComboBox1_Change()
    Select Case ComboBox1.ListIndex 'On regarde quel index a été sélectionné par l'utilisateur (attention les index commencent à 0)
        Case 0 'Si premier index sélectionné
        ListBox1.RowSource = "B2:B5" 'On prend comme liste de possibilités les valeurs des cases de la colonne de la première équipe
        Case 1 'Si deuxième index sélectionné
        ListBox1.RowSource = "C2:C5" 'On prend comme liste de possibilités les valeurs des cases de la colonne de la deuxième équipe
        Case 2 'etc
        ListBox1.RowSource = "D2:D5" 'etc
        Case 3
        ListBox1.RowSource = "E2:E5"
        Case Else
        ListBox1.RowSource = ""
    End Select
End Sub

Private Sub UserForm_Initialize()
'Initialisation de la liste de possibilités du combobox avec les valeurs des cellules de A2 à A6
    ComboBox1.RowSource = "A2:A6"
End Sub
Dans le UserForm1.
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 789
Membres
101 817
dernier inscrit
carvajal