Bonjour,Excel 2010 .SetSourceData vba tableau
Je vais avoir un problème avec la sélection des plages pour .SetSourceData pour mon graphique à barres empilées.
Mes plages sont non-contiguës. La date de début est dans la colonne G, et le reste des nombres est calculé dans les colonnes V à AI.
Actuellement, cela ne représente que les colonnes V à AI, et utilise la colonne G comme étiquette d'axe horizontal. J'ai essayé d'ajouter la plage d'étiquettes de l'axe horizontal (colonne E) comme premier argument .range à Union, mais il affiche alors les colonnes E & F (je ne sais pas d'où F vient) comme le hoz. étiquette d'axe. Et la colonne G était introuvable. Existe-t-il un moyen de le faire avec SetSourceData, ou dois-je définir individuellement SeriesCollection pour toutes les 15 séries?
Voir ci-dessous le code:
Sub Create_Chart()
'
' Create_Chart Macro
'
Dim ganttChart As ChartObject
Dim sourceRange As Range
With Sheets("Projects")
Set sourceRange = Union(.Range("G1:G70"), .Range("V1:AI70"))
End With
Set ganttChart = ActiveSheet.ChartObjects.Add(100, 50, 200, 200)
With ganttChart
With .Chart
.ChartType = xlBarStacked
.Legend.Delete
.Parent.Width = 1224
.Parent.Height = 828
.SetSourceData Source:=sourceRange, PlotBy:=xlColumns
.Location Where:=xlLocationAsNewSheet
With .Axes(xlValue)
'.MinimumScale = 41428
'.MaximumScale = 41607
.MajorUnit = 7
.TickLabels.NumberFormat = "m/d"
.TickLabels.Font.Size = 6
.TickLabels.Font.Name = "Calibri"
End With
With .Axes(xlCategory)
.ReversePlotOrder = True
.TickLabelSpacing = 1
.TickLabels.NumberFormat = "@"
.TickLabels.Font.Size = 6
.TickLabels.Font.Name = "Calibri"
End With
End With
End With
End Sub