Accueil
CreationGraphique GraphiqueDynamique Graphique dynamique produit Graphe dynamique à bulles Etiquettes pour graphique nuage de points Evénement graphe
Création d'un graphique
-Sélectionner le champ A1:C7
-Insertion/Graphique

Graphique dynamique
Le graphique s'agrandit au fur et à mesure que les mois sont ajoutés.
On veut que le graphique s'agrandisse au fur et à mesure que des mois sont ajoutés.
- GrapheDynHisto -

1 - Créer le graphe
2- Créer des noms de champs dynamqiues avec Insertion/Nom/Définir
Mois: =DECALER($A$2;0;0;NBVAL($A:$A)-1)
Ca: =DECALER($B$2;0;0;NBVAL($B:$B)-1)
3-Sélectionner le graphe:
Dans la barre de formule, remplacer les numéros de cellules par les noms Mois et CA
=SERIE(GrapheDyn!$B$1;'jb-GraphiqueDynamique.xls'! Mois;'jb-GraphiqueDynamique.xls'!ca;1)
Feuille dupliquée
Si on duplique une feuille (Graphe2 par exemple), les noms de champ dupliqués sont locaux à la feuille .
-Sélectionner le graphe:
-Dans la barre de formule:
=SERIE(Graphe2!$B$1;Graphe2!Mois;Graphe2!CaMois;1)
Seuls les mois avec un CA sont pris en considération

-Créer des noms de champs dynamiques avec Insertion/Nom/Définir
Mois4: =DECALER($B$2;;;NBVAL$B:$B)-1) Ca4: =DECALER($A$2;;;NBVAL(!$B:$B)-1)
Cliquer sur la série et dans la barre de formule, remplace les nos de cellule par les
noms de champ dynamiques
=SERIE(GraphDyn3!$B$1;'jb-GraphiqueDynamique.xls'!Mois4;'jb-GraphiqueDynamique.xls'!CaMois4;1)
Seuls les mois avec un CA>0 sont pris en considération
-Créer des noms de champs dynamiques Insertion/Nom/Définir Mois
=DECALER($B$2;;;NB.SI($B$2:$B$13;"<>0"))
Insertion/Nom/Définir Ca
=DECALER($A$2;;;NB.SI($B$2:$B$13;"<>0"))
Cliquer sur la série et dans la barre de formule
=SERIE(zz!$B$1;zz!mois;zz!ca;1)

Affiche le graphe du produit sélectionné
1-Préparer un graphique
2-Créer en G2 une liste avec Données/Validation/Liste
3- Créer des noms de champ dynamiques
Ca: =DECALER($B$2:$D$2;EQUIV($A$10;$A$2:$A$5)-1;0)
produit:=DECALER(A$2;EQUIV($G$2;$A$2:$A$5;0)-1;0)
-Dans la barre de formule du graphe:
=SERIE(produit;$B$1:$D$1;Ca;1)
4-En choisissant le produit, le graphique est adapté
GrapheDyn5

Graphique dynamique à bulles
Sur cet exemple, on analyse la croissance des CA de vendeurs.
GraphiqueBullesCouleur

1-Créer le graphique
-Sélectionner B2:D7
2-Créer des noms de champ dynamiques
Croissance : =DECALER($B$2;;;NBVAL($B:$B)-1) CAavant : =DECALER(Croissance;;1) CA : =DECALER(Croissance;;2)
3-Remplacer les numéros de cellule par les noms de champ
=SERIE(;GrapheBulleEtiquettes2.xls!Croissance;GrapheBulleEtiquettes2.xls!CAavant;1;
GrapheBulleEtiquettes2.xls!CA)
4 -Etiquettes
Ce programme ajoute des étiquettes au graphe: nom + ca.
Sub Etiquettes()
ActiveSheet.ChartObjects(1).Activate
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowLabel
ActiveChart.SeriesCollection(1).DataLabels.Font.Size = 7
ActiveChart.SeriesCollection(1).DataLabels.Border.LineStyle = xlNone
With ActiveChart.SeriesCollection(1)
For i = 1 To .Points.Count
.Points(i).DataLabel.Characters.Text = ActiveSheet.Cells(i + 1, 1) & ":" & ActiveSheet.Cells(i + 1, 4) & " kE"
.Points(i).DataLabel.Interior.ColorIndex = Range("ca")(i).Interior.ColorIndex
.Points(i).Interior.ColorIndex = Range("ca")(i).Interior.ColorIndex
Next i
End With
End Sub
Associer un libellé à chaque point d'un graphique nuage de points XY.
Ci dessous, nous ajoutons des étiquettes à un graphique nuages de points.

Sub commentaire()
ActiveSheet.ChartObjects(1).Activate
On Error Resume Next
ActiveChart.SeriesCollection(1).ApplyDataLabels Type:=xlDataLabelsShowLabel
On Error GoTo 0
For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
ActiveChart.SeriesCollection(1).Points(i).DataLabel.Select
Selection.Interior.ColorIndex = 36
Selection.Font.Size = 7
Selection.Text = ActiveSheet.Cells(i + 1, 1)
ActiveChart.SeriesCollection(1).Points(i).MarkerBackgroundColorIndex = 4
Next i
End Sub
ou
Sub commentaire()
On Error Resume Next
Sheets(1).ChartObjects(1).Chart.SeriesCollection(1).ApplyDataLabels Type:=xlDataLabelsShowLabel
On Error GoTo 0
For i = 1 To Sheets(1).ChartObjects(1).Chart.SeriesCollection(1).Points.Count
Sheets(1).ChartObjects(1).Chart.SeriesCollection(1).Points(i).DataLabel.Text = Cells(i + 1, 1)
Sheets(1).ChartObjects(1).Chart.SeriesCollection(1).Points(i).DataLabel.Font.Size = 7
Next i
End Sub
Graphes empilés et pourcentage

Sub commentaire()
On Error Resume Next
n = 3 ' nombre de mois
For col = 1 To n
Sheets(1).ChartObjects(1).Chart.SeriesCollection(col).ApplyDataLabels Type:=xlDataLabelsShowLabel
Next
On Error GoTo 0
For i = 1 To Sheets(1).ChartObjects(1).Chart.SeriesCollection(1).Points.Count
tot = 0
For col = 1 To n
tot = tot + Application.Index(Sheets(1).ChartObjects(1).Chart.SeriesCollection(col).Values, i)
Next col
For col = 1 To n
Sheets(1).ChartObjects(1).Chart.SeriesCollection(col).Points(i).DataLabel.Font.Size = 6
y = Application.Index(Sheets(1).ChartObjects(1).Chart.SeriesCollection(col).Values, i) / tot
Sheets(1).ChartObjects(1).Chart.SeriesCollection(col).Points(i).DataLabel.Text = Format(y, "0.00%")
Next col
Next i
End Sub
Couleurs des points
On affecte aux points les couleurs du tableau.
Sub ModifCouleur2()
ActiveSheet.ChartObjects(1).Activate
For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
ActiveChart.SeriesCollection(1).Points(i).MarkerBackgroundColorIndex = _
ActiveSheet.Cells(i + 1, 1).Interior.ColorIndex
Next i
End Sub

Evénement sur un graphe
On modifie la couleur du point séléctionné.
Private Sub Chart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
If ElementID = 3 And Arg2 > 0 Then
x = Application.Index(ActiveChart.SeriesCollection(1).XValues, Arg2)
y = Application.Index(ActiveChart.SeriesCollection(1).Values, Arg2)
If Not Sheets(1).Cells(Arg2 + 1, 1).Comment Is Nothing Then
Sheets(2).Shapes("monshape").TextFrame.Characters.Text = _
"Point: " & Arg2 & " x=" & x & " y=" & y & _
Chr(10) & Sheets(1).Cells(Arg2 + 1, 1).Comment.Text
End If
For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = 36
Next i
ActiveChart.SeriesCollection(1).Points(Arg2).Interior.ColorIndex = 4
End If
End Sub

|