Difficultés création de graphique croisé dynamique VBA
Difficultés création de graphique croisé dynamique VBA - Logiciels - Windows & Software
MarshPosté le 03-03-2015 à 08:40:11
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" )
Marsh Posté le 03-03-2015 à 08:40:11
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