Liste sous excel

Fermé
Sandra - 18 mai 2007 à 17:54
 Utilisateur anonyme - 25 févr. 2009 à 17:24
Bonjour à tous !!

Je suis en ce moment en train de faire un doc sous excel pour le boulot et voila ce que j'essaie de faire, mais en vain :

Pour faire simple voici un exemple :

J'ai une liste de mobiliers, une partie de cette liste concerne le mobilier d'une salle de bain (baignoire, douche, WC,...), la seconde partie concerne le mobilier d'une cuisine (table, chaise, cuisinière, four,...).

J'ai donc créé 2 listes sous excel : 1 me permettant de dire si la pièce concernée est la salle de bain ou la cuisine et la 2ème pour choisir le mobilier.

Le pb est que je n'arrive pas à relier les 2 listes entre elles. Autrement dit, quand je sélectionne dans une case la salle de bain (avec la liste) j'aimerais que dans la collone d'à côté, seuls les meubles de la salle de bain me soient proposés et non tous les meubles. Une première sélection est ainsi faite automatiquement juste en choisissant la pièce concernée.

Voila, c'est tout. Je sais pas si c'est compliqué à faire.

Si quelqu'un a une solution à me proposer, je suis preneuse.

Merci pour votre aide !!

A+
A voir également:

15 réponses

Utilisateur anonyme
18 mai 2007 à 19:20
Bonjour Sandra,

exemple :

Postulat :

Je nomme la première liste [ Piece ] avec les valeurs
en [ A16 et A17 ], valeurs [ Cuisine ] et [ Salle De Bain ].

Em mode création, un double clic sur cette première liste
t'amène à la routine de l'évènement :

Private Sub Piece_Change()

    Select Case (Piece.Value)
        Case "Cuisine": Mobilier.ListFillRange = "$D16:$D18"
        Case "Salle De Bain": Mobilier.ListFillRange = "$C16:$C18"
    End Select
    
End Sub
'


en ayant placé les deux listes de mobiliers en $D16:$D18
et $C16:$C18.

donc le contenu de la liste [ Mobilier ] sera fonction du choix
de la liste [ Piece ].

Lupin
1
Resalut !!

Je te remercie pour ta réponse mais j'ai oublié de préciser que j'y connais pas grand chose en macro sous excel.

J'imagine que le petit prog à lui tout seul ne suffit pas.

Si t'as d'autres éléments à me fournir ...

A+
0
Utilisateur anonyme
19 mai 2007 à 13:33
Bonjour Sandra,

Je refais l'exemple :

Procédons par étape ...

1.) En [ $A16 et $A17 ], j'inscris les valeurs [ Cuisine et Salle de bain ]

2.) J'insère une première liste déroulante que je nomme [ Piece ]

3.) Dans les propriétés de la liste [ Piece ], j'incris la valeur :
.....[ $A16:$A17 ] à la propriété [ ListFillRange ]

4.) En [ $C16 à $C20 ], j'inscris le mobilier de la cuisine, soit :
.....[ Cuisinière, Frigidaire, Table, Chaise, Micro-ondes ]

5.) En [ $D16 à $D20 ], j'inscris le mobilier de la salle de bain, soit :
.....[ Baignoire, Lavabo, Toilette, Laveuse, Sècheuse ]

6.) J'insère une deuxième liste déroulante que je nomme [ Mobilier ]

7.) Double clic sur le première liste déroulante pendant que je
.....suis en mode création ( ... je viens d'insérer la liste 2 ... )

8.) J'attéris dans l'éditeur de visual basic dans l'évènement :

Private Sub Piece_Change()

 
End Sub


9.) J'y rajoute le code fournit précédament :

Private Sub Piece_Change()

    Mobilier.Value = ""
    Select Case (Piece.Value)
        Case "Cuisine": Mobilier.ListFillRange = "$C16:$C20"
        Case "Salle De Bain": Mobilier.ListFillRange = "$D16:$D20"
    End Select
 
End Sub
'


10.) Je reviens à la feuille Excel et je quitte le mode création.

Est-ce plus clair ?

Lupin
0
Je te remercie !!

T'es le meilleur !!

Ca marche trop bien, c'est exactement ce que je voulais.

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Cescu2B Messages postés 8 Date d'inscription lundi 2 juillet 2007 Statut Membre Dernière intervention 5 juillet 2007
2 juil. 2007 à 17:01
Bonjour tout le monde,

je suis tombé sur cette discussion qui m'interesse au plus haut point. En effet, je suis confronté au même problème et j'ai étudié l'exemple au-dessus mais je n'arrive pas à l'appliquer. J'ai quelques coins d'ombre qui subsistent :

3.) Dans les propriétés de la liste [ Piece ], j'incris la valeur :
.....[ $A16:$A17 ] à la propriété [ ListFillRange ]
<--- je n'y arrive pas. Peux-tu être plus précis? Je travaille avec Excel 2003...


7.) Double clic sur le première liste déroulante pendant que je
.....suis en mode création ( ... je viens d'insérer la liste 2 ... )

8.) J'attéris dans l'éditeur de visual basic dans l'évènement :

<--- je n'y arrive pas du tout. Peux-tu là aussi donner plus de détails??

En tout cas merci pour ce post
A+
0
Utilisateur anonyme
3 juil. 2007 à 14:50
Bonjour,


Étape 3 ...

Avez vous afficher la barre d'outils [ Boite à outils Contrôles ].

Le deuxième icône est l'appel des propriétés de l'objet. Donc un clic sur la liste déroulante,
et un clic sur l'icône [ Propriétés ].

Vous devriez trouver la propriété [ ListFillRange ].

Étape 7 ...

Pour accéder à l'éditeur VB [ VBE ], --->>>

// Menu Excel / Outils / Macro / Visual Basic Editor [ Alt-F11 ]

À gauche, dans la fenêtre [ Projets ], rechercher le nom de la feuille sur laquel sont
disposé les listes déroulantes et y effectuer un double clic.

Dans la fenêtre de droite ( fenêtre du code ), il y a 2 listes déroulante en haut.

Celle de gauche pointe sur les objets ( en l'occurence les listes déroulantes ).
Celle de droite pointe sur les évènements ( repérer l'évènement [ Change ] ).

dans les limites de cette routine, placé le code :

Private Sub Piece_Change()

 
End Sub
'



Private Sub Piece_Change()

    Mobilier.Value = ""
    Select Case (Piece.Value)
        Case "Cuisine": Mobilier.ListFillRange = "$C16:$C20"
        Case "Salle De Bain": Mobilier.ListFillRange = "$D16:$D20"
    End Select
 
End Sub
'


Est-ce plus clair pour vous ?

Lupin
0
Cescu2B Messages postés 8 Date d'inscription lundi 2 juillet 2007 Statut Membre Dernière intervention 5 juillet 2007
3 juil. 2007 à 15:26
Salut Lupin et merci de me répondre,

je suis à l'étape 3 et je vais détailler tout ce que je fais pour être sûrs que l'on parle de la même chose :

- en A16 j'écris Cuisine en A17 Salle de bain
- je précise que boite à outils Control est bien affichée
- je selectionne mes deux cellules puis je fais Insertion->nom->Définir et je donne le nom : Piece
-en mode création, je clique sur le 2ème icone propriétés mais je n'ai que les propriétés de la WorkShe et rien d'autre
En fait je suis bloqué pour obtenir les proprités de ma liste nommée Pieces.

Je précise que je travaille avec Office 2003. Cela a t'il une incidence.

Merci et A+
0
Utilisateur anonyme
3 juil. 2007 à 15:34
re :

je cite :

-en mode création, je clique sur le 2ème icone propriétés mais je n'ai que les propriétés de la WorkShe et rien d'autre ...

à ce moment, c'est que le focus est sur la feuille et non sur la liste déroulante.

Si tu vois la fenêtre des propriétés qui pointe sur la forme, sélectionne à ce moment la liste
déroulante, la fenêtre des propriétés devrait alors afficher les propriétés de la liste déroulante.

y arrive-tu ?

Lupin
0
Cescu2B Messages postés 8 Date d'inscription lundi 2 juillet 2007 Statut Membre Dernière intervention 5 juillet 2007
3 juil. 2007 à 15:45
Re

arrivé à la fenêtre propriétés, dans la liste déroulante, je n'ai que Feuil1 WorkSheet et rien d'autre.
Ai-je bien constitué ma liste?

Merci A+
0
Utilisateur anonyme
3 juil. 2007 à 16:29
re :

peux-tu voir et ce de façon simultanné :

La feuille, la liste déroulante et la fenêtre des propriétés !

si et seulement si tu peux voir les 3, en cliquant sur la liste déroulante, le titre
de la fenêtre des propriétées devrait changer pour : [ Piece ComboBox ].

Je ne crois pas que XL2003 soit différent de XL2002 pour ce paramètre !

Lupin
0
Cescu2B Messages postés 8 Date d'inscription lundi 2 juillet 2007 Statut Membre Dernière intervention 5 juillet 2007
4 juil. 2007 à 01:20
Re

Non, désolé, je ne vois que Feuil1 Worksheet dans la liste déroulante de la fenêtre propriétés.

A+
0
Utilisateur anonyme
4 juil. 2007 à 13:29
Bonjour,

alors quelques pistes de solutions :

a) ici, un visuel de ce que je tente de t'expliquer :

http://membre.oricom.ca/lupin/documents/liste_deroulante.jpg

b) une routine a tester :

Sub Insere_Coordonnees()

    Sheets("Feuil1").Piece.ListFillRange = "A8:A9"
    Sheets("Feuil1").Mobilier.ListFillRange = "A12:A16"
    
End Sub
'


ou [ Piece ] et [ Mobilier ] sont les noms des objets [ listes déroulantes ].

Bon courage !

Lupin
0
Utilisateur anonyme
6 juil. 2007 à 14:59
n.b.

le lien vers mon site n'est plus valide !

Lupin
0
Cescu2B Messages postés 8 Date d'inscription lundi 2 juillet 2007 Statut Membre Dernière intervention 5 juillet 2007
5 juil. 2007 à 10:24
Merci Lupin
J'ai trouvé mon erreur. J'allais dans liste et pas dans liste déroulante.
Merci encore pour ta disponibilité. C'est ton lien qui ma fait réaliser où était le pb. Lorsque j'ai vu ComboBox j'ai tout compris.
A+
0
bonjour à toutes et tous,

J'ai essayé cette methode qui pourrait me couvenir, j'ai suivi pas à pas ce que vous disiez mais ma seconde liste déroulante reste desespérement vide. Bouuuuh. Je ne trouve pas mon erreur. A noter que j'ai été obligé de renommer directement les listes via la fenetre propriété sinon ça plante...

un p'tit coup de main s'il n'est pas trop tard
0
Utilisateur anonyme
25 févr. 2009 à 17:24
Bonjour,

Je crois qu'il n'est jamais trop tard :-)

Ceci dit, pour t'aider il faudra être plus explicit
sur les étapes que tu ne peux faire.

Référence message numéro 3

Comprends tu l'étape 1 et peux-tu la réaliser ?

Lupin
0