Monsieur Excel
Pour tout savoir faire sur Excel !

16 novembre 2016

Un TCD classique en direct

Dans l’article précédent, nous avons vu que la présentation classique des TCDs (tableaux croisés dynamiques) avait un certain nombre d’avantages sur la présentation imposée par défaut depuis Excel 2007.

On pourrait alors se demander s’il n’est pas possible de régler quelque part un paramètre qui nous donne un TCD classique par défaut. Il semble hélas que cela ne soit pas possible :(

En revanche, vous pouvez loger dans votre classeur de macros personnelles – afin d’y avoir un accès direct depuis n’importe quel classeur – la macro suivante, à laquelle vous pourrez même associer le raccourci de votre choix :

Sub TCD_classique()
    With Selection.PivotTable
        .InGridDropZones = True
        .RowAxisLayout xlTabularRow
    End With
End Sub


Remarque – Si le TCD a déjà été construit, la macro fonctionne toujours, et l’on observe avec plaisir les affreux titres « Etiquettes des … » des lignes et des colonnes récupérer enfin les noms des champs concernés !

1 Commentaire(s):

  • Une tentative pour que la présentation classique apparaisse automatiquement à la création d'un TCD :
    1. Dans le classeur des macros personnelles (PERSONAL.XLSB), utiliser l'Editeur VBA pour ajouter un module de classe (Insertion/Module de classe).
    On garde le nom par défaut de ce module, Classe1.

    2. Dans le module Classe1, on implante le code suivant :

    Public WithEvents AppAvecEvenmts As Application
    Private Sub AppAvecEvenmts_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    On Error Resume Next
    With Target.PivotTable
    .InGridDropZones = True
    .RowAxisLayout xlTabularRow
    End With
    End Sub


    3. Dans le module correspondant à ThisWorkBook, on programme l'événement
    WorkBook_Open avec le code :

    Private MonObjet As New Classe1
    Private Sub Workbook_Open()
    Set MonObjet.AppAvecEvenmts = Application
    End Sub


    Cette technique peut être appliquée à d'autre cas, car elle permet d'avoir accès aux événements de l'objet Application et plus seulement à ceux de WorSheet et WorkBook.

    By Anonymous cduigou, sur 5:44 PM  

Enregistrer un commentaire

<< Accueil