Relier 2 séries de points dans un nuage de points

Maax

XLDnaute Nouveau
Bonjour,

Je suis face à 2 problèmes.

Je dois réaliser un nuage de points (abscisse: âge; ordonnée: salaire annuel) afin de représenter nominativement l'âge et le SBG par salarié en m. J'ai pu trouver une macro qui m'a permis de mettre en étiquette le nom de la personne associée au point.

Or je dois maintenant réaliser 2 séries (m et m-1) avec ces mêmes critères. Seulement, je n'arrive plus à faire fonctionner ma macro mais surtout je ne parviens pas à trouver le moyen de relier les points de ces deux séries de sorte à représenter visuellement l'évolution par point. Je suppose qu'une macro s'impose ?

Je ne sais pas si j'ai été trés claire, j'attends votre aide... :)
 

Pièces jointes

  • Nuage de points 2 séries.xls
    28.5 KB · Affichages: 195
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Relier 2 séries de points dans un nuage de points

Bonjour
Déboguez et simplifier en la dernière instruction ce que j'indique en commentaire
VB:
'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
   xVals = Split(xVals, ",")(1)
cordialement.
 

Maax

XLDnaute Nouveau
Re : Relier 2 séries de points dans un nuage de points

Bonjour Dranreb,

Ce n'est pas ce passage que le VBA me surligne mais celui en rouge ci-dessous...



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


Cordialement
 

Dranreb

XLDnaute Barbatruc
Re : Relier 2 séries de points dans un nuage de points

Même en sélectionnant votre graphique avant de lancer ?
Parce que ça, ça peut seulement planter si aucun graphique n'est actif !
À moins de rajouter devant:
VB:
ActiveSheet.ChartObjects("Graphique 2").Activate
Ou mieux de déclarer un Graph As Chart puis
VB:
Set Graph = ActiveSheet.ChartObjects("Graphique 2").Chart
puis de travailler avec Graph au lieu de ActiveChart
 

Maax

XLDnaute Nouveau
Re : Relier 2 séries de points dans un nuage de points

J'ai repris votre premier conseil, ca fonctionne merci beaucoup !

Je ne voudrais pas abuser de votre aide mais sauriez-vous répondre à ma seconde problèmatique ?
 

Dranreb

XLDnaute Barbatruc
Re : Relier 2 séries de points dans un nuage de points

Je ne vois pas trop de solution pour relier les paires de points des deux séries.
C'est infaisable en fait. Il faut soit définir une série pour chaque paire de points,
Soit s'arranger pour n'avoir qu'une série et ne rendre visible qu'un point sur 2
 

Maax

XLDnaute Nouveau
Re : Relier 2 séries de points dans un nuage de points

L'intranet de mon entreprise dispose d'un applicatif nuage de points permettant de visualiser sous forme de lien entre les 2 séries cette évolution mais par niveau hiérarchique uniquement (donc je pense que c'est faisable). Or j'ai besoin de réaliser ce nuage à partir de l'ensemble des salariés de l'entreprise.

Mais si l'on part de votre idée "Il faut définir une série pour chaque paire de points", je peux le faire pour un point et automatiser la procédure par une macro. Ca ressemble à du bricolage mais la macro est faisable non ?
 

Dranreb

XLDnaute Barbatruc
Re : Relier 2 séries de points dans un nuage de points

L'enregistreur de macros permet de faire le plus gros du boulot pour ce qui est des actions proprement dites dans Excel. Mais il faut ensuite épurer et optimiser le code engendré. Les actions de l'usager ne se font que via des sélections. En enregistrement d'une nouvelle macro ça engendre donc plein de Select qui n'ont pas lieu d'être ObjetQuelconque.Select puis Selection.ActionQuelconque pouvant presque toujour s'écrire ObjetQuelconque.ActionQuelconque.
Mais potassez l'aide pour VB. F1 sur un mot clé vous oriente généralement sur ce que vous avez besoin de savoir.
Bon week-end.
À+
 

Discussions similaires

Statistiques des forums

Discussions
312 333
Messages
2 087 378
Membres
103 529
dernier inscrit
gonzi