diagramme barres empilées...plusieurs catégories (jours de la semaine)..visual basic

achaouac

XLDnaute Nouveau
Bonjour a tous;

j'ai un souci avec les charts excel...en fait je veux avoir un graphe a barres horizontales empilées...il y aura alors des barres empilées pour chaque jour de la semaine...pour etre plus precis,pour chaque jour sur l'axe x (qui est verticale) on a des barres empilées qui correspondent a des taches a faire avec sur l'axe y (horizontale) le temps (heures).

Mes données sont disposées de la manière suivante:
Jour Tache1 Tache2 duree1 duree2
Lundi installer jouer 2 5
Lundi desinstaller sortir 1 6
Mardi petitDej ecole 2 8

ces taches sont a titre d'exemple..on peut en avoir plus que 2 par jour..
J'ai réussi jusque la a representer une barre pour une seule journée (le lundi)
avec une macro vba.
En fait pour une journée donnée les barres sont empilées dans l'ordre suivant;
Tache1 pdt duree1;tache2 pdt duree2(ligne suivante);tache1 pdt duree1;tache2 pdt duree2

mais je n'arrive pas a ajouter les autres barres pour d'autres journées..je n'arrive pas a ajouter les autres journées sur l"axe x verticale..

j'ai cherché sur plusieurs forums mais je ne trouve rien..

si vous avez une idées meme juste sur le principe ou la demarche a suivre en general pour resoudre ce probleme n'hesitez pas..Je me debrouillerai pour le codage en vba

je vous joint cependant une copie de mon code vba;
Sub GraphPlanning()
'
' GraphPlanning Macro
' Macro enregistrée le 02/07/2008 par achaouac
'

'

Charts.Add
ActiveChart.ChartType = xlBarStacked
ActiveChart.SetSourceData Source:=Sheets("PLAN DE PRODUCTION").Range( _
"A1:M600"), PlotBy:=xlRows
Set sheet3 = Worksheets("PLAN DE PRODUCTION")


x = debut("LBC1") 'endroit ou la tache s'effectue; c'est pour se reperer dans la table de données
y = 1
z = x + Count("LBC1", "Lundi") 'nombre de lundi pour cet endroit
w = 0
Do While w <> (2 * z - 2 * x + 1)
ActiveChart.SeriesCollection.NewSeries ' nombre de series a creer pour couvrir l'ensemble des lignes "lundi"
w = w + 1
Loop

ActiveChart.SeriesCollection(y).XValues = sheet3.Cells(x, 2).Value 'ajoute lundi a l'axe des absccisses x
ActiveChart.SeriesCollection(y).Values = 5 ' une serie pour forcer la journée a commencer a 5h du matin
ActiveChart.SeriesCollection(y).Name = "."
Do While sheet3.Cells(x, 2).Value Like "Lundi"
y = y + 1
With ActiveChart
.SeriesCollection(y).Values = sheet3.Cells(x, 10).Value 'durée tache1
.SeriesCollection(y).Name = sheet3.Cells(x, 3).Value 'nom tache1
.SeriesCollection(y).HasDataLabels = True
.SeriesCollection(y).ApplyDataLabels xlDataLabelsShowNone
End With

y = y + 1
With ActiveChart
.SeriesCollection(y).Values = sheet3.Cells(x, 9).Value ' duree tache2
.SeriesCollection(y).Name = sheet3.Cells(x, 4).Value 'nom tache 2
.SeriesCollection(y).HasDataLabels = True
.SeriesCollection(y).ApplyDataLabels xlDataLabelsShowNone
End With
x = x + 1
Loop
 

Statistiques des forums

Discussions
312 247
Messages
2 086 583
Membres
103 247
dernier inscrit
bottxok