Difficultés création de graphique croisé dynamique VBA

Difficultés création de graphique croisé dynamique VBA - VB/VBA/VBS - Programmation

Marsh Posté le 03-03-2015 à 08:43:46    

Bonjour,
 
Je suis actuellement sur une macro permettant entre autres d'ouvrir un nouveau classeur, d'y copier une plage de donnée destiné à fournir un TCD ainsi qu'un graphique associé.
 
La macro fonctionne parfaitement jusqu'à l'ouverture du graphique, qui me propose l'erreur : "La méthode Range de l'objet Worsheet a échoué", ou dans une autre configuration me sort un graphique dont la plage de donnée n'est pas celle configurée mais celle de l'onglet où se situe le bouton permettant d’exécuter la macro.
 
Merci pour votre aide !  
 
'Affectation du TCD à la feuille "taux de Solde pda export"
Workbooks("Taux de Solde PDA.xls" ).Worksheets("Taux de solde PDA export" ).Activate
 
Set wshTCD = Worksheets("Taux de solde PDA export" )
 
'Suppresion de tous les TCD existants de la feuille
For Each PvtTCD In wshTCD.PivotTables
PvtTCD.TableRange2.Clear
Next PvtTCD
 
 'Ajout d'un TCD sur la feuille "Taux de Solde PDA export"
    Set PvtTCD = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Data filtrées!R1C1:R" & X & "C17" ) _
                .CreatePivotTable(TableDestination:=wshTCD.Range("B5" ), TableName:="Taux de Solde PDA" )
 
 
                'Ajout des champs au TCD
       With PvtTCD
 
        'Ajout d'une Ligne
 
        With .PivotFields("Agence Dépannage" )
            .Orientation = xlRowField
            .Position = 1
        End With
         
        With .PivotFields("Chargé de travaux" )
            .Orientation = xlRowField
            .Position = 2
        End With
 
 
        'Ajout d'une Colonne
        With .PivotFields("Solde" )
            .Orientation = xlColumnField
            .Position = 1
        End With
 
        'Ajout d'une Valeur Solde
        With .PivotFields("Solde" )
            .Orientation = xlDataField
        End With
 
'        'Ajout d'une Ligne
'        With .PivotFields("Centre" )
'            .Orientation = xlPageField
'            .Position = 1
'        End With
 
        'Ajout d'une Ligne
        With .PivotFields("Mois" )
            .Orientation = xlPageField
            .Position = 1
        End With
    End With
 
    '*********************création du Graphique croisé dynamique associé*********************
 
 
With Workbooks("Taux de Solde PDA.xls" ).Worksheets("Taux de solde PDA export" )
 
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Range("'Taux de solde PDA export'!$B$5:$G$174" )
    ActiveWorkbook.ShowPivotChartActiveFields = True
    ActiveChart.ChartType = xlColumnStacked
 
End With

Reply

Marsh Posté le 03-03-2015 à 08:43:46   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed