inclure un tableau croisé dynamique dans une macro

  • Initiateur de la discussion kuhn
  • Date de début
K

kuhn

Guest
Bonjour,

Dans mon fichier joint j'ai sur une feuille mes données sur l'autre le tableau croisé dynamique qui en résulte.

J'ai 2 problèmes :

-Je souhaite faire une macro qui crée directement le tableau croisé dynamique, le problème c'est que dès que je l'execute il me dit qu'il y a un bug. Comment faire alors ?

-Etant donné que mes donnés sont issus d'une importation d'access et que le nombres de saisies vont forcement augmenter, y a t-il un moyen pour que la macro me pernne en compte uniquement les ligne remplies ?

Je vous remercie de votre aide.

Nico
[file name=kuhn2_20050623173533.zip size=9349]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/kuhn2_20050623173533.zip[/file]
 

Pièces jointes

  • kuhn2_20050623173533.zip
    9.1 KB · Affichages: 23

pat1545.

XLDnaute Accro
bon, avec l'enregistreur et un petitte modif, voilà un début:
Option Explicit

Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 23/06/2005 par pat
'

'
Worksheets('feuil2').Select
Range('F9').Select
Selection.CurrentRegion.Select
Selection.Name = 'table'
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
'table').CreatePivotTable TableDestination:='', TableName:= _
'Tab1'
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables('Tab1').SmallGrid = False
ActiveSheet.PivotTables('Tab1').PivotFields('ID'). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
ActiveSheet.PivotTables('Tab1').AddFields RowFields:= _
Array('NOM DU PRODUIT', 'ESSAI', 'ID'), ColumnFields:='ETAT'
ActiveSheet.PivotTables('Tab1').PivotFields('DUREE'). _
Orientation = xlDataField
End Sub

Patrick
 

Dan

XLDnaute Barbatruc
Bonsoir,

En amélioration de la macro de pat, voici deux macros pour la constitution du TCD qui te permettront d'aller plus vite:

1. La macro pour effacer les données du TCD

Code:
Sub EffaceTCD()
' Efface TCD
' Macro le 23/06/2005 par Dan pour XLD - Kuhn

Sheets('feuil3').Select
 Cells.Select
 Selection.Clear
 Range('A1').Select
End Sub

2. La macro pour construire le TCD

Code:
Sub TCD()
'Construction TCD

 Application.ScreenUpdating = False
 Call EffaceTCD
 Worksheets('feuil2').Activate 'feuil2 = feuille des données
 Range('A1').Select
 ActiveSheet.UsedRange.Name = 'table'
 Worksheets('feuil3').Activate 'feuil3 = feuille du TCD
 ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:='table', TableDestination:='R1C1', TableName:='TCD1'
        With ActiveSheet.PivotTables('TCD1')
            .SmallGrid = False
            .PivotFields ('ID')
            .PivotFields ('ESSAI')
            .AddFields RowFields:=Array('NOM DU PRODUIT', 'ESSAI', 'ID'), ColumnFields:='ETAT'
            .PivotFields('DUREE').Orientation = xlDataField
        End With
 Application.ScreenUpdating = True
End Sub

Bon travail

;)

Message édité par: Dan, à: 23/06/2005 21:40
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 071
Membres
104 020
dernier inscrit
Mzghal