CathyAstuce

VBA

GEMCCAP CONSEIL INFORMATIQUE BUREAUTIQUE
Formation - Conception Sites Internet
Applications Informatiques Personnalisées
Communauté partenaire Microsoft

LES SÉRIES DE DONNÉES D'UN GRAPHIQUE D'EXCEL

  Ajouter ou supprimer Mettre en forme 

Remonter I. Ajouter ou supprimer

L'ensemble des séries de données d'un graphique constitue une collection, on atteint cette collection en utilisant la méthode SeriesCollections de l'obget Chart. Pour ne renvoyer qu'une seule série, utilisez la méthode Chart.SeriesCollections(index) où index est le numéro d'index de la série dans la collection.

Pour ajouter une série de données, utilisez la méthode Add de la collection. L'exemple suivant crée 2 séries de données, puis crée un graphique sur la 1ère série. En lançant ensuite la procédure , vous ajouter une 2ième série.

Sub NeauGraph()
   Dim N As Byte, L As Byte
   Dim Graph As ChartObject

   N = 1
   With ActiveWorkbook.Worksheets(1)
      .Range("A1") = "Valeurs X"
      .Range("B1") = "Valeurs Y=X+10"
      .Range("C1") = "Valeurs Y=2X"
      For L = 2 To 10
         .Range("A" & L) = "X=" & N
         .Range("B" & L) = N + 10
         .Range("C" & L) = N * 2
         N = N + 1
      Next L
      .Range("A:C").Columns.AutoFit
      Set Graph = .ChartObjects.Add(0, 140, 400, 250)
   End With
   With Graph.Chart
      .SetSourceData Worksheets(1).Range("A1:B10")
      .ChartArea.Border.LineStyle = xlDashDotDot
      .ChartArea.Border.Weight = xlMedium
      .HasTitle = True
      .ChartTitle.Text = "Graphique d'essai"
      .ChartTitle.Characters(0, 9).Font.Bold = True
      .ChartType = xlLine
      With .Legend
         .Font.Bold = True
         .Font.Italic = True
         .Position = xlLegendPositionCorner
         .Top = 10
         .Height = 20
      End With
      With .PlotArea
         .Interior.ColorIndex = 2
         .Left = 0
         .Top = 30
         .Width = Graph.Chart.ChartArea.Width
         .Height = Graph.Chart.ChartArea.Height - 40
      End With
   End With
End Sub

Sub AjoutSerie()
   Dim Graph As Chart

   With ActiveWorkbook.Worksheets(1)
      Set Graph = .ChartObjects(1).Chart
      Graph.SeriesCollection.Add .Range("C1:C10")
   End With
End Sub

Vous pouvez également utiliser la méthode NewSeries comme dans l'exemple suivant pour ajouter une série :

Sub AjoutSerie2()
   Dim Graph As Chart
   Dim NouvSerie As Series

   With ActiveWorkbook.Worksheets(1)
      Set Graph = .ChartObjects(1).Chart
      Set NouvSerie = Graph.SeriesCollection.NewSeries
      NouvSerie.Values = .Range("C2:C10")
      NouvSerie.Name = "=" & .Name & "!R1C3"
   End With
End Sub

Pour supprimer une série, utilisez la propriété Delete.

Sub SupprSerie()
   Dim Graph As Chart

   With ActiveWorkbook.Worksheets(1)
      Set Graph = .ChartObjects(1).Chart
      Graph.SeriesCollection(2).Delete
   End With
End Sub

Remonter II. Mettre en forme

Avec les propriétés et les méthodes de l'objet Series, vous pouvez modifiez la série de données, tout comme dans les boîte de dialogue Propriétés de la série et Options du graphique. Je ne vous donne ici que les quelques propriétés et méthodes les plus souvent utilisées.

Propriétés
AxisGroup xlPrimary ou xlSecondary indique si la série est tracée avec l'axe principal ou secondaire
Border .LineStyle
.Color
.ColorIndex
.Weight
renvoie ou définit la bordure, vous pouvez modifier le style, la couleur et l'épaisseur.
ChartType voir liste des constantes dans l'aide renvoie ou définit le type de graphique
Fill renvoie un objet FillFormat représentant la mise en forme du remplissage. Avec les propriétés et méthodes de cet objet vous pouvez avoir un remplissage uniforme, dégradé, avec texture, avec motif, avec image ou semi-transparent. Voir l'aide pour toutes ces possibilités
Interior .Color
.ColorIndex
.Pattern
.PatternColor
.PatternColorIndex
.InvertIfNegative
Pour modifier la couleur du fond, le motif et la couleur du motif du fond, ou pour inverser le motif si la valeur est négative.
LeaderLines renvoie un objet qui représente les lignes d'étiquettes de la série. Vous pouvez modifier la couleur, la taille et le style de ces lignes.
MarkerBackgroundColor
MarkerBackgroundColorIndex
MarkerForegroundColorIndex
MarkerForegroundColor
MarkerStyle
MarkerSize
renvoie ou modifie la couleur de 1er plan et d'arrière plan, le style de trait, la taille des symboles de la série.
Name renvoie ou définit le nom de la série, si vous désirez qu'elle reflète le contenu d'une cellule, attribuez lui la valeur : "=" & Flle.Name & "!R" & L & "C" & Col. Où Flle est le nom de la feuille contenant la cellule à laquelle vous voulez vous référer, L est le numéro de ligne de cette cellule et Col son numéro de colonne.
PlotOrder Renvoie ou définit l'ordre de traçage de la série.
Smooth True si le lissage des courbes est activée
Values renvoie ou définit la plage source des données
XValues renvoie ou définit la plage source des valeurs X
Méthodes
ApplyDataLabels(Type, LegendKey, AutoText, HasLeaderLines) Applique des étiquettes de données à la série. Voir les méthodes des graphiques.
DataLabels renvoie un objet représentant une ou toutes les étiquettes de données. Vous pouvez alors modifier leurs formats grâce à ces propriétés et méthodes. Voir l'aide.
Points renvoie un objet représentant un ou tous les points de la série. Vous pouvez alors modifier leurs formats grâce à ces propriétés et méthodes. Voir l'aide.
Trendlines renvoie un objet représentant une ou toutes les courbes de tendances de la série. Vous pouvez alors modifier leurs formats grâce à ces propriétés et méthodes. Voir l'aide.

En réutilisant le graphique créé avec le code ci-dessus, lancez le code suivant pour modifier une série.

Sub ModifSerie()
    With ActiveWorkbook.Worksheets(1).ChartObjects(1).Chart.SeriesCollection(1)
        .Border.Color = RGB(0, 0, 255)
        .MarkerStyle = xlMarkerStyleCircle
        .MarkerSize = 20
        .MarkerBackgroundColor = RGB(0, 255, 0)
        .MarkerForegroundColor = RGB(255, 0, 0)
        With .Points(2)
            .MarkerStyle = xlMarkerStyleDiamond
            .MarkerForegroundColor = RGB(0, 255, 0)
            .MarkerBackgroundColor = RGB(255, 0, 0)
        End With
        .AxisGroup = xlSecondary
    End With
End Sub

AccueilDébut de la page