Accueil
CreationGraphique
GraphiqueDynamique
Graphique dynamique produit
Graphe à bulles avec couleurs et étiquettes
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 à bulles avec
couleurs et étiquettes
Sur cet exemple, on analyse la croissance des CA de vendeurs.
GraphiqueBullesCouleur
GraphiqueBullesCouleur
2 graphes
GraphiqueBullesCouleurDynamique
GraphiqueBullesCouleurProjet

1-Créer le graphique
-Sélectionner B2:D7
2-Créer des noms de champ
Noms: =$A$2:$A$ 7
Croissance: =$B$2:$B$ 7
CAavant : =$C$2:$C$ 7
CA : =$D$2:$D$ 7
3 -Etiquettes & couleurs
Ce programme ajoute des étiquettes au graphe: nom
+ ca et colorie les bulles.
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 = Range("noms")(i)
& ": " & Range("ca")(i) & " kE"
.Points(i).DataLabel.Interior.Color = Range("ca")(i).Interior.Color
.Points(i).Interior.Color= Range("ca")(i).Interior.Color
Next i
End With
End Sub
Pour ajouter des images aux bulles
Graphique
Bulles Images
Si les images sont situées dans un répertoire
c:\pays
img = "c:\pays\" & Range("noms")(i)
& ".png"
existe = Dir(img)
If existe <> "" Then ActiveChart.SeriesCollection(1).Points(i).Format.Fill.UserPicture
img

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

|