Bonjour,
J'ai une base de données excell que j'importe en power query et ensuite je splite en fonction de mes besoins la table principale en sous table pour afficher les données avec leur propres scripts.
J'ai donc ici (dans le fichier joint) une table présence.
Dans cette table j'aimerai et je n'y arrive pas :-( avoir une liste déroulante qui me permet d'afficher en dessous les données de la colonnes A ou de la colonne B ou de la colonne C afin qu'au final on imprime la liste de présence des enfants présent au module 1 ou Module 2 ou Module 3
Pouvez-vous m'aider je séche. voici les fichiers en annexe (le zip psydata et mon CSV il volait pas le transmettre comme tel).
Re-,
Comme j'ai ton fichier (que je ne mettrai plus en ligne, et supprimerai en fin de post), dans l'onglet "Présence", en cellules L1, M1 et N1 (par exemple), tu mets ces formules :
Re-,
Comme j'ai ton fichier (que je ne mettrai plus en ligne, et supprimerai en fin de post), dans l'onglet "Présence", en cellules L1, M1 et N1 (par exemple), tu mets ces formules :
Merci effectivement pas malin de ma part pour fichier source, j'essaye de refaire un CSV mais il plante mon fichier je ne sais pas pq. J'ai testé ta solution mais le but est d'avoir la liste de présence comme elle est déjà mais que je puisse par exemple en A6 avoir une liste de choix Module 1 , Module 2, Module 3 et que si je sélectionne module 3 il me donne que les lignes ou dans la colonne C module 3 apparait.
En Powe rquery déjà fait une liste de choix mais elle pointe sur une colonne avec plusieurs possibilité mais ici malheureusement les choix sont dans 3 colonne différentes.
Ok, dans ce cas, on va tout faire en VBA...
Dans la cellule A6, tu mets une validation de données
(Afin de rendre dynamique cette opération, tu peux faire ainsi :
Dans la cellule L1, tu mets cette formule :
Code:
=TRANSPOSE($A$9:$C$9)
Ce qui va te donner la liste des 3 premiers noms de colonne (en espérant qu'ils se terminent bien par 1, 2 ou 3, sinon, pour le VBA, il faudra modifier le code)
Puis, dans A6, "Données/Validation de données", tu choisis "Liste", et tu mets cette formule :
N'oublie pas le #, c'est pour rendre dynamique la liste.
Et enfin, dans le code évènement de la feuille (clic droit sur le nom de l'onglet, "Visualiser le code"), tu mets cet évènement :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.CountLarge > 1 Then Exit Sub
If Not Intersect(Target, Range("A6")) Is Nothing Then
If Target = "" Then
Me.ListObjects("Présences").Range.AutoFilter
Else
Me.ListObjects("Présences").Range.AutoFilter
Me.ListObjects("Présences").Range.AutoFilter Field:=CByte(Right(Target, 1)), Criteria1:="<>"
End If
End If
End Sub
Ainsi le filtre est appliqué en fonction du choix, et si tu effaces la cellule, tout est remis
Bon courage