Astuce: Les autres langues sont Google-Traduction. Vous pouvez visiter le English version de ce lien.
Se connecter
x
or
x
x
S'enregistrer
x

or

Comment lister toutes les tables pivotantes à partir d'un classeur?

Supposons que vous ayez un classeur volumineux qui contient plusieurs tableaux croisés dynamiques, maintenant, vous voulez lister tous les tableaux croisés dynamiques de ce classeur, est-ce possible? Bien sûr, le code VBA suivant dans cet article vous fera une faveur. Pour plus de détails, veuillez lire l'article ci-dessous.

Liste toutes les tables pivot d'un classeur avec le code VBA


flèche bleue droite bulle Liste toutes les tables pivot d'un classeur avec le code VBA


Le code VBA suivant peut vous aider à répertorier tous les noms de table pivotante avec leurs attributs, tels que la plage de données source, le nom de la feuille de calcul, la date actualisée et ainsi de suite.

1. Ouvrez votre classeur que vous souhaitez répertorier tous les tableaux croisés dynamiques.

2. Maintenez le ALT + F11 clés, et il ouvre la Microsoft Visual Basic pour Applications fenêtre.

3. Cliquez insérer > Moduleet collez le code suivant dans le Fenêtre du module.

Code VBA: liste toutes les tables pivotantes d'un classeur

Sub ListPivotsInfor()
'Update 20141112
    Dim St As Worksheet
    Dim NewSt As Worksheet
    Dim pt As PivotTable
    Dim I, K As Long
    Application.ScreenUpdating = False
    Set NewSt = Worksheets.Add
    I = 1: K = 2
    With NewSt
        .Cells(I, 1) = "Name"
        .Cells(I, 2) = "Source"
        .Cells(I, 3) = "Refreshed by"
        .Cells(I, 4) = "Refreshed"
        .Cells(I, 5) = "Sheet"
        .Cells(I, 6) = "Location"
        For Each St In ActiveWorkbook.Worksheets
            For Each pt In St.PivotTables
                I = I + 1
                .Cells(I, 1).Value = pt.Name
                .Cells(I, 2).Value = pt.SourceData
                .Cells(I, 3).Value = pt.RefreshName
                .Cells(I, 4).Value = pt.RefreshDate
                .Cells(I, 5).Value = St.Name
                .Cells(I, 6).Value = pt.TableRange1.Address
            Next
        Next
        .Activate
    End With
    Application.ScreenUpdating = True
End Sub

4. Puis appuyez F5 clé pour exécuter ce code, tous les noms de table pivotante, plage de données source, nom de la feuille de calcul et autres attributs sont répertoriés dans une nouvelle feuille de calcul qui a placé au premier plan de votre feuille de calcul active comme capture d'écran suivante illustrée:

doc-list-tout-pivottable-1


Articles Liés:

Comment vérifier si un tableau croisé dynamique existe dans un classeur?

Comment ajouter plusieurs champs dans le tableau croisé dynamique?



Outils de productivité recommandés

Office Tab

étoile d'or1 Apportez des onglets pratiques à Excel et à d'autres logiciels Office, tout comme Chrome, Firefox et Internet Explorer.

Kutools for Excel

étoile d'or1 Incroyable! Augmentez votre productivité dans les minutes 5. Ne nécessite pas de compétences particulières, économisez deux heures par jour!

étoile d'or1 300 Nouvelles fonctionnalités pour Excel, rendent Excel facile et puissant:

  • Fusionner des cellules / lignes / colonnes sans perdre de données.
  • Combiner et consolider plusieurs feuilles et classeurs.
  • Comparez les gammes, copiez plusieurs gammes, convertissez le texte en date, l'unité et la conversion de devise.
  • Compter par couleurs, sous-totaux de recherche, tri avancé et super filtre,
  • Plus Sélectionner / Insérer / Supprimer / Texte / Format / Lier / Commenter / Classeurs / Feuilles de calcul Outils ...

Capture d'écran de Kutools pour Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Drip LeBuk · 3 years ago
    Good stuff. Could include this snippet to make the pivot table name a hyperlink.

    .Cells(I, 1).Parent.Hyperlinks.Add Anchor:=.Cells(I, 1) _
    , Address:="" _
    , SubAddress:="'" + St.Name + "'!" + Split(pt.TableRange1.Address, ":")(0) _
    , TextToDisplay:=pt.Name
    With .Cells(I, 7).Font
    .ColorIndex = xlAutomatic
    .Underline = xlUnderlineStyleNone
    End With
    With .Cells(I, 7).Characters(Start:=1, Length:=Len(pt.Name)).Font
    .Underline = xlUnderlineStyleSingle
    .Color = -4165632
    End With