[VBA] Personnalisation graphique
Bonjour le forum :)
alors voilà, j'ai une macro qui me fait une extraction de données et une mise en forme pour création d'un Pareto. Tout fonctionne, je cherche "juste" à faire de la mise en forme sur mon graphique. Le truc c'est que je ne connais pas les commandes et je n'ai rien trouvé sur le net ou même sur Microsoft.doc...
Je cherche donc les paramètres suivant :
- Ajouter une bordure à la liste de données principal
- Choisir l'épaisseur du trait et si possible sa couleur
- Modifier la couleur intérieur de la liste de donnée principal
- Modifier l'épaisseur de courbe représentant et sa couleur
- Déplacer la légende
- Ajouter un titre
- La couleur des axes en noir
- Supprimer les lignes au milieu du graphique
Globalement j'aimerais que le graph reassemble à ça
Voilà le code que j'ai écrit pour le moment :
Option Explicit
Sub Graphique()
Dim Datas As Range, Acceuil As Range
Dim f2 As Worksheet
Dim Graph As Chart
Set f2 = ActiveSheet
Set Datas = f2.UsedRange
Set Acceuil = f2.Range("F1:J11")
Set Graph = f2.ChartObjects.Add(Acceuil.Left, Acceuil.Top, Acceuil.Width, Acceuil.Height).Chart
With Graph
.ChartType = xlColumnClustered
.SetSourceData Source:=Datas
.FullSeriesCollection(2).Delete
.FullSeriesCollection(1).ChartType = xlColumnClustered
.FullSeriesCollection(2).ChartType = xlLine
.FullSeriesCollection(2).AxisGroup = 2
.ChartStyle = 2
.ChartGroups(1).GapWidth = 0
End With
End SubEt tout ça se trouve dans le fichier joint. Par avance, merci de l'interet porté au sujet :)
Bon et bien je me répond tout seul, l'enregustreur de macro m'a bien aidé, je comprend pas, j'avais dékà essayé avec mais il ne "captais" pas mes actions... bref sujet résolut !
Private Sub NewGraph()
Dim Datas As Range, Accueil As Range
Dim Graph As Chart
Set Datas = f2.UsedRange
Set Accueil = f2.Range("F1:J19")
Set Graph = f2.ChartObjects.Add(Accueil.Left, Accueil.Top, Accueil.Width, Accueil.Height).Chart
With Graph
.ChartType = xlColumnClustered
.SetSourceData Source:=Datas
.FullSeriesCollection(2).Delete
.ChartStyle = 2
.ChartGroups(1).GapWidth = 0
.SetElement (msoElementChartTitleAboveChart)
.ChartTitle.Text = Range("A1")
.SetElement (msoElementLegendBottom)
With .FullSeriesCollection(1)
.ChartType = xlColumnClustered
With .Format.Line
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorText1
.Weight = 0.5
End With
With .Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 176, 240)
End With
End With
With .FullSeriesCollection(2)
.ChartType = xlLine
.AxisGroup = 2
With .Format.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(112, 48, 160)
End With
End With
.Axes(xlValue).MajorGridlines.Format.Line.Visible = msoFalse
.Axes(xlValue, xlSecondary).Format.Line.ForeColor.ObjectThemeColor = msoThemeColorText1
.Axes(xlCategory).Format.Line.ForeColor.ObjectThemeColor = msoThemeColorText1
.Axes(xlValue).Format.Line.ForeColor.ObjectThemeColor = msoThemeColorText1
.Axes(xlValue).MinimumScale = 0
.Axes(xlValue, xlSecondary).MinimumScale = 0
.Axes(xlValue, xlSecondary).MaximumScale = 1
.Axes(xlValue).MaximumScale = Application.WorksheetFunction.MAX(Range("B2:B" & Datas.Rows.Count))
End With
End Sub