Tcd vba

ngs

XLDnaute Junior
Bonsoir le forum,

J'ai essayé de créer un TCD avec VBA (voir le code en pièce jointe).
Le problème c'est que lorsque j'active la macro, excel affiche ceci:

"Erreur d'exécution '1004' :
Erreur définie par l'application ou par l'objet"

Remarque : le code est-il identique avec excel 2007 et 2010? si non, quelles sont les informations à intégrer pour excel 2010?


Merci pour votre aide.

ngs,
 

Pièces jointes

  • TCD VBA.xlsx
    15.3 KB · Affichages: 102

ngs

XLDnaute Junior
Re : Tcd vba

Re, le forum,

apparemment le code ne fonctionne pas quand on active le bouton. Du coup, le voici

Sub tableau()
'

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"base!R3C3:R7C5", Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:="tablo!R2C1", TableName:="Tableau croisé dynamique9", _
DefaultVersion:=xlPivotTableVersion12
Sheets("tablo").Select
Cells(2, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique9").PivotFields("Nom")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique9").PivotFields("Pays")
.Orientation = xlRowField
.Position = 2
End With
ActiveSheet.PivotTables("Tableau croisé dynamique9").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique9").PivotFields("Nb"), "Somme de Nb", _
xlSum
With ActiveSheet.PivotTables("Tableau croisé dynamique9").PivotFields("Pays")
.Orientation = xlColumnField
.Position = 1
End With
End Sub
 

JCGL

XLDnaute Barbatruc
Re : Tcd vba

Bonjour à tous,

Ceci à l'air de fonctionner :

VB:
Option Explicit

Sub Test()
    Application.ScreenUpdating = 0
    Sheets("TCD").Select
    Cells.ClearContents
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
                                      "Base!R3C3:R100C5", Version:=xlPivotTableVersion12).CreatePivotTable _
                                      TableDestination:="TCD!R2C1", TableName:="TCD", _
                                      DefaultVersion:=xlPivotTableVersion12
    Sheets("TCD").Select
    Cells(2, 1).Select
    With ActiveSheet.PivotTables("TCD").PivotFields("Nom")
        .Orientation = xlRowField
        .Position = 1
        .PivotItems("(blank)").Visible = False
    End With


    With ActiveSheet.PivotTables("TCD").PivotFields("Pays")
        .Orientation = xlRowField
        .Position = 2
    End With
    ActiveSheet.PivotTables("TCD").AddDataField ActiveSheet. _
                                                PivotTables("TCD").PivotFields("Nb"), "Somme de Nb", _
                                                xlSum
    With ActiveSheet.PivotTables("TCD").PivotFields("Pays")
        .Orientation = xlColumnField
        .Position = 1
    End With
    ActiveSheet.PivotTables("TCD").CompactLayoutColumnHeader = "Pays"
End Sub

A + à tous
 

Pièces jointes

  • JC TCD VBA.xlsm
    27.1 KB · Affichages: 63

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 559
Messages
2 089 600
Membres
104 222
dernier inscrit
mouhim