Bonjour,
je veux realiser un histogramme empilé macro excel depuis un tableau ( 4 colonnes )
Colonne Z ( identifiant )
Colonne AA ( nom erreur )
Colonne AB ( fequence )
Colonne AC ( couleur )
Je veux le diagramme son AXE des X prends les Valeurs de la colonne Z les identifiants , et l’axe des Y la colonne AB la frequence et les barres chacune par sa couleur ( qui est dans la colonne AC ) et avec une légende qui affiche chaque couleur liée a quel nom d’erreur
Voici mon tableau :
tableau resultat
Voici le code que j’ai commencé avec :
Set plageDiagrammeT = FeuilleName.Range("Z1:AC" & lastRowIDF)
' Créer le diagramme
Set diagramme = FeuilleName.ChartObjects.Add(Left:=400, Width:=675, Top:=0, Height:=225)
' Configurez le type de graphique
diagramme.Chart.ChartType = xlColumnClustered ' Vous pouvez ajuster le type de graphique si nécessaire
' Définir le type de graphique
With diagramme.Chart
.SetSourceData Source:=plageDiagrammeT, PlotBy:=xlColumns
.ChartType = xlColumnStacked
.HasTitle = True
.ChartTitle.Text = "Titre du Diagramme"
.SeriesCollection(1).XValues = FeuilleName.Range("Z2:Z" & lastRowIDF) ' Axe des X
.SetSourceData Source:=FeuilleName.Range("AB2:AB" & lastRowIDF)
.FullSeriesCollection(1).XValues = FeuilleName.Range("Z2:Z" & lastRowIDF) ' Légende
.Axes(xlCategory).TickLabelPosition = xlTickLabelPositionNextToAxis ' Position des étiquettes sur l'axe des X
' Ajouter les valeurs de la colonne AA comme légende
With FeuilleName
For i = 2 To lastRowIDF
If Not IsEmpty(.Cells(i, 27).Value) And Not IsEmpty(.Cells(i, 29).Value) Then
diagramme.Chart.SeriesCollection.NewSeries
diagramme.Chart.FullSeriesCollection(i).Name = .Cells(i, 27).Value ' Colonne AA + AC
End If
Next i
End With
End With
' Personnalisez les couleurs des barres
i = 0
For i = 2 To lastRowIDF
Dim colorCode As Long
RGBColor = FeuilleName.Cells(i, 29).Value ' Colonne AC (valeur RGB)
RGBValues = Split(Mid(RGBColor, 5, Len(RGBColor) - 5), ",")
redValue = Trim(RGBValues(0))
greenValue = Trim(RGBValues(1))
blueValue = Trim(RGBValues(2))
diagramme.Chart.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(redValue, greenValue, blueValue)
Next i
' Affichez le graphique
diagramme.Activate
Voici ce qu’il m’affiche
resultat diagramme
j’ai pas pu afficher chaque barre par sa couleur et la legende elle regroupe pas les nom d’erreur
Svp, connaissez vous un moyen de le faire simplement et automatiquement pour toutes les barres de l’histogramme d’un coup ?
Merci d’avance
YRI
YRI is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
1