Tableau croisé dynamique en VBA

sonskriverez

XLDnaute Occasionnel
Bonjour le forum

Tous les jours je dois faire un tableau croisé dynamique (toujours le même), est-ce possible de le faire en VBA.

J'ai recherché sur le forum, je n'ai pas trouvé d'exemples.

Merci de votre aide
 

Dan

XLDnaute Barbatruc
Re,

J'ai récupéré ton fichier.
Merci de me dire si ton TCD doit être tel que celui là ou si on doit y apporter des changement.
En effet dans les champs GRP, Type, Sys, Mod tu as chaque fois des totaux. Est-ce nécessaire ?

;)

Message édité par: Dan, à: 19/02/2006 13:52
 
S

sonskriverez

Guest
Il y a beaucoup plus de données, mais la forme ne change pas.
la seule chose c'est qu'à partir de ce TSD il y en à un autre à créé et aussi 2 autres sheets de synthèse à extraire.

Mais si je comprend commant tu fais pour celui-ci je devrais m'en sortir
 

Dan

XLDnaute Barbatruc
Re,

C'est pas trop beau comme résultat mais j'ai considéré que tu gardais les totaux dans toutes les rubriques. Saches que cela ne sert à rien qu'elle y soient ou non pour les autres TCD.
Ton projet semble plus complexe à première vue d'autant que tu veux refaire d'autres TCD à partir de celui-là...

essaie donc cette macro :
Code:
Sub TCDjour()
' Macro enregistrée le 18/02/06 par DAN pour sonskriverez
' Post : [B]Lien supprimé[/B]
Dim nom As String
Dim plage As Range
Application.ScreenUpdating = False
Sheets('Data').Activate
nom = Sheets('Data').Name
Set plage = ThisWorkbook.Sheets(nom).Range('A1').CurrentRegion
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:=plage, TableDestination:='', _
    TableName:='TCD-' & nom
With ActiveSheet.PivotTables('TCD-' & nom)
    .SmallGrid = False
    .PivotFields('Date ').Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
        False, False)
    .AddFields RowFields:=Array('GRP', 'Type ', 'Sys', 'Mod', 'Date '), ColumnFields:='Status'
    .PivotFields('N° Intervention').Orientation = xlDataField
End With
With Application
    .ScreenUpdating = True
    .CommandBars('PivotTable').Visible = False
End With
End Sub

Si pb n'hésite pas.

Bon travail

;)

Message édité par: Dan, à: 19/02/2006 15:07
 
S

sonskriverez

Guest
Merci Dan, j'essaye ton code avec mes données et je te dit.

C'est vrai que c'est complexe et difficilement lisible, pour les totaux faut voir peut-être que en gardant le Total de la colonne Mod et Grp cela serait plus clair.

l'autre TCD se fait aussi à partir de DATA

Les autre feuilles c'est juste un double clic sur le total de 2 rubrique Gp
 
S

sonskriverez

Guest
j'ai une erreur avec mon fichier sur cette ligne

.PivotFields('Date ').Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False)

'unable to get to Pivotfields property of the pivot table class'
 
S

sonskriverez

Guest
Laisse Dan c'était juste le nom du champ qui n'était pas bon.

Cela marche parfaitement avec mon fichier.

Je dois encore enlever des champs de la premiere colonne, je vais essayer avec l'enregistreur de macros
 

Discussions similaires

Réponses
2
Affichages
219

Statistiques des forums

Discussions
312 470
Messages
2 088 698
Membres
103 924
dernier inscrit
Patrick c