Bonjour le forum,
J'ai un petit problème avec un graphique nuage de points,
Je dispose d'un tableau avec 3 colonnes :
- Nom du produit
- note n°1
- note n°2
Et j'aimerai afficher un graphique nuage de points où chaque point représente un produit avec pour abscisse et ordonnée ses notes 1 et 2.
J'aimerai aussi afficher le nom de chaque produit au dessus de chaque point.
Cette fonction n'étant pas prévu par excel, on m'a conseillé d'utiliser cette macro :
Private sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Application.ScreenUpdating = False
Set Rg = Intersect(Target, Columns(3))
If Not Rg Is Nothing Then
ActiveSheet.ChartObjects("mongraphe").Activate
'Application.ScreenUpdating = False
On Error Resume Next
i = 1
'on définit la plage contenant les noms par sa position par rapport à la plage age
'ceci permet de définir dynamiquement les plages ages et taille et d'avoir des trous dans
'la plage noms
'on peut aussi directement définir le range contenant le texte des étiquettes
Set plage = Range("date").Offset(0, 2)
For Each c In plage
Set Point = ActiveChart.SeriesCollection(1).Points(i)
With Point
.ApplyDataLabels Type:=xlShowValue
.DataLabel.Text = True
.DataLabel.Text = c.Text
End With
i = i + 1
Next
End If
end sub
(source : Ce lien n'existe plus)
Problème : ça fonctionne pas, en ajoutant un produit ça m'indique "TRUE" au dessus d'un point.
Quelqu'un pourrait m'aider à déchiffrer ce code ?
Merci par avance.
Cef
J'ai un petit problème avec un graphique nuage de points,
Je dispose d'un tableau avec 3 colonnes :
- Nom du produit
- note n°1
- note n°2
Et j'aimerai afficher un graphique nuage de points où chaque point représente un produit avec pour abscisse et ordonnée ses notes 1 et 2.
J'aimerai aussi afficher le nom de chaque produit au dessus de chaque point.
Cette fonction n'étant pas prévu par excel, on m'a conseillé d'utiliser cette macro :
Private sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Application.ScreenUpdating = False
Set Rg = Intersect(Target, Columns(3))
If Not Rg Is Nothing Then
ActiveSheet.ChartObjects("mongraphe").Activate
'Application.ScreenUpdating = False
On Error Resume Next
i = 1
'on définit la plage contenant les noms par sa position par rapport à la plage age
'ceci permet de définir dynamiquement les plages ages et taille et d'avoir des trous dans
'la plage noms
'on peut aussi directement définir le range contenant le texte des étiquettes
Set plage = Range("date").Offset(0, 2)
For Each c In plage
Set Point = ActiveChart.SeriesCollection(1).Points(i)
With Point
.ApplyDataLabels Type:=xlShowValue
.DataLabel.Text = True
.DataLabel.Text = c.Text
End With
i = i + 1
Next
End If
end sub
(source : Ce lien n'existe plus)
Problème : ça fonctionne pas, en ajoutant un produit ça m'indique "TRUE" au dessus d'un point.
Quelqu'un pourrait m'aider à déchiffrer ce code ?
Merci par avance.
Cef