La liste déroulante ne me convient pas

Badrosy

XLDnaute Nouveau
Bonjour, merci beaucoup de prendre le temps de me lire et de répondre.
Bon alors voici la situation: J'ai des catégorie exemple nourriture, produit ménager etc., en choisissant la catégorie nourriture jai des choix qui apparait comme produit laitier, breuvage etc., et je choisi produit laitier encore un choix: yogourt, fromage, en choisissant yogourt j'ai encore un choix source, yoplait, en choissisant yoplait j'ai le choix du format s'il est disponible sinon mon prix s'affiche. Je sais pas trop comment mettre sa plus clair, mais je ne veux pas de liste déroulante je veux qu'il suffit de passer sur une catégorie pour qu'une liste apparaisse avec ce que contient cette catégorie. Si on bouges vers une autre catégorie, alors la liste change. Sans que mes données soit toujours apparante.
Je suis débutante et j'utilise microsoft office avec excel 2007 si vous auriez l'amabilité de m'indiquer clairement ce que je dois faire comme manoeuvre pour réussir ça serait très apprécier :)
Merci beaucoup
 

Badrosy

XLDnaute Nouveau
Re : La liste déroulante ne me convient pas

Bon je suis rendu la peut tu me dire si c'est les bon code que j'ai mit ? svp
 

Pièces jointes

  • Price Book Real.xlsm
    40.7 KB · Affichages: 42
  • Price Book Real.xlsm
    40.7 KB · Affichages: 48
  • Price Book Real.xlsm
    40.7 KB · Affichages: 49

Dranreb

XLDnaute Barbatruc
Re : La liste déroulante ne me convient pas

Bonjour
Oui, ça m'a l'air bon, si c'est dans la Feuil1, cette fois que vous voudrez que des listes se présentent. Il ne reste que les deux dernières étapes à faire, et, bien sûr, mettre des données quelque part.

P.S. J'allais oublier une chose importante: dans VBA: Menu Outils, Références, cherchez et cochez dans la liste la référence "Microsoft Scripting Runtime".
À +
 
Dernière édition:

Badrosy

XLDnaute Nouveau
Re : La liste déroulante ne me convient pas

ok je vais essayer cela s soir aussitot qu jai acces a un ordinateur ;) ,mais en attendant pouvez vous mexpliquer vraiment detailler ce que je dois faire pour les deux derniere etape svp je pourrait eviter des questions bon javoue cest encore drole xD
merci beaucoup a +
 

Dranreb

XLDnaute Barbatruc
Re : La liste déroulante ne me convient pas

Ajoutez une matière, je veux dire des données à organiser comme souhaité sur la Feuil2 par exemple.
Ensuite, comme je vous l'ai dit ajoutez un nom dans le classeur avec comme référence =DicArbo(votre plage de données) sur le même modèle que LeDico dans mon exemple (la formule utilise un DECALER pour s'adapter aux nombre de lignes renseignées, mais vous pouvez commencer par plus simple. Je ne peux pas vous indiquer les manœuvre dans Excel pour ajouter un nom: ils on tout changé dans les nouvelles versions. Ensuite vous pourrez taper les formule matricielles utilisant SousClés. Une formule matricielle ça ne se valide pas par Entrée mais par Ctrl+Maj+Entrée. On voit qu'elle a été validée en matriciel aux accolades qui l'entourent dans la barre de formule, et qu'il ne faut pas essayer de taper.
À +
 

Badrosy

XLDnaute Nouveau
Re : La liste déroulante ne me convient pas

Pourriez vous me mettre des screnn shot de ce que vous sélectionner svp, je pourrait peut être me retrouver meme si nous avons pas les meme version :s.
Car je ne vois pas ce que je doit sélectionner pour pouvoir nommée mes données et comment faire les formule matricielle bref en visuelle peut-etre que je vais mis retrouver :)
bien sur cela seulement si vous voulez.
merci beaucoup, découragez vous pas j'ai presque fini du moin je croit xD
merci encore de votre patience
 

Dranreb

XLDnaute Barbatruc
Re : La liste déroulante ne me convient pas

Bonjour.
Collez cette procédure dans un nouveau module et exécutez la, ce sera peut être plus simple:
VB:
Sub Macro1()
ThisWorkbook.Names.Add Name:="LeDico", RefersToR1C1:="=DicArbo(1,OFFSET(Feuil1!R1C1,0,0,COUNTA(Feuil1!C1),5))"
End Sub
Pour insérer un nouveau module: clic droit sur le projet dans l'explorateur, Insertion, module.

Pour entrer une formule matricielle, sélectionnez toute la plage qui devra la porter, tapez la formule dans la barre de formule, puis au lieu de faire Entrée, appuyez successivement mais en les maintenant toute enfoncées sur les touches contrôle, majuscule et Entrée. Normalement 3 doigts dont 2 de la main gauche et 1 de la main droite doivent suffire…
À +
 

Dranreb

XLDnaute Barbatruc
Re : La liste déroulante ne me convient pas

Détaillons de gauche à droite
ThisWorkbook.Names.Add Name:="LeDico", RefersToR1C1:="=DicArbo(1,OFFSET(Feuil2!R1C1,0,0,COUNTA(Feuil2!C1),5))"
Ajouter au classeur portant cette macro le nom "LeDico" représentant un appel à la fonction DicArbo, avec comme 1èr paramètre 1, et comme second paramètre la cellule Feuil2!A1, non décalée en réalité mais étendue à un nombre de lignes égal au nombre de valeurs renseignées dans la colonne A, et dont le nombre de colonnes est porté à 5. Corrigez ces éléments en fonction de cette signification et de vos besoins.

Les formules matricielles à mettre sont à priori les mêmes que dans mon exemple. Vous n'avez qu'à les copier de la barre de formule et les reproduire dans la barre de formule.
À +
 
Dernière édition:

Badrosy

XLDnaute Nouveau
Re : La liste déroulante ne me convient pas

Bon qu'est ce que je n'est pas fait de correct hihi !!!
 

Pièces jointes

  • Price Book Real.xlsm
    55.6 KB · Affichages: 51
  • Price Book Real.xlsm
    55.6 KB · Affichages: 58
  • Price Book Real.xlsm
    55.6 KB · Affichages: 60
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : La liste déroulante ne me convient pas

Bonjour.
La première chose que je voie: la formule =SousClés(LeDico) n'est pas validée en matriciel sur plusieurs lignes d'une colonne
Le Nom "LeDico" n'existe pas dans le classeur ( la Macro Macro1 n'a pas été exécutée).
Avant de l'exécuter: La formule n'est pas bonne (eh oui je sais: elle vient de l'autre classeur): elle se réfère à Feuil1 alors que les données sont en Feuil2
Je suis tombé sur un os en tentant d'ajouter ce qui manquait…
il va me falloir sécuriser le code.
Ah, ouf. j'ai eu du mal à trouver ça ! La feuille de CodeName Feuil2 s'appelle en réalité pour Excel "Donnée". C"est ce nom là qu'il faut mettre dans les références de plages de la formule pour le nom LeDico

C'est curieux, j'ai eu beaucoup de mal à lui faire admettre que je voulais une formule matricielle en colonne A et non pas une constante commençant par "=". j'ai du passer par le bouton fx, et sélectionner dans les fonction personnalisées.
À tout hasard je le rejoins au stade où vous en étiez, mais corrigé. Il reste toujours à mettre les formules récupérant les clés successives dans les colonnes suivante. Rappel: la Worksheet_SélectionChange copie ces choix successifs en ligne 2. Donc les formules qui restituent les clés suivantes doivent être en dessous. Mais les clé du dictionnaire général peuvent être restituée dès la ligne 1, comme vous avez tenté de le faire, si vous préférez. Ah, non ça ne marche pas: elle vérifie si on à bien sélectionné quelque chose au delà de la ligne 2. Donc même pour les clés générales ils faut qu'elles commencent au moins en ligne 3.
je corrige aussi ça et je le re-joins.
À +
 

Pièces jointes

  • AppliDicArbo.xls
    154 KB · Affichages: 47
  • AppliDicArbo.xls
    154 KB · Affichages: 51
  • AppliDicArbo.xls
    154 KB · Affichages: 45
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : La liste déroulante ne me convient pas

Bonjour.
Mettre les formules matricielles des colonnes suivantes pour récupérer les listes associées aux séries de sous-clés choisies et automatiquement copiées dans la ligne 2:
Code:
=SousClés(LeDico;$B$2)
=SousClés(LeDico;$B$2;$C$2)
etc.
validées en matriciel, bien entendu sur un nombre de lignes suffisant.
Là vous n'avez pour l'instant que la formule sans série de clé et sous clés qui restitue toutes les clés du 1er niveau.
À +
 
Dernière édition:

Badrosy

XLDnaute Nouveau
Re : La liste déroulante ne me convient pas

ok Pourquoi aie-je des 0 qui apparraisse dans mes cases quand je rentres la formule ?
 

Pièces jointes

  • pricebook real.xlsm
    65.8 KB · Affichages: 42
  • pricebook real.xlsm
    65.8 KB · Affichages: 50
  • pricebook real.xlsm
    65.8 KB · Affichages: 50

Dranreb

XLDnaute Barbatruc
Re : La liste déroulante ne me convient pas

Je l'ignore. Les conséquences de n'importe quoi peuvent être n'importe quoi.
Vous les avez entrées l'une en dessous de l'autre validées normalement dans des cellules isolées au lieu de les entrer dans des plages verticales les unes à coté des autres, validées en matriciel.
De plus vous avez entré la 1ère dans la cellule B2, ce qui provoque une référence circulaire puisque cette cellule B2 lui est passée en paramètre.
La ligne 2 est réservée aux clés et sous-clés successives dont on veux restituer les sous-sous-clés. Elle sont renseignées automatiquement par la Sub Worksheet_Selection change quand on sélectionne une cellule de la colonne précédente.
La formule en B4 ne serait pas bonne pour la colonne D car la sous clé C2 n'y est pas demandée entre la B2 et la D2.
À +
 

Discussions similaires

Réponses
36
Affichages
2 K

Statistiques des forums

Discussions
313 770
Messages
2 102 235
Membres
108 181
dernier inscrit
Chr1sD