XL 2010 Recopier des macros similaires sur d'autres feuilles d'un même classeur

TOnydeParis

XLDnaute Nouveau
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.

Quelqu'un saurait-il comment faire ?

Merci beaucoup !!!!

Bonne journée à tous !
 

Pièces jointes

  • Exemple2.xlsm
    33 KB · Affichages: 9
Solution
Bonjour à tous.

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

"Application.Caller" récupérant le nom du bouton.

Cordialement.

Daniel

sylvanu

XLDnaute Barbatruc
Supporter XLD
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.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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
A mettre dans la feuille concernée.
 

Pièces jointes

  • MaquetteTony.xlsm
    40.5 KB · Affichages: 5

TOnydeParis

XLDnaute Nouveau
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é.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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. :)
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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. ;)
 

danielco

XLDnaute Accro
Bonjour à tous.

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

"Application.Caller" récupérant le nom du bouton.

Cordialement.

Daniel
 

Discussions similaires

Statistiques des forums

Discussions
312 083
Messages
2 085 185
Membres
102 808
dernier inscrit
guo