Listes déroulantes en cascade 3 niveaux avec du texte

Bonjour à tous.

Tout nouveau ici, je viens chercher réponse à mon problème... Dans le cadre de mon boulot, et pour gagner du temps dans la préparation de mes cours, je veux créer 3 listes déroulantes en cascade avec des éléments des programmes officiels de l'école.

Liste 1 : le domaine d'enseignement

Liste 2 : les attendus de fin de cycle (en fonction du domaine choisi en liste 1)

Liste 3 : les compétences associées (à l'attendu de fin de cycle choisi en liste 2)

Jusqu'ici pas très original, on trouve beaucoup de choses sur le sujet... mais avec la fonction INDIRECT que je ne peux pas utiliser ici parce que ce sont des phrases (donc avec espaces) et non un seul mot !

J'ai donc utilisé la fonction DECALER. J'y arrive (sans trop comprendre les subtilités je l'avoue) pour des listes en cascades à deux niveaux (sur le fichier joint : onglet "socle 2015").

Liste 1 : le domaine du socle commun

Liste 2 : les compétences du socle (en fonction du domaine choisi en liste 1)

Vu que le nombre de compétences est aléatoire en fonction des différents domaines, j'ai opté pour le "socle commun" pour un décalage qui gère toute une colonne et pas un nombre de cellules défini. Mais comment faire avec 3 niveaux ???

Sur le fichier joint, vous trouverez dans l'onglet "Cycles 2-3" les zones des trois listes que je souhaite créer (ainsi que la zone "socle commun" que j'ai déjà faite (mais plus facile puisque 2 niveaux seulement). Et dans l'onglet "ESSAI LISTES CASCADE 3 NIVEAUX" mes tableaux... dans l'absolu, ça ne me gêne pas d'avoir un seul grand tableau BD, même si j'ai x fois la colonne avec le même domaine, mais dès lors comment éviter les doublons dans la liste 1 ?

Un immense merci pour votre aide à venir... !

216pgr-2016.xlsx (45.26 Ko)

Bonjour,

Ci-joint une proposition à tester.

  • fait en VBA ...
  • les données utilisées sont réorganisées dans un nouvel onglet "Donnees" (les autres onglets ne sont plus utilisés) : revérifier que tout est OK.
  • les données disponibles dans les listes se basent sur des listes de validation, qui utilisent un onglet caché ("Filtre"), qui se met à jour lors d'un changement de valeur dans une liste.

En espérant que ce n'est pas trop compliqué ...

Bonne journée

Bouben

301pgr-2016-v0-1.xlsm (49.02 Ko)

Bonjour

Tout d'abord un grand merci pour la réactivité !!!

Et en effet, c'est exactement ça que je voulais... Je ne suis pas spécialiste des macros (je n'ai jamais pris le temps de m'y mettre en fait). Donc tout ça est un peu mystérieux, mais ça fonctionne.

Maintenant comment faire pour compléter progressivement le tableau de l'onglet "données"... car c'est une infime partie des programmes. J'ai entré tous les domaines et les attendus, les compétences liés seront complétés au fur et à mesure des usages... Or comment prendre les changements dans ce tableau en compte dans les listes (donc dans l'onglet caché "filtre" puisque si j'ai bien compris l'affichage des listes déroulantes provient de ce tableau) ?

(Je peux te renvoyer le tableau complété si tu veux)

Encore merci

Bonjour,

Pour compléter l'onglet Donnees, il faut juste comprendre et reprendre le principe existant :

  • un domaine contient x "attendus", et chaque "attendu" contient x compétences.
  • il faut créer autant de ligne que de compétences (niveau le plus fin), en répétant à chaque fois le domaine et l'attendu.

Exemple :

on veut rajouter un domaine D10 avec un attendu A1 et une attendu A2

l'attendu A1 a 3 compétences : C10, C11, C12

l'attendu A2 a 2 compétences : C20, C21

=> création de 5 lignes :

D10, A1, C10

D10, A1, C11

D10, A1, C12

D10, A2, C20

D10, A2, C21

L'ordre n'a pas d'importance.

Pour l'onglet "Filtre", modifications à faire uniquement pour les domaines :

En cas d'ajout d'un domaine, l'ajouter aussi dans l'onglet "Filtre", en colonne "A"

Et redéfinir la plage nommée "ListeDomaines" (actuellement : =Filtre!$A$2:$A$4)

Pour le reste l'onglet "Filtre" est géré le par le traitement, pas besoin de le modifier.

Une fois que tu as ajouté toutes les données, cela devrait fonctionner.

Si tu veux, tu peux renvoyer le fichier mis à jour, et je ferai les éventuels ajustements nécessaires (si possible !)

Bouben

Bonjour fifistorien2 et Bouben,

Voici une idée avec un formulaire de recherche.

J'ai créé un nouvel onglet "Base" avec les données de l'onglet "Socle 2015"

Cdt

Henri

208pgr-2016-essai.xlsm (48.19 Ko)
bouben a écrit :

Si tu veux, tu peux renvoyer le fichier mis à jour, et je ferai les éventuels ajustements nécessaires (si possible !)

Ben je veux bien que tu regardes car j'ai fait comme indiqué en créant de nouvelles lignes... Tous les domaines et les attendus sont renseignés (les compétences associées viendront par la suite, avec la création de nouvelles lignes donc...). J'ai redéfinie la plage "ListeDomaines" en fonction dans l'onglet "Filtre". Mais ça ne fonctionne plus pour la liste n°2... :-/

Peux tu me dépanner ? Pourquoi cela ne fonctionnait plus ?


AFEH a écrit :

Bonjour fifistorien2 et Bouben,

Voici une idée avec un formulaire de recherche.

J'ai créé un nouvel onglet "Base" avec les données de l'onglet "Socle 2015"

Cdt

Henri

Bonjour Henri.

Quand je clique sur ton bouton "appel formulaire de recherche", cela déclenche un message d'erreur (sans aucun texte d'ailleurs) avec les options "continuer", "abandonner", "déboguer"...

C'est vrai que pour le socle je pourrais aussi opter pour des listes en cascades à 3 niveaux avec domaine / sous-domaine /items comme tu l'as fait dans ton tableau "base"...

Peux tu me dépanner ? Pourquoi cela ne fonctionnait plus ?

Dans l'onglet "Données", les 4 premières lignes n'ont pas d'attendu, à renseigner avec par exemple "(à compléter)".

A priori, le problème vient de là. A confirmer après modification (cf cellules modifiées, en vert)

Bouben

capture

Je viens de corriger cet oubli (j'y avais bien pensé pour la colonne suivante) mais ça ne change rien, la liste n°2 reste bloquée sur les mêmes attendus.

Le tableau de l'onglet "filtre" ne se met plus à jour en fonction des choix de la liste n°1... cela vient de la macro ?

A vérifier après fermeture et réouverture d'Excel.

Le bug de tout à l'heure a désactivé les événements.

Bouben

Tu avais raison. Le fait de quitter et relancer EXCEL a été une réussite !

Un immense merci pour tout !

bouben a écrit :

A vérifier après fermeture et réouverture d'Excel.

Le bug de tout à l'heure a désactivé les événements.

Bouben

Désolé de t'embêter à nouveau... Mais je crois avoir fait une "bêtise". Le tableau "filtre" est à nouveau figés sur des attendus et compétences et ne change plus en fonction du choix opéré avec la liste 1. J'ai essayé de relancé EXCEL mais sans effet cette fois ci. J'y suis sans doute pour quelque chose puisque j'ai ajoutés des nouveaux champs et j'ai touché à la présentation de ma feuille avec mes listes : des cellules n'ont-elles pas bougés par rapport à ta macro ? Vu que je ne maîtrise pas, je ne peux pas vraiment vérifier...

Je te joints le fichier, si tu pouvais y jeter un coup d'oeil. Encore désolé du dérangement :-/

13programme-2016.xlsm (89.49 Ko)

Bonsoir,

Le fichier est tout cassé

L'ajout d'une ligne sur le premier onglet a entraîné ce problème.

Dans le traitement, on attend les listes en B5, B8 & B11.

Modifications faites, nouvelle version en PJ à tester.

A savoir : si les listes ne sont plus dans ces cellules, cela ne fonctionnera plus

Bonne soirée

Bouben

Encore une fois tu me sauves ! Ok , c'est noté pour ces trois cellules à ne pas bouger !!!

Merci beaucoup

Rechercher des sujets similaires à "listes deroulantes cascade niveaux texte"