Note: The other languages of the website are Google-translated. Back to English

Comment répertorier tous les tableaux croisés dynamiques d'un classeur?

En supposant que vous ayez un grand classeur contenant plusieurs tableaux croisés dynamiques, vous souhaitez maintenant répertorier tous les tableaux croisés dynamiques de ce classeur, est-ce possible? Bien sûr, le code VBA suivant dans cet article vous rendra service. Pour en savoir plus, veuillez lire l'article ci-dessous.

Lister tous les tableaux croisés dynamiques d'un classeur avec le code VBA

Onglet Office Activez la modification et la navigation par onglets dans Office et simplifiez considérablement votre travail ...
Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%
  • Réutiliser n'importe quoi: Ajoutez les formules, les graphiques et tout autre élément les plus utilisés ou les plus complexes à vos favoris et réutilisez-les rapidement à l'avenir.
  • Plus de 20 fonctionnalités de texte: Extraire le numéro de la chaîne de texte; Extraire ou supprimer une partie des textes; Convertissez les nombres et les devises en mots anglais.
  • Outils de fusion: Plusieurs classeurs et feuilles en un seul; Fusionner plusieurs cellules / lignes / colonnes sans perdre de données; Fusionner les lignes en double et la somme.
  • Outils de fractionnement: Diviser les données en plusieurs feuilles en fonction de la valeur; Un classeur vers plusieurs fichiers Excel, PDF ou CSV; Une colonne à plusieurs colonnes.
  • Coller sauter Lignes cachées / filtrées; Compte et somme par couleur d'arrière-plan; Envoyez des e-mails personnalisés à plusieurs destinataires en masse.
  • Super filtre: Créez des schémas de filtres avancés et appliquez-les à toutes les feuilles; Sort par semaine, jour, fréquence et plus encore; Filtre par gras, formules, commentaire ...
  • Plus de 300 fonctionnalités puissantes; Fonctionne avec Office 2007-2019 et 365; Prend en charge toutes les langues; Déploiement facile dans votre entreprise ou organisation.

flèche bleue bulle droite Lister tous les tableaux croisés dynamiques d'un classeur avec le code VBA


Le code VBA suivant peut vous aider à répertorier tous les noms de tableau croisé dynamique avec leurs attributs, tels que la plage de données source, le nom de la feuille de calcul, la date actualisée, etc.

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

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

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

Code VBA: liste tous les tableaux croisés dynamiques 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 tableau croisé dynamique, la plage de données source, le nom de la feuille de calcul et d'autres attributs sont répertoriés dans une nouvelle feuille de calcul placée au début de votre feuille de calcul active, comme illustré ci-dessous:

doc-list-all-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?


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (19)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Bon produit. Pourrait inclure cet extrait pour faire du nom du tableau croisé dynamique un lien hypertexte. .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 .Cells(I, 7).Characters(Start :=1, Length:=Len(pt.Name)).Font .Underline = xlUnderlineStyleSingle .Color = -4165632 End With
Ce commentaire a été minimisé par le modérateur sur le site
excellent. Je vous remercie.
Ce commentaire a été minimisé par le modérateur sur le site
C'était une énorme trouvaille pour moi! J'aurais aimé chercher cette solution il y a trois jours. Cela m'aurait fait gagner des heures !! Merci!
Ce commentaire a été minimisé par le modérateur sur le site
J'avais besoin de réparer un fichier contenant plus de 60 tableaux croisés dynamiques. Au départ, j'ai cliqué sur chacun à la fois pour le corriger (comme c'est le cas lorsque quelqu'un les "dissocie" mais je n'ai pas pu trouver tous les mauvais. Il a trouvé le dernier sur quelques colonnes qui étaient masquées sur l'original). Joli bout de code !
Ce commentaire a été minimisé par le modérateur sur le site
J'ai essayé de l'exécuter dans Excel 2013 et j'obtiens l'erreur d'exécution '1004' : erreur définie par l'application ou définie par l'objet. Si commentez la ligne .Cells(I, 2).Value = pt.SourceData, cela fonctionnera correctement, pouvez-vous me dire ce que je devrais faire pour que la partie SourceData fonctionne ? Merci Ross
Ce commentaire a été minimisé par le modérateur sur le site
[quote]J'ai essayé de l'exécuter dans Excel 2013 et j'obtiens l'erreur d'exécution '1004' : erreur définie par l'application ou définie par l'objet. Si commentez la ligne .Cells(I, 2).Value = pt.SourceData, cela fonctionnera correctement, pouvez-vous me dire ce que je devrais faire pour que la partie SourceData fonctionne ? Merci RossPar Ross[/quote] J'ai eu la même erreur. Je pense que c'est explosif lorsque la source d'un tableau croisé dynamique est le modèle de données Excel et utilisé par PowerPivot.
Ce commentaire a été minimisé par le modérateur sur le site
Merci pour cela. C'est un excellent morceau de code, très utile. Comme d'autres l'ont posté, je pense que cela ne fonctionne pas pour les tableaux croisés dynamiques dont la source de données sous-jacente est basée sur une requête de données Connection Only. J'ai un classeur avec une table de données. Je crée ensuite des requêtes de données de classeur plus raffinées basées sur les données de cette table. Les requêtes sont en connexion uniquement (évitant une augmentation inutile de la taille du classeur). J'ai ensuite créé des tableaux croisés dynamiques qui s'appuient sur les données des requêtes du classeur. Lorsque j'exécute le code, cela fonctionne bien pour les tableaux croisés dynamiques d'origine traditionnelle, mais il rencontre une erreur d'exécution lorsqu'il accède aux tableaux croisés dynamiques basés sur les données des requêtes de classeur. Spécifiquement; il donne une erreur d'exécution "1004": erreur définie par l'application ou définie par l'objet. La ligne de code où l'erreur se produit est : .cells(I, 2).value = pt.SourceData Merci d'avoir fourni le code et j'espère que ce qui précède vous aidera à l'affiner.
Ce commentaire a été minimisé par le modérateur sur le site
Très puissant. Merci beaucoup.
Ce commentaire a été minimisé par le modérateur sur le site
Pour les informations de connexion uniquement, les informations de connexion de données sont une propriété du PivotCache
J'ai un classeur qui contient plus de 40 tableaux croisés dynamiques avec un mélange de tableaux Excel et de connexions de données SQL Server. J'utilise le code suivant pour garder une trace d'eux


Sous GetPivotTableInfo()

Dim wb en tant que classeur
Dim pvt comme tableau croisé dynamique
Dim wsheet As Worksheet
Dim pc As PivotCache

Définir wb = ActiveWorkbook
Pour chaque wsheet dans wb.Worksheets
Pour chaque pvt dans wsheet.PivotTables
Debug.Print wsheet.Name & ": " & pvt.Name
Définir pc = wb.PivotCaches(pvt.CacheIndex)
Si pc.SourceType = xlDatabase Alors
Debug.Print pc.SourceData
autre
Si pc.QueryType = xlOLEDBQuery Alors
Debug.Print pc.Connection
Debug.Print pc.SourceConnectionFile
Debug.Print pc.WorkbookConnection.Name
Debug.Print pc.CommandText
Si fin
Si fin


Pvt suivant
Feuille de travail suivante
Ce commentaire a été minimisé par le modérateur sur le site
M'a sauvé d'un gros mal de tête !
Impossible de trouver quel tableau croisé dynamique provoquait une "Erreur d'actualisation de tout"
Boom répertorié avec les emplacements, merci beaucoup
Ce commentaire a été minimisé par le modérateur sur le site
Étonnante!!! merci !!!!
Ce commentaire a été minimisé par le modérateur sur le site
C'est génial! Je cherchais un code comme celui-ci, mais avec en plus l'affichage de tous les champs actifs par table. J'ai besoin de nettoyer les tables source des champs inutiles (trop lourds) et elles alimentent un livre de plus de 300 pivots. Je préférerais ne pas aller un tableau croisé dynamique à la fois pour déterminer quels champs je peux éliminer... Si vous pouviez me montrer comment, ce serait incroyable... Merci !
Ce commentaire a été minimisé par le modérateur sur le site
Merci pour le message, j'ai un peu nettoyé le code en définissant I et Long et en supprimant la référence à K car elle n'était pas utilisée. Enfin, j'ai ajouté une ligne juste en dessous de votre .Activate pour afficher .Columns.AutoFit
Ce commentaire a été minimisé par le modérateur sur le site
TRES pratique à avoir en un clin d'oeil ! Merci.
Ce commentaire a été minimisé par le modérateur sur le site
C'est génial.
Ce commentaire a été minimisé par le modérateur sur le site
Une aide précieuse, m'a fait gagner une tonne de temps à rechercher l'un des nombreux tableaux croisés dynamiques portant le même nom dans un classeur !
Ce commentaire a été minimisé par le modérateur sur le site
erreur d'exécution 1004
Ce commentaire a été minimisé par le modérateur sur le site
S'adapte parfaitement !! Merci beaucoup
Ce commentaire a été minimisé par le modérateur sur le site
malheureusement, j'obtiens plusieurs erreurs, cela aurait été absolument génial pour mes classeurs multi-onglets et multi-pivots
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés