Bonjour,
J'ai découvert ce forum hier, merci à tous pour vos réponses. Pour moi qui essaie de toucher (de loin!) quelques fonctionnalités plus avancées d'Excel ça m'aide beaucoup !!
Je joins un document dans lequel j'ai pris un exemple (bidon!) de tranches d'âges.
L'idée est d'avoir pour un groupe de personne une feuille qui fait un récap d'une situation et une feuille qui entre dans le détail.
Je souhaiterais qu'en un clique on tombe sur le détail.
Comme vous le voyez, j'ai donc essayé de faire des macros (je débute) chaque bouton de la feuille "GroupeA" fait apparaitre le détail de la feuille "Liste GROUPE A".
Problème : j'ai 70 groupes à traiter. Et je ne veux faire les macros pour toutes les feuilles.
Je peux aller dans le code et indiquer la bonne sheet.
Mais je n'arrive pas à faire un copier coller du code pour d'autre feuilles et attribuer ce code à la feuille"GROUPEB" par exemple.
Tu dois pouvoir adapter une seule macro par feuille. Par exemple :
VB:
Sub Macro2()
Dim Feuille As String
Feuille = ActiveSheet.Shapes(Application.Caller).Parent.Name
Sheets("LIST_" & Feuille).Select
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$E$17").AutoFilter Field:=2, Criteria1:="<>"
End Sub
Bonjour TonyDeParis,
Serait il possible dans GroupeA de virer les boutons et de mettre en colonne C le nom de l'onglet correspondant.
Avec un WorksheetChange, la gestion de tous vos onglets ne se ferais qu'avec une seule et petite macro.
Si on clicque sur une cellule, il va directement sur l'onglet dont le nom est en colonne C.
Just for the fun !
Un exemple en PJ avec cette p'tit macro :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 3 And Target.Value <> "" Then
Sheets(Target.Value).Select
End If
End Sub
Bonjour Sylvanu ! Merci pour cette réponse. Je ne connais pas cette fonctionnalité du worksheet change. Peut-être que c'est une solution. Néanmoins il ne s'agit pas uniquement de changer d'onglet mais de changer d'onglet + obtenir le filtre souhaité.
Re,
Testez la PJ du post #3 pour voir si c'est acceptable.
Ensuite, je ne comprends pas ce qu'est un filtre souhaité. Où, lequel ?
Mais elle peut être introduite dans la macro je pense.
Quand on a 70 sheets à gérer, il faut bien réfléchir au début pour éviter de générer 70 macros.
... et aussi 70 macros à corriger en cas de bugs.
Cette macro est dite événementielle.
Elle s'active sur ... un événement qui se produit sur la feuille. ( sélection feuille, clic cellule, changement de valeurs .... )
Et donc doit être impérativement dans la feuille.
La cellule appelante s'appelle Target. Et on a :
Target.Row qui donne la ligne
Target.Column qui donne la colonne
Target.Value qui donne la valeur
avec ça on peut déjà s'amuser.
Tu dois pouvoir adapter une seule macro par feuille. Par exemple :
VB:
Sub Macro2()
Dim Feuille As String
Feuille = ActiveSheet.Shapes(Application.Caller).Parent.Name
Sheets("LIST_" & Feuille).Select
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$E$17").AutoFilter Field:=2, Criteria1:="<>"
End Sub