Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Nuages de points

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

PERRINFAB

XLDnaute Nouveau
Bonjour,

Je souhaite créer un nuage de points (salaire par ancienneté) puis affecter à chaque point :
- le code couleur du tableau
- le nom du collaborateur (ajour d'étiquettes)

J'ai trouvé des informations intéressantes sur le site :
Les graphiques

J'ai intégré les macros. La seconde marche bien mais la première n'est pas convaincante (distinction par couleur des hommes et des femmes)

Pouvez-vous m'aider à résoudre ces pbs ?

Bonne journée

Fab
 

Pièces jointes

Re : Nuages de points

Bonjour PERRINFAB
Essayez
Code:
Sub ModifCouleur()
  ActiveSheet.ChartObjects("Graphique 3").Activate
  For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
   ActiveChart.SeriesCollection(1).Points(i).MarkerBackgroundColorIndex = _
     [COLOR="Red"]ActiveSheet.Cells(i + 1, 1).FormatConditions(ActiveSheet.Cells(i + 1, 1)).Interior.ColorIndex[/COLOR]
  Next i
End Sub
ROGER2327
#2128
 
Re : Nuages de points

Bonjour,

La fonction transmise hier marche sur le modèle test mais sur le fichier réel me renvoie l'anomalie suivante après avoir mis à jour la couleur des point

"Erreur d'exécution 9 - l'indice n'appartient pas à la sélection"

L'anomalie semble résider dans le code :
ActiveChart.SeriesCollection(1).Points(i).MarkerBackgroundColorIndex = _
ActiveSheet.Cells(i + 1, 1).FormatConditions(ActiveSheet.Cells(i + 1, 1)).Interior.ColorIndex

En effet mon nuage de point est lié à des données indexées sur un tableau croisé dynamique. Ainsi ces données sont souvent égale à 0 au delà des 20 à 100 premières.

Pouvons-nous arrêter la macro dès l'apparition de l'erreur ?

Par ailleurs est-il possible de mixer les deux macros (commentaires + mise en forme) dans un seul et même programme.

Merci par avance de vos réponses

Fab😕
 
Dernière édition:
Re : Nuages de points

Re...
(...) mon nuage de point est lié à des données indexées sur un tableau croisé dynamique. Ainsi ces données sont souvent égale à 0 au delà des 20 à 100 premières. (...)
Il faut alors trouver une autre conception, car FormatConditions(n) prend uniquement 1, 2, et 3 comme valeur. On pourrait imaginer que votre troisième condition de formatage conditionnel fût la première, la première et la deuxième devenant respectivement la deuxième et la troisième. Alors on pourrait écrire
Code:
[COLOR="DarkSlateGray"][B]ActiveChart.SeriesCollection(1).Points(i).MarkerBackgroundColorIndex = _
     ActiveSheet.Cells(i + 1, 1).FormatConditions(ActiveSheet.Cells(i + 1, 1) [COLOR="Red"]+ 1[/COLOR]).Interior.ColorIndex
[/B][/COLOR]
Bien entendu, cette solution n'est valable que si les cellules de la colonne A prennent les valeurs 0, 1 et 2 à l'exclusion de toute autre.
Mais comme vous le dites :
(...) La fonction transmise hier marche sur le modèle test mais sur le fichier réel me renvoie l'anomalie suivante après avoir mis à jour la couleur des point (...)
Normal. Une réponse est généralement donnée à partir des renseignements fournis et s'applique quelquefois (et plus sûrement souvent...) mal aux éléments qui n'ont pas été communiqués. Pour pouvoir donner une réponse pertinente il faudrait que l'échantillon de valeurs données représentât l'ensemble des valeurs possibles.
Pour le reste, il est certainement possible de regrouper les deux procédures et de prévoir une sortie de boucle au moment opportun :
Code:
[COLOR="DarkSlateGray"]Sub toto()
Dim i As Long, tf As Boolean
   With Sheets(1).ChartObjects(1).Chart.SeriesCollection(1)
      .ApplyDataLabels Type:=xlDataLabelsShowLabel
      For i = 1 To .Points.Count
         On Error GoTo erreur
         .Points(i).DataLabel.Text = Cells(i + 1, 2)
         .Points(i).DataLabel.Font.Size = 6
         .Points(i).MarkerBackgroundColorIndex = _
            ActiveSheet.Cells(i + 1, 1).FormatConditions(ActiveSheet.Cells(i + 1, 1) + 1).Interior.ColorIndex
         On Error GoTo 0
         If tf Then Exit Sub
      Next i
   End With
Exit Sub
erreur:
   tf = True
   Resume Next
End Sub[/COLOR]
Ça fonctionne dans le classeur d'essai (après modification de la mise en forme conditionnelle de la colonne A).
De là à dire que ça fonctionnera avec un autre classeur, il y un pas...
ROGER2327
#2144
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…