• Initiateur de la discussion Initiateur de la discussion ngs
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

ngs

Guest
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

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
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
528
Retour