Je travaille dans un conservatoire de musique.
J'ai un tableau Excel des élèves musiciens.
Il y a 3 colonnes : nom-prénom / instrument 1 / instrument 2
Car certains élèves jouent de 2 instruments.
Pour chaque colonne, il y a déjà un menu déroulant qui permet un filtrage automatique.
Le problème, c'est que ce filtrage ne tient compte que de la colonne à laquelle il appartient.
Maintenant j'ai besoin de pouvoir filtrer les données sur les 2 colonnes "instrument 1" et "instrument 2" pour faire ressortir tous les élèves jouant du violon (par exemple), que ce soit en "instrument 1" ou en "instrument 2".
- Faut-il que je crée une colonne supplémentaire en appliquant un "filtre élaboré" qui y trierait les données des 2 colonnes "instrument 1 et 2" ?
- Ou dois-je appliquer une macro (bouton) qui m'afficherait le résultat dans une autre page ?
Merci encore pour ta dernière proposition, mais je vais rester sur la première car elle correspond à mon attente.
J'ai essayé de l'appliquer mais je t'avoue que j'y perds mon latin
D'après ce que je comprends, les formules sont toutes liées au colonnes d'instruments mais également à celle des élèves. Donc pas possible de se passer de la liste des élèves pour ne garder que celle des instruments. Car le but est quand même de pouvoir saisir le nom des élèves directement dans le tableau principal, puis de sélectionner son instrument dans les colonnes 1 et 2 , via menus déroulant, sans taper le nom de l'instrument. Ce qui n'est apparemment pas possible avec ta solution, qui oblige à saisir chaque instrument dans la 1ère feuille de saisie.
Suis-je clair ?
Je n'ai donc pas réussi à faire afficher dans mon tableau Excel, le menu déroulant des instruments bien que j'ai suivi scrupuleusement tes indications. Idem pour la validation de la formule matricielle.
Le problème, c'est que mon tableau final est différent de celui que tu m'as envoyé. Pour que tes formules s'appliquent à mon tableau, peut-être est-il nécessaire que je les modifie ?
Je t'envoie ci-joint mon tableau Excel pour que tu vois son agencement.
Une version a base de Validations aussi bien en F1 pour le tri qu'en colonnes D et E pour l'enregistrement des instruments propres a chaque eleve
La mise a jour des validations se fait automatiquement lors des modifications de la liste des instruments ainsi que de la liste des eleves
Ps:a ta disposition si tu veux une macro pour rapatrier ta liste d'eleve a partir des autres feuilles
Merci à toi PierreJean pour ton travail C'est super !
L'ennui c'est que ça ne résout pas mon problème
Je ne connais pas la procédure à suivre pour appliquer ta solution dans mon tableau. Ca me paraît très complexe et je suis novice dans Excel, du moins concernant son utilisation avancée.
Mais je suis preneur pour toute proposition d'explication étape par étape
Un grand MERCI à tous pour votre dévouement !
Adam
J'ai commenté la macro (accessible par Outils > Macros > Visual Basic Editor)
TU peux essayer de l'adapter a ton probleme en reperant les references utilisées et en les modifiant
J'ai commenté la macro (accessible par Outils > Macros > Visual Basic Editor)
TU peux essayer de l'adapter a ton probleme en reperant les references utilisées et en les modifiant
Merci également à toi Monique, c'est plus compréhensible pour moi.
Cette solution est très séduisante, reste plus qu'à la mettre en place.
Je l'ai testée en ajoutant un instrument dans la colonne "Instr 1" et il s'ajoute automatiquement bien dans la liste déroulantes d'instruments. C'est cool !
En revanche, ce n'est pas le cas lorsque j'ajoute un instrument dans la colonne "Instr. 2".
Tu saurais d'où vient ce bug ?
Plus je lis le code et moins je comprends comment ça marche entre les macros, les modules et les feuilles...
Je ne comprends pas comment faire le lien entre le menu déroulant en Q1 (feuille 3 : "fichier élève 09-10") et la liste d'instruments dans la feuille 1.
- Est-ce le code VB (Module1 ou Classe1 ?) qui fait le lien ?
- Ou est-ce la fonction "Insertion/Nom/Définir" ?
- De plus, comment valide-t-on le code VB après un copier-coller ?
Peux-tu nous preciser a qui tu t'adresses ?
Pour ma part , je te remets un fichier avec les macros commentées
En Module1:
Macro1 > Utilitaire pour demasquer toutes les lignes de la feulle active (n'est utile qu'en cas de probleme)
actu > Egalement Utilitaire: Utile pour creer la 1ere mouture de la liste de la feuille Listes (n'est en principe plus utilisée par la suite)
Dans le module des feuilles
Listes : Mise ajour des validations DE O1 et colonnes O et P de la feuille fichier eleve
Fichier eleve: creation des validations en cas d'ajout d'un eleve
Tri sur les colonnes O et P par masquage de ligne en fonction de O1
Les macros n'ont pas a etre validées. Elles sont operationnelles sitot ecrites (ou collées)
rapidement:
Partout ou tu trouves O1 dans le code remplace le par Q1 puis ajoute et enleve un instrument en feuille Listes et normalement cela devrait tourner
Supprime egalement la validation en O1
Si pas OK n'hesite pas a revenir
??? Je pense que tu parles du code en "Feul1 (code)"
Code:
With Sheets("fichier élève 09-10").Range("O1").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=liste
End With
J'a remplacé par Q1... c'est pas bon ?
Je supprime donc tout ce passage ?
Mais ça ne fonctionne toujours pas
En fait je pense que j'ai un problème concernant la liste déroulante dans la feuille 3. Je n'y vois toujours pas mes instruments.
J'ai pourtant fait "Insertion/Nom/Définir", mais que dois-je faire ensuite ? Taper le nom de la cellule "TOUS" puis cliquer sur Ajouter ? C'est la procédure que j'ai suivie mais ça ne donne rien.
Je vois qu'il y a également la fonction "Insertion/Nom/Appliquer"... faut-il l'utiliser ?