Création tableau croisé dynamique VBA

Bonjour à tous,

Je souhaite créer un tableau croisé dynamique avec :

  • pour filtre "LIBELLE_TYPE"
  • pour étiquette de colonnes "magasin"
  • pour étiquette de lignes "vérif"
  • pour valeurs "vérif" renommé en "nombre de magasins" et "vérif" renommé "%" en %du total de la colonne
  • mon tableau ne doit pas afficher le total des lignes

Mon problème est que une fois ma macro lancée et terminée mon tableau dynamique n'a pas prit en compte l'étiquette de lignes et supprime le total des colonnes au lieu des lignes.

Voici mon code :

Sub Macro1()
Sheets.Add After:=Sheets(Sheets.Count)
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Feuil4!R1C1:R100000C42", Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:="Feuil6!R1C1", TableName:="Tableau croisé dynamique1", _
        DefaultVersion:=xlPivotTableVersion14
    Sheets("Feuil6").Select
    Cells(1, 1).Select
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Verif")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Magasin")
        .Orientation = xlColumnField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "LIBELLE_TYPE")
        .Orientation = xlPageField
        .Position = 1
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique1").PivotFields("Verif"), _
        "Nombre de Verif", xlCount
    ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique1").PivotFields("Verif"), _
        "Nombre de Verif2", xlCount
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "Nombre de Verif").Caption = "Nombre de magasins"
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "Nombre de Verif2")
        .Caption = "%"
        .Calculation = xlPercentOfColumn
        .NumberFormat = "0,00%"
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("LIBELLE_TYPE" _
        ).EnableMultiplePageItems = True
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Magasin")
        .PivotItems("(blank)").Visible = False
    End With
    Range("A4").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique1").ColumnGrand = False
End Sub

Pouvez-vous me dire où est mon erreur ?

De plus je souhaiterai réorganiser mes étiquettes de lignes.

Merci pour votre aide.

Bonjour

Au moins 95% des forumeurs maîtrisant les TCD te diront qu'on ne crée pas un TCD par VBA.

On le crée et le peaufine manuellement et on peut par VBA en modifier la source

Une autre réponse?

Bonjour,
Merci de joindre un fichier à ta demande pour une aide adaptée du forum.
Cdlt.

Bonjour,

J'ai trouvé mon erreur.

Pour créer un tableau croisé dynamique en VBA il faut écrire la ligne des "valeurs" avant la création des "étiquettes".

Cette ligne

ActiveSheet.PivotTables("Tableau croisé dynamique3").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique3").PivotFields("AV/AP"), _
        "Nombre de AV/AP", xlCount

Avant cette ligne

With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("AV/AP")
        .Orientation = xlRowField
        .Position = 1
    End With

Bonne journée :)

Inès

Rechercher des sujets similaires à "creation tableau croise dynamique vba"