OVH Cloud OVH Cloud

Étiquettes feuille Graphique

1 réponse
Avatar
garnote
Bonsoir,

A 12 5
B 8 4
C 7 2
D 5 12

En sélectionnant les deux colonnes de nombres et
en appelant cette macro, j'obtiens bien ce que je veux.
Mais comment la modifier pour qu'un changement d'étiquette
dans la colonne 1 se répercute dans mon graphique ?

Sub Construit_Nuage_Avec_Étiquettes_En_Haut_Des_Points()
Application.ScreenUpdating = False
Set ici = Selection
nom = ActiveSheet.Name
Charts.Add
With ActiveChart
.ChartType = xlXYScatter
.SetSourceData Source:=ici, PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:=nom
End With
With ActiveChart.SeriesCollection(1)
.ApplyDataLabels
.DataLabels.Position = xlLabelPositionAbove
For i = 1 To ici.Rows.Count
.Points(i).DataLabel.Characters.Text = ici(i, 1).Offset(, -1)
Next
End With
End Sub

Gloire à vous

Serge

1 réponse

Avatar
isabelle
salut Serge,

insert le nom LaSource dans le classeur, ce nom fait référence à
n'importe quoi ça n'a pas d'importance puisque cette référence sera
changer par la macro.

Sub Construit_Nuage_Avec_Étiquettes_En_Haut_Des_Points()
Application.ScreenUpdating = False
Set ici = Selection
Names("LaSource").RefersTo Sheets("Feuil1").Range(Cells(ici.Item(1).Row, 1),
Cells(ici.Item(ici.Count).Row, 1))
nom = ActiveSheet.Name
Charts.Add
With ActiveChart
.ChartType = xlXYScatter
.SetSourceData Source:=ici, PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:=nom
End With
With ActiveChart.SeriesCollection(1)
.ApplyDataLabels
.DataLabels.Position = xlLabelPositionAbove
For i = 1 To ici.Rows.Count
.Points(i).DataLabel.Characters.Text = ici(i, 1).Offset(, -1)
Next
End With
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Range("LaSource"), Selection) Is Nothing Then
ActiveSheet.ChartObjects(1).Activate
With ActiveChart.SeriesCollection(1)
.ApplyDataLabels
.DataLabels.Position = xlLabelPositionAbove
For i = 1 To Range("LaSource").Rows.Count
.Points(i).DataLabel.Characters.Text = Range("LaSource")(i, 1)
Next
End With
End If
Target.Select
Application.ScreenUpdating = True
End Sub

isabelle


Bonsoir,

A 12 5
B 8 4
C 7 2
D 5 12

En sélectionnant les deux colonnes de nombres et
en appelant cette macro, j'obtiens bien ce que je veux.
Mais comment la modifier pour qu'un changement d'étiquette
dans la colonne 1 se répercute dans mon graphique ?

Sub Construit_Nuage_Avec_Étiquettes_En_Haut_Des_Points()
Application.ScreenUpdating = False
Set ici = Selection
nom = ActiveSheet.Name
Charts.Add
With ActiveChart
.ChartType = xlXYScatter
.SetSourceData Source:=ici, PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:=nom
End With
With ActiveChart.SeriesCollection(1)
.ApplyDataLabels
.DataLabels.Position = xlLabelPositionAbove
For i = 1 To ici.Rows.Count
.Points(i).DataLabel.Characters.Text = ici(i, 1).Offset(, -1)
Next
End With
End Sub

Gloire à vous

Serge