[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

image

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 Sub

Et tout ça se trouve dans le fichier joint. Par avance, merci de l'interet porté au sujet :)

26graph.xlsm (33.50 Ko)

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
Rechercher des sujets similaires à "vba personnalisation graphique"