IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[FAQ Excel] Les tableaux croisés dynamiques [À publier]


Sujet :

Macros et VBA Excel

  1. #1
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut [FAQ Excel] Les tableaux croisés dynamiques
    Q: C'est quoi Un Tableau Croisé Dynamique ?

    R:
    Un Tableau Croisé Dynamique (TCD) est la présentation d'une source de données sous forme de tableau. Il est dynamique car toute modification de la source entraine la mise à jour du tableau (l'actualisation des données). Il permet de combiner et comparer rapidement un grand nombre de données.
    Dans un rapport de tableau croisé dynamique, chaque colonne ou champ de données sources devient un champ de tableau croisé dynamique qui synthétise plusieurs lignes d'informations. La présentation du tableau peut être paramétrée en personnalisant la position des champs de données, en fonction des résultats à visualiser.
    Cet outil permet d'effectuer des calculs (somme, nombre ,produit , max ,ecart type ... ) et d'analyser de facon Dynamique la source de données. Il est possible de faire pivoter les lignes et colonnes pour afficher différentes synthèses des données sources.
    Le TCD est un outil statistique qui repose avant tout sur une base de données bien structurée. Il ne faut pas laisser de lignes ou colonnes vides entre les données de la base.
    Evitez (si possible) de placer le TCD dans la feuille contenant la base de données.



    ********


    Q: Comment créer un TCD par macro ?


    R:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub CreerTCD()
     
    'SourceData: Définit la source de données dans le TCD.
    '[Feuil1!A1].CurrentRegion.Address(, , xlR1C1, True) permet d'étendre
    'automatiquement la sélection de façon à y inclure toute la zone en cours
    'à partir de la cellule A1, dans la Feuil1.
     
    'TableDestination: Définit la position du TCD (cellule A3 dans la Feuil2).
     
    'TableName: Définit le nom du nouveau TCD. ("Mon TCD")
     
    ThisWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        [Feuil1!A1].CurrentRegion.Address(, , xlR1C1, True)).CreatePivotTable _
        TableDestination:="Feuil2!R3C1", _
        TableName:="Mon TCD"
     
     
    'Mise en forme:
    With Feuil2.PivotTables("Mon TCD")
        'Ajoute un champ de lignes nommé "Ville".
        'Le nom du champ "Ville" doit préalablement exister comme entête de la
        'source de données.
        .AddFields RowFields:="Ville"
        'Définit l'orientation du champ nommé "CA" en tant que Donnée.
        'le nom du champ "CA" doit préalablement exister comme entête
        'de la source de données.
        .PivotFields("CA").Orientation = xlDataField
    End With
     
    End Sub


    ************


    Q. Comment appliquer la fonction Moyenne au champ "Somme de CA" du TCD ?

    R.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub AppliquerFonctionTCD()
     
    Feuil2.PivotTables("Mon TCD").PivotFields("Somme de CA").Function = xlAverage
     
    'Les autres constantes disponibles pour la propriété Function:
    'xlAverage - Moyenne
    'xlCountNums - Nb
    'xlMin - Min
    'xlStDev - Ecartype
    'xlSum - Somme
    'xlVar - Var
    'xlCount - Nombre
    'xlMax - Max
    'xlProduct - Produit
    'xlStDevP - Ecartypep
    'xlUnknown - 
    'xlVarP - Varp
     
    End Sub


    *************


    Q: Comment modifier la source d'un TCD ?


    R:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub ModifierSource()
        Dim objCellule As Range
        Dim Pvt As PivotTable
     
        'Définit la nouvelle plage source
        Set objCellule = ThisWorkbook.Sheets("Feuil1").Range("A1:B50")
        'Définit le TCD qui va être mis à jour.
        Set Pvt = Sheets("Feuil2").PivotTables("Mon TCD")
     
        Pvt.PivotTableWizard SourceType:=xlDatabase, _
            SourceData:=objCellule.Address(, , xlR1C1, True)
    End Sub



    ***********


    Q: Comment détruire les anciennes étiquettes dans un TCD ?

    R:
    Suite aux modifications d'étiquettes dans la base de données, il peut arriver que le TCD ne s'actualise pas et les étiquettes de colonnes persistent dans les filtres des champs. Utilisez la macro ci dessous pour y remédier.
    (à partir d'excel 2002 uniquement)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Pvt As PivotTable
    Set Pvt = ActiveSheet.PivotTables("Mon TCD")
    Pvt.PivotCache.MissingItemsLimit = xlMissingItemsNone

  2. #2
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Je le deteste !!

    On vient de publier une maj de la FAQ VBA et elle est déjà obsolète !
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour Thierry

    L'objectif est de rejoindre le nombre de Q/R de la FAQ Delphi d'ici la fin de l'année ...;o)


    bonne journée
    michel

Discussions similaires

  1. [AC-2013] Comment remplacer les tableaux croisés dynamiques d'ACCESS 2010
    Par JOHN14 dans le forum Access
    Réponses: 1
    Dernier message: 08/04/2014, 17h27
  2. [AC-2010] Vidéo : Access (2010) et les tableaux croisés dynamiques
    Par Maxence HUBICHE dans le forum Access
    Réponses: 20
    Dernier message: 06/12/2013, 20h35
  3. [AC-2010] MAJ données Excel et tableaux croisés dynamique
    Par Tytelle dans le forum VBA Access
    Réponses: 3
    Dernier message: 24/04/2012, 17h17
  4. Réponses: 1
    Dernier message: 04/10/2009, 11h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo