Bonjour,
Je n'arrive à faire correspondre un choix d'une listbox pour alimenter un graphique. Je présice les series sont en lignes et non en colonnes.
Si je choisis les 5 series, seul la 2 et la 4 se tracent correctement!
De plus, la légende ne se crée pas en fonction des choix de la listbox.
J'ai du mal avec ce code que j'ai récupéré sur le net...
L'alimentation de la listbox:
Le tracé du graphique en fonction des choix:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 'récupération nom du fichier excel actif nomfichier = ActiveWorkbook.Name 'permet de faire reference a la feuille sans avoir a tout taper Set MaFeuille = Workbooks(nomfichier).Worksheets("global") 'référence à la plage de données Set p0 = MaFeuille.Range("a1:m1") Set p1 = MaFeuille.Range("a3") Set p2 = MaFeuille.Range("a5") Set p3 = MaFeuille.Range("a7") Set p4 = MaFeuille.Range("a9") Set p5 = MaFeuille.Range("a11") Set PlageDonnees = Union(p1, p2, p3, p4, p5) Me.ListBox1.MultiSelect = fmMultiSelectMulti 'rempli les zones de la liste avec les noms des series For cmpt = 1 To Cells(Rows.Count, "a").End(xlUp).Row If PlageDonnees.Cells(cmpt).Value <> 0 Then Me.ListBox1.AddItem PlageDonnees.Cells(cmpt).Value End If Next cmpt
Merci de m'aider sur ce coup...svp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 'permet de faire reference a la feuille sans avoir a tout taper Set MaFeuille = Workbooks(nomfichier).Worksheets("Global") 'référence à la plage de données Set p0 = MaFeuille.Range("b1:m1") 'axe des x Set p1 = MaFeuille.Range("b3:m3") Set p2 = MaFeuille.Range("b5:m5") Set p3 = MaFeuille.Range("b7:m7") Set p4 = MaFeuille.Range("b9:m9") Set p5 = MaFeuille.Range("b11:m11") Set PlageDonnees = Union(p1, p2, p3, p4, p5) 'valeurs des y 'Application.ScreenUpdating = False For compteur = 0 To Me.ListBox1.ListCount - 1 If Me.ListBox1.Selected(compteur) Then If MonGraphe Is Nothing Then Set MonGraphe = Workbooks(nomfichier).Charts.Add MonGraphe.ChartArea.Clear MonGraphe.ChartType = xlXYScatterSmoothNoMarkers End If Set PlageY = PlageDonnees.Rows(compteur) Set PlageX = MaFeuille.Range("b1:m1") Set MaSerie = MonGraphe.SeriesCollection.NewSeries With MaSerie .Values = PlageY .XValues = PlageX End With With MonGraphe .SeriesCollection(compteur).Name = PlageDonnees.Cells(compteur, 1).Value End With End If Next compteur With MonGraphe 'Titre du graphique .HasTitle = True With .ChartTitle .Text = "Comparaison entre les différents lots" '.Border.LineStyle = xlThin '.Shadow = True End With End With With MonGraphe 'action sur l'axe des X Set Axe = .Axes(xlCategory, xlPrimary) With Axe .HasTitle = True .AxisTitle.Text = Workbooks(nomfichier).Worksheets("Global").Range("a1").Value End With 'action sur l'axe des ordonnées à gauche Set Axe = .Axes(xlValue, xlPrimary) With Axe .HasTitle = True .AxisTitle.Text = Workbooks(nomfichier).Worksheets("Global").Range("N3").Value End With End With
Tremens![]()
Partager