Inversion des abscisses et ordonnées dans un Graphique en vba
Inversion des abscisses et ordonnées dans un Graphique en vba - VB/VBA/VBS - Programmation
MarshPosté le 11-08-2010 à 10:42:52
Bonjour, à partir d'un tableau croisé dynamique, j'ai crée un graphique, tout marche sauf qu'en fait j'aimerais que mon absisse devienne mon ordonné et inversement. Je vous ai mis les codes du tableau croisé dynamique et du graphique pour que vous puissiez comprendre Avec ce code jobtiens en ordonné le nom des pqa ingeneer et en abscisse la charge par mois, qui correspond a mes données dans mon tableau croisé dynamique Comment puis-je faire pour avoir le nom des pqa ingeneer en abscisse? Je vous remercie
Sub Tableau_croisé() Dim mois As String Dim DerLig As Long Dim DerCol As Integer, I As Integer Application.ScreenUpdating = False With Sheets("Synt_charge" ) DerLig = .[A65000].End(xlUp).Row 'dernière ligne de la feuille Synt_charge DerCol = .[IV2].End(xlToLeft).Column 'dernière colonne de la ligne 2 de la feuille Synt_charge .Range(.Cells(1, 1), .Cells(DerLig, DerCol)).Name = "base" 'zone nommée ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "base" ).CreatePivotTable TableDestination:="", TableName _ :="Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10 End With
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) With ActiveSheet.PivotTables("Tableau croisé dynamique1" ) With .PivotFields("PQA Engineer" ) .Orientation = xlRowField .Position = 1 End With With .PivotFields("Project Type" ) .Orientation = xlColumnField .Position = 1 End With For I = 3 To DerCol mois = Format(Worksheets("Synt_charge" ).Cells(1, I).Value, "mmmm-yy" ) 'regarde le format .AddDataField .PivotFields(mois), "Somme de " & mois, xlSum Next I
End With ActiveSheet.Name = "tab_dyn" End Sub
Sub graphique() Dim Graphique_charges As Chart Set Graphique_charges = Charts.Add With Graphique_charges .SetSourceData Source:=Sheets("tab_dyn" ).Range("C3" ) .ChartType = xlBarStacked .HasTitle = True .ChartTitle.Text = "Charge mensuelle" .Location Where:=xlLocationAsNewSheet
Marsh Posté le 11-08-2010 à 10:42:52
Bonjour, à partir d'un tableau croisé dynamique, j'ai crée un graphique, tout marche sauf qu'en fait j'aimerais que mon absisse devienne mon ordonné et inversement.
Je vous ai mis les codes du tableau croisé dynamique et du graphique pour que vous puissiez comprendre
Avec ce code jobtiens en ordonné le nom des pqa ingeneer et en abscisse la charge par mois, qui correspond a mes données dans mon tableau croisé dynamique
Comment puis-je faire pour avoir le nom des pqa ingeneer en abscisse?
Je vous remercie
Sub Tableau_croisé()
Dim mois As String
Dim DerLig As Long
Dim DerCol As Integer, I As Integer
Application.ScreenUpdating = False
With Sheets("Synt_charge" )
DerLig = .[A65000].End(xlUp).Row 'dernière ligne de la feuille Synt_charge
DerCol = .[IV2].End(xlToLeft).Column 'dernière colonne de la ligne 2 de la feuille Synt_charge
.Range(.Cells(1, 1), .Cells(DerLig, DerCol)).Name = "base" 'zone nommée
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"base" ).CreatePivotTable TableDestination:="", TableName _
:="Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
End With
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
With ActiveSheet.PivotTables("Tableau croisé dynamique1" )
With .PivotFields("PQA Engineer" )
.Orientation = xlRowField
.Position = 1
End With
With .PivotFields("Project Type" )
.Orientation = xlColumnField
.Position = 1
End With
For I = 3 To DerCol
mois = Format(Worksheets("Synt_charge" ).Cells(1, I).Value, "mmmm-yy" ) 'regarde le format
.AddDataField .PivotFields(mois), "Somme de " & mois, xlSum
Next I
End With
ActiveSheet.Name = "tab_dyn"
End Sub
Sub graphique()
Dim Graphique_charges As Chart
Set Graphique_charges = Charts.Add
With Graphique_charges
.SetSourceData Source:=Sheets("tab_dyn" ).Range("C3" )
.ChartType = xlBarStacked
.HasTitle = True
.ChartTitle.Text = "Charge mensuelle"
.Location Where:=xlLocationAsNewSheet
End With
End Sub