XL 2019 Couleurs sur un nuage de point en fonction d'une légende

Pierre111

XLDnaute Nouveau
Bonjour,

Je suis confronté à une problème sur Excel. J'ai un tableau avec 3 colonnes.
- 1 colonne avec le nom de l'attribut : il en existe 3 types (H0 ; H1 et H2)
- 1 colonne avec un coût
- 1 colonne avec une probabilité cumulée en fonction de l'attribut

Je veux représenter sous forme de nuage de points les données (comme réalisé dans le fichier Excel). Le problème c'est que chaque valeur à la même couleur. Or je voudrais que tous les points qui ont pour attribut "H0" soient en bleu par exemple. Tous les points qui ont pour attribut "H1" soient en rouge et tous les points qui ont pour attribut "H2" soient en jaune.

Existe-t-il un moyen de le faire ou faut-il obligatoirement passer par un module VBA ?

Merci à tous pour votre temps.
 

Pièces jointes

  • PbCouleurChart.xlsx
    121.3 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Pierre,
Une approche simple en VBA, on sépare les trois courbes H0,H1,H2, avec :
VB:
Sub Graphique()
Application.ScreenUpdating = False
[F:K].ClearContents: [G1] = "H0": [I1] = "H1": [K1] = "H2"
DL = Cells(Cells.Rows.Count, "A").End(xlUp).Row
tablo = Range("A2:C" & DL)
ReDim T(1 To UBound(tablo), 1 To 6)
H0 = 1: H1 = 1: H2 = 1
For i = 1 To UBound(T)
    Select Case tablo(i, 1)
        Case "H0": T(H0, 1) = tablo(i, 2): T(H0, 2) = tablo(i, 3): H0 = H0 + 1
        Case "H1": T(H1, 3) = tablo(i, 2): T(H1, 4) = tablo(i, 3): H1 = H1 + 1
        Case "H2": T(H2, 5) = tablo(i, 2): T(H2, 6) = tablo(i, 3): H2 = H2 + 1
    End Select
Next i
[F2].Resize(UBound(T, 1), UBound(T, 2)) = T
[F:K].Columns.AutoFit
End Sub
On peut aussi si nécessaire trier les colonnes en ordre croissant par ex.
 

Pièces jointes

  • PbCouleurChart.xlsm
    175.6 KB · Affichages: 2

job75

XLDnaute Barbatruc
Bonjour Pierre111, sylvanu,

Pour créer les 3 séries H0 H1 H2 on peut utiliser des formules matricielles.

Formule en E3 :
Code:
=SIERREUR(INDEX($B:$B;PETITE.VALEUR(SI(Tableau13_1[Attribut]=E$1;LIGNE(Tableau13_1));LIGNE(E1)));#N/A)
Formule en F3 :
Code:
=SIERREUR(INDEX($C:$C;PETITE.VALEUR(SI(Tableau13_1[Attribut]=E$1;LIGNE(Tableau13_1));LIGNE(E1)));#N/A)
A valider par Ctrl+Maj+Entrée et copier à droite et vers le bas jusqu'à obtenir des #N/A.

A+
 

Pièces jointes

  • PbCouleurChart.xlsx
    245.6 KB · Affichages: 4

job75

XLDnaute Barbatruc
Puisque les attributs se succèdent toujours dans l'ordre H0 H1 H2 c'est beaucoup plus simple.

J'ai augmenté le nombre de colonnes du tableau structuré.

Formules (normales) en D2 et E2 :
Code:
=SI(INDEX($B:$B;3*LIGNE()-4)="";#N/A;INDEX($B:$B;3*LIGNE()-4))
=SI(INDEX($C:$C;3*LIGNE()-4)="";#N/A;INDEX($C:$C;3*LIGNE()-4))
Formules en F2 et G2 :
Code:
=SI(INDEX($B:$B;3*LIGNE()-3)="";#N/A;INDEX($B:$B;3*LIGNE()-3))
=SI(INDEX($C:$C;3*LIGNE()-3)="";#N/A;INDEX($C:$C;3*LIGNE()-3))
Formules en H2 et I2 :
Code:
=SI(INDEX($B:$B;3*LIGNE()-2)="";#N/A;INDEX($B:$B;3*LIGNE()-2))
=SI(INDEX($C:$C;3*LIGNE()-2)="";#N/A;INDEX($C:$C;3*LIGNE()-2))
Les séries sont définies par les noms H0_X H0_Y H1_X H1_Y H2_X H2_Y.

Grâce aux #N/A les cellules vides sont ignorées par le graphique.
 

Pièces jointes

  • PbCouleurChart(1).xlsx
    299.5 KB · Affichages: 3
Dernière édition:

Discussions similaires

Réponses
10
Affichages
598
Réponses
6
Affichages
258