Groupe sous Excel à masquer/afficher

Résolu
luddoo91 Messages postés 4 Date d'inscription lundi 6 août 2007 Statut Membre Dernière intervention 5 février 2010 - 20 mars 2008 à 10:23
laurentmayolle Messages postés 2 Date d'inscription mardi 17 juillet 2007 Statut Membre Dernière intervention 30 décembre 2010 - 29 nov. 2010 à 16:13
Bonjour

Je suis sous Excel, je voudrais simplement ajouter un bouton sur ma feuille qui masque/affiche les détails des groupes des lignes séléctionnées (comme le fait  déjà les commandes Données, Grouper et créer un plan, masquer et afficher les détails).

J'ai tenté de faire un enregistrement de macro pour obtenir le code mais il me donne

    ExecuteExcel4Macro "SHOW.DETAIL(1,24,TRUE,,21)"
    ExecuteExcel4Macro "SHOW.DETAIL(1,12,TRUE,,8)"

ce qui suppose que les groupes doivent être définis auparavant et que la feuille ne peut pas être modifiée sinon la macro ne fonctionne plus...

est ce que vous avez une idée?

Merci

3 réponses

luddoo91 Messages postés 4 Date d'inscription lundi 6 août 2007 Statut Membre Dernière intervention 5 février 2010 1
20 mars 2008 à 11:30
Re,

Bon j'ai trouvé une façon de faire qui me convient parfaitment,

pour afficher j'utilise :
 ActiveSheet.Outline.ShowLevels RowLevels:=2
et
pour masquer
ActiveSheet.Outline.ShowLevels RowLevels:=1

je n'ai qu'un niveau de groupe donc ça fonctionne bien.

Je remercie quand même ceux qui ont lu mon message...

A bientôt
1
xavette Messages postés 1 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 10 juin 2008
10 juin 2008 à 10:55
Merci bien!
solution simple et efficace... parfait
0
laurentmayolle Messages postés 2 Date d'inscription mardi 17 juillet 2007 Statut Membre Dernière intervention 30 décembre 2010
29 nov. 2010 à 16:13
'Il faut que la cellule active soit sur la ligne juste au dessus du groupe
Sub AfficherGroup()
Dim rngRegion As Range
Dim intDerniereLigne As Integer
Set rngRegion = ActiveCell.CurrentRegion
intDerniereLigne = rngRegion.Rows.Count
If intDerniereLigne > 2 Then rngRegion.Rows(intDerniereLigne).ShowDetail = True
End Sub

Sub MasquerGroup()
Dim rngRegion As Range
Dim intDerniereLigne As Integer
Set rngRegion = ActiveCell.CurrentRegion
intDerniereLigne = rngRegion.Rows.Count
If intDerniereLigne > 2 Then rngRegion.Rows(intDerniereLigne).ShowDetail = False
End Sub
0
Rejoignez-nous