Créer un Slicer (segment) pour un Tableau Croisé Dynamique (TCD), Excel VBA

Créer un Slicer (segment) pour un Tableau Croisé Dynamique (TCD), Excel VBA

Voici un code VBA détaillé pour créer un Slicer (segment) pour un Tableau Croisé Dynamique (TCD) dans Excel, avec une explication longue et détaillée en français.
Code VBA détaillé pour créer un Slicer pour un Tableau Croisé Dynamique (TCD)

Sub CreerTableauCroiseAvecSlicer()
    Dim ws As Worksheet
    Dim pivotCache As PivotCache
    Dim pivotTable As PivotTable
    Dim pivotRange As Range
    Dim slicer As SlicerCache
    ' Étape 1 : Définir la feuille de travail et la plage de données
    Set ws = ThisWorkbook.Sheets("Sheet1")  ' Remplacez "Sheet1" par le nom de votre feuille
    ' Définir la plage de données qui servira à la création du TCD
    Set pivotRange = ws.Range("A1:D100")  ' Modifiez cette plage en fonction de vos données réelles
    ' Étape 2 : Créer un cache de Pivot (Pivot Cache) basé sur la plage de données
    Set pivotCache = ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=pivotRange)
    ' Étape 3 : Créer un nouveau Tableau Croisé Dynamique sur une nouvelle feuille
    Set pivotTable = ws.PivotTables.Add(PivotCache:=pivotCache, TableDestination:=ws.Range("F1"))
    ' Étape 4 : Définir les champs du Tableau Croisé Dynamique
    With pivotTable
        ' Ajouter les champs dans le Tableau Croisé Dynamique : "Category", "Amount", etc. doivent être les noms réels des colonnes de vos données
        .PivotFields("Category").Orientation = xlRowField  ' Remplacez "Category" par le nom de votre champ de ligne
        .PivotFields("Amount").Orientation = xlDataField  ' Remplacez "Amount" par le nom de votre champ de données
        .PivotFields("Region").Orientation = xlColumnField  ' Remplacez "Region" par le nom de votre champ de colonne
    End With
    ' Étape 5 : Créer un Slicer et le connecter au Tableau Croisé Dynamique
    Set slicer = ThisWorkbook.SlicerCaches.Add(pivotTable, "Category")  ' "Category" est le champ pour le Slicer
    ' Insérer le Slicer dans la feuille de travail
    slicer.CreateSlicer SlicerDestination:=ws.Range("J1")
    ' Optionnel : Ajuster la mise en forme du Slicer si nécessaire
    With slicer.Slicers(1)
        .Shape.Width = 200
        .Shape.Height = 200
        .Top = 100
        .Left = 300
    End With
End Sub

Explication détaillée de chaque étape :
1. Définir la feuille de travail et la plage de données :

  • On définit d’abord la feuille de travail (ws) où le Tableau Croisé Dynamique (TCD) sera créé.
  • La plage de données (pivotRange) représente la plage de cellules qui sera utilisée pour créer le TCD. Ajustez cette plage en fonction de vos données réelles.

2. Créer un cache de Pivot (Pivot Cache) :

  • Le cache de Pivot est un objet interne d’Excel qui stocke les données sources pour le TCD. Il est créé avec la méthode PivotCaches.Create, où nous spécifions la plage de données (pivotRange) comme source.

3. Créer le Tableau Croisé Dynamique :

  • Après avoir créé le cache de Pivot, nous créons un nouveau TCD à l’aide de la méthode PivotTables.Add. Le TCD sera placé à un emplacement spécifique dans la feuille de travail (TableDestination:=ws.Range("F1")), ici dans la cellule F1.

4. Définir les champs du Tableau Croisé Dynamique :

  • Une fois le TCD créé, nous définissons les champs à utiliser dans le TCD. Dans cet exemple :
  • Category est ajouté dans la zone des lignes.
  • Amount est ajouté dans la zone des données.
  • Region est ajouté dans la zone des colonnes.
  • Remplacez ces noms de champs par ceux correspondant à vos données.

5. Créer et ajouter le Slicer :

  • Nous ajoutons un Slicer qui est lié au TCD à l’aide de la méthode SlicerCaches.Add, où nous spécifions le champ pour lequel le Slicer sera créé (dans ce cas, Category).
  • Le Slicer est ensuite inséré dans la feuille de travail avec la méthode CreateSlicer, et sa position peut être ajustée via l’argument Range.

6. Optionnel : Ajuster la mise en forme du Slicer :

  • Vous pouvez ajuster la taille et la position du Slicer en utilisant les propriétés Shape.Width, Shape.Height, Top et Left.

Notes supplémentaires :

  • Assurez-vous que vos données contiennent les colonnes (champs) que vous souhaitez utiliser dans le TCD et le Slicer.
  • Le Slicer peut être lié à plusieurs TCDs si ceux-ci partagent le même champ.
  • Modifiez la plage (Range) et les noms de champs en fonction de vos propres données et de la disposition de votre feuille.

Ce code automatisera la création du Tableau Croisé Dynamique et du Slicer associé dans Excel à l’aide de VBA.

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x