Modifier une macro : valeur fixe plutôt que valeur variable

Imperium

XLDnaute Junior
Bonjour à tous,

Je suis allé chercher une macro sur le site de microsoft, permettant d'ajouter des étiquettes à un graphisme en nuages de points.

Comment faire pour utiliser une macro pour ajouter des étiquettes aux points de données dans un graphique à nuages de points (XY) ou un graphique à bulles dans Excel

Sauf que ce code est effectivement calibré pour fonctionner d'une certaine façon, et je n'ai pas du tout la compétence pour le modifier :)

Je m'explique :

Le code dit que les libellés des étiquettes seront systématiquement les données de la colonne située à à gauche de la colonne des données en abscisse.

Or, je souhaite moi que les données en étiquettes soit systématiquement issues de la colonne J, peut importe ou se trouve la colonne des données en abscisse.

Comment faire ? :) Ci-joint le code, un immense merci par avance à vous !

Code:
Sub AttachLabelsToPoints()

   'Dimension variables.
   Dim Counter As Integer, ChartName As String, xVals As String

   ' Disable screen updating while the subroutine is run.
   Application.ScreenUpdating = False

   'Store the formula for the first series in "xVals".
   xVals = ActiveChart.SeriesCollection(1).Formula

   'Extract the range for the data from xVals.
   xVals = Mid(xVals, InStr(InStr(xVals, ","), xVals, _
      Mid(Left(xVals, InStr(xVals, "!") - 1), 9)))
   xVals = Left(xVals, InStr(InStr(xVals, "!"), xVals, ",") - 1)
   Do While Left(xVals, 1) = ","
      xVals = Mid(xVals, 2)
   Loop

   'Attach a label to each data point in the chart.
   For Counter = 1 To Range(xVals).Cells.Count
     ActiveChart.SeriesCollection(1).Points(Counter).HasDataLabel = _
         True
      ActiveChart.SeriesCollection(1).Points(Counter).DataLabel.Text = _
         Range(xVals).Cells(Counter, 1).Offset(0, -1).Value
   Next Counter

End Sub
 

BrunoM45

XLDnaute Barbatruc
Re : Modifier une macro : valeur fixe plutôt que valeur variable

Bonsoir Imperium

Peut-être comme ceci
'Attach a label to each data point in the chart. For Counter = 1 To Range(xVals).Cells.Count
ActiveChart.SeriesCollection(1).Points(Counter).HasDataLabel = _
True
ActiveChart.SeriesCollection(1).Points(Counter).DataLabel.Text = _
Range("J" & Counter).Value
Next Counter

A+
 

Imperium

XLDnaute Junior
Re : Modifier une macro : valeur fixe plutôt que valeur variable

Merci beaucoup à toi, je vais tester ça :)

Edit : En fait ça ne marche pas : la macro réagit bien mais les étiquettes qu'elle affichent ne correspondent pas du tout aux données (comme si elle les mettait dans le désordre). Dommage :(
 
Dernière édition:

Statistiques des forums

Discussions
298 000
Messages
1 965 021
Membres
200 806
dernier inscrit
Sionuspoccus