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
 

Fichiers joints

xUpsilon

XLDnaute Impliqué
Bonjour,

Pour une "liste déroulante" il te faut une listbox. Tu peux regarder sur internet comment celle-ci fonctionne. En revanche je ne comprends pas le fait que tu veuilles une listbox "conditionnelle", qu'entends tu par là ?
Si c'est effectivement une listbox que tu veux je pourrais t'aider à l'utiliser.

Bonne continuation
 

Steve8585

XLDnaute Nouveau
Bonjour xUpsilon,

Merci pour ton retour rapide.
Effectivement, dans ma première colonne je saisis l'équipe souhaitée, et en fonction du résultat de ce choix, la liste de la deuxième colonne est différente. Une liste conditionnelle, quoi !
Le truc est que cette liste conditionnelle ne me permet pas de choisir plusieurs attributs (par exemple, dans le fichier joint, si je choisis l'équipe "A", je voudrais pouvoir sélectionner dans la colonne 2, via un formulaire par exemple, "PromoA1" et "PromoA2".

Steve
 

xUpsilon

XLDnaute Impliqué
Alors je vois plusieurs solutions.
Soit tu veux garder en continu (un peu comme dans ton fichier) toutes les équipes à qui tu veux faire des offres. A ce moment là je te propose de faire plusieurs listbox, ainsi tu peux sélectionner plusieurs équipes, et pour ces équipes attribuer à chacune une listbox supplémentaires, qui aurait des options personnalisées liées à celle-ci.
Sinon, si tu souhaites uniquement sélectionner une équipe à la fois, et que les options sont les mêmes pour chaque équipe, une combobox serait plus efficace, tu rentrerais le nom de l'équipe en haut, et la combobox te permettrait de lister tes options en dessous.

Je te laisse regarder ce que cela donne avec une listbox ou une combobox et me dire ce que tu trouves le plus adapté.

Bonne continuation
 

Steve8585

XLDnaute Nouveau
En colonne A, je veux une liste déroulante classique. Je choisis une seule équipe. En colonne B, je veux une liste conditionnelle (par rapport au résultat de la colonne A) et dans cette liste je voudrais avoir la possibilité de sélectionner plusieurs éléments (via un formulaire).

Steve
 

xUpsilon

XLDnaute Impliqué
A ce moment là je te propose de faire un UserForm sur lequel tu entres une combobox qui te permettra de choisir une équipe, puis une listbox qui te permettra de sélectionner plusieurs options (les options proposées seront celles que tu auras décidé de montrer à l'équipe sélectionnée).
Je te propose de commencer à chercher comment coder ça par toi même, tu as toutes les clés en main à présent, ce serait intéressant que tu te familiarises avec le VBA.

Bonne continuation
 

Steve8585

XLDnaute Nouveau
En fait, je te dis "j'ai faim, je n'ai pas de quoi manger, peux-tu m'apporter ton aide ?". Tu me réponds "Comment tu sais que t'as faim ?". Je te donne mes symptômes malgré l'explicité de ma requête. Et tu me réponds "Eh bien, je te conseille de manger".
Quelle philanthropie remarquable ! :p

Avis à une âme charitable !
Je ne maîtrise pas ne connais rien en langage VBA. J'ai un besoin impérieux, je cherche une réponse à ma problématique, dans la mesure du possible et des compétences de la communauté. Je ne pense pas que ce soit une requête si spécifique. Ce doit être assez classique, je pense. Mais je n'ai pas le temps de "faire pousser du blé pour manger" ;)

Un grand merci d'avance.

Steve
 

Steve8585

XLDnaute Nouveau
Je savais que je frappais chez le bon tavernier. Merci à toi. Promis, dès que j'aurai assez de force, je sèmerai dans mon intérêt (car je ne suis pas très adepte de l'assistanat) et celui de la communauté (j'aime transmettre aussi).

A bientôt !

Steve
 

Steve8585

XLDnaute Nouveau
Hello xUpsilon !

La soirée fut productive ? :)
Ce serait top parce que j'ai l'impression que soit mon appel à l'aide n'émeut personne, soit ma demande n'est pas aussi simple que je le pensais.

Steve
 

djidji59430

XLDnaute Barbatruc
Bonjour à tous,

Qu'est ce qui ne te plait pas dans le fichier que tu nous propose ?
Tes listes fonctionnent correctement !

Crdlmt
 

Steve8585

XLDnaute Nouveau
Bonjour djidji59430,

Fais un effort, camarade ! Lis au moins le titre... Sans même évoquer les différents messages répétitifs.

Une seconde liste, conditionnée par le résultat de la première, avec la possibilité de choisir plusieurs éléments de cette liste.

Steve
 

djidji59430

XLDnaute Barbatruc
Et ils vont ou, ces plusieurs éléments ??
Et qu'est ce qui distingue alors le 1er choix du 2 éme ?
OU alors il fait trois listes .....

Crdlmt
 

xUpsilon

XLDnaute Impliqué
Bonjour

J'ai pas eu beaucoup de temps libre jusqu'à présent, mais à partir de Jeudi je suis en congés (c'est férié en Allemagne hehe), donc je regarde ce que je peux faire !
 

Steve8585

XLDnaute Nouveau
Bonjour xUpsilon !

OK, top ! Je te remercie. Je regarde en parallèle si je trouve. Je te tiens informé, au cas où.

Bonne journée !

Steve
 

xUpsilon

XLDnaute Impliqué
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
 

Fichiers joints

Steve8585

XLDnaute Nouveau
Bonsoir xUpsilon,

T'es génial ! Un grand merci pour ton temps et ton partage.
Ça t'ennuyerait de copier le code en réponse à mon message ? Parce que mon PC du boulot exprime des réticences à ouvrir ton fichier.

Steve
 

xUpsilon

XLDnaute Impliqué
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.
 

xUpsilon

XLDnaute Impliqué
Le UserForm1 se présente de cette manière au fait :
temp.JPG
Avec "Choisir l'équipe" qui est une simple textbox, le truc en dessous qui est un combobox et le grand rectangle blanc une listbox.

Voilà tu sais tout
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas