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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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