David se demande s’il existe un moyen d’afficher le nom d’un tableau croisé dynamique dans le tableau croisé dynamique lui-même.

La réponse courte est qu’il n’y a aucun moyen de le faire automatiquement. La réponse la plus longue est que vous pouvez «tricher» et forcer un nom dans le tableau croisé dynamique. Par exemple, vous pouvez sélectionner la cellule d’étiquette de ligne dans le tableau croisé dynamique et la modifier (F2), en remplaçant tout ce qui s’y trouve par le nom que vous souhaitez taper. C’est loin d’être automatique et lorsque vous actualisez le tableau croisé dynamique, vous devrez vous rappeler de modifier à nouveau la cellule.

Une autre façon de forcer un nom dans le tableau croisé dynamique consiste à utiliser une macro. Il existe probablement quelques approches que vous pourriez adopter dans votre macro. Une approche consiste à créer une table de données sur laquelle votre tableau croisé dynamique sera basé. Donnez un titre au tableau de données, dans la première colonne. (N’importe quel ancien texte pour l’en-tête fera l’affaire, car la macro l’écrasera.)

Après avoir créé votre tableau croisé dynamique, exécutez la macro suivante. Il détermine le nom du tableau croisé dynamique, le fourre dans l’en-tête de la table de données, actualise le tableau croisé dynamique (pour que le nom y apparaisse), puis met à jour le nom du filtre de rapport de tableau croisé dynamique afin qu’il soit identique au nom du tableau croisé dynamique.

Sub GetPVName()

Dim pvt As PivotTable     Dim PVName As String

' Get the PivotTable name from the ActiveSheet     ' If there are multiple PivotTables, this approach     ' ensures the macro will work with the last PivotTable     ' in the PivotTables collection     For Each pvt In ActiveSheet.PivotTables         PVName = pvt.Name     Next pvt

' Put PivotTable name as a heading for the first     ' column of the data table     Range("Table1").Cells(0, 1) = PVName

' Refresh the PivotTable     ActiveSheet.PivotTables(PVName).PivotCache.Refresh

' Set the PivotTable name in the report filter     With ActiveSheet.PivotTables(PVName).PivotFields(PVName)

.Orientation = xlPageField         .Position = 1     End With End Sub

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (3233) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.