CathyAstuce

VBA

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

LES COLLECTIONS GRAPHIQUE D'EXCEL

  Les graphiques incorporés   Les feuilles graphiques

Remonter I. Les graphiques incorporés

Pour travailler avec un graphique incorporé dans une feuille de calcul, utilisez le code suivant : FlleTravail.ChartObjects(Index).Chart
FlleTravail est le nom de votre feuille de calcul, est Index le n° d'index du graphique dans cette feuille, la propriété Chart renvoie l'objet Chart représentant le graphique. La collection est donc FlleTravail.ChartObjects.
Vous pouvez également faire référence à un objet Chart, lorsque celui-ci est une feuille graphique, si le graphique est activé grâce aux propriétés ActiveChart et ActiveSheet
En fait, dans ce cas, vous utilisez la propriété Chart de la collection ChartObjects pour renvoyer un objet Chart et dans le 2ème cas. 
Pour ajouter une feuille graphique, utilisez la méthode Add :
Charts.Add, l'exemple suivant ajoute une feuille graphique se référant aux données de la 1ère feuille du classeur actif :

Sub NelleFlleGraph()
   Dim N As Byte, L As Byte
   Dim Graph As Chart

   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
   End With
   Set Graph = Charts.Add
   Graph.SetSourceData Worksheets(1).Range("A1:C10")
End Sub

Remonter II. Les feuilles graphiques

Pour travailler avec le graphique d'une feuille graphique :
Charts(Index) ou Charts("titre de l'onglet") ou le nom de la feuille graphique indiqué dans la fenêtre projetVBA, où  Index est le n° d'index de la feuille et titre de l'onglet est le texte affiché sur l'onglet de la feuille graphique. Ici la collection est tout simplement Charts.
Dans ce cas, vous utilisez la méthode Charts(index) pour renvoyer un objet Chart
L'exemple suivant ajoute un graphique incorporé dans une feuille de calcul :

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
   Graph.Chart.SetSourceData Worksheets(1).Range("A1:C10")
End Sub

AccueilDébut de la page