Bonjour à tous,
Je suis novice en VBA donc quand un bout de code marche, j'ai tendance à le réutiliser plusieurs fois, ce qui est peut être à l'origine du problème.

Voici le problème :
Je souhaite créer des graphiques en colonnes repésenants le nombre d'inclusions ( par exemples : Sulfures, Oxydes d'aluminium...) en fonction de leur diamètre.
Pour cela j'ai créer un tableau que voici :



Puis j'utilise le code suivant pour créer un histogramme pour chaque type d'inclusion ( NdeT, Oxys...) :

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
'graphique du nombre d'inclusions en fonction du diamètre
Dim mongraphe As Chart, mafeuille As Worksheet, plagedonnees As Range
 Set mafeuille = ThisWorkbook.Worksheets("Données")
 With mafeuille
    Set plagedonnees = .Range(.Cells(5, 54), .Cells(17, 55))
    End With
    Set mongraphe = ThisWorkbook.Charts.Add
    mongraphe.ChartArea.Clear
    mongraphe.ChartType = xl3Colums
    mongraphe.SeriesCollection.Add plagedonnees, xlColumns, , True
    mongraphe.HasLegend = False
    mongraphe.HasTitle = True
    mongraphe.ChartTitle.Text = "Inclusions en fonction des classes de diamètre"
 
     With ActiveChart
        .Name = "gphe Inclusions"
   End With
 
 
 
'graphique du nombre de NdeT en fonction du diamètre
Dim mongraphe1 As Chart, mafeuille1 As Worksheet, plagedonnees1 As Range
 Set mafeuille1 = ThisWorkbook.Worksheets("Données")
 With mafeuille1
    Set plagedonnees1 = .Range(.Cells(5, 56), .Cells(17, 57))
   End With
    Set mongraphe1 = ThisWorkbook.Charts.Add
    mongraphe1.ChartArea.Clear
    mongraphe1.ChartType = xl3Colums
    mongraphe1.SeriesCollection.Add plagedonnees, xlColumns, , True
    mongraphe1.HasLegend = False
   mongraphe1.HasTitle = True
   mongraphe1.ChartTitle.Text = "NdeT en fonction des classes de diamètre"
 
     With ActiveChart
        .Name = "gphe NdeT"
    End With
 
 
 
'graphique du nombre d'OxyS en fonction du diamètre
Dim mongraphe2 As Chart, mafeuille2 As Worksheet, plagedonnees2 As Range
 Set mafeuille2 = ThisWorkbook.Worksheets("Données")
 With mafeuille2
    Set plagedonnees2 = .Range(.Cells(5, 58), .Cells(17, 59))
    End With
    Set mongraphe2 = ThisWorkbook.Charts.Add
    mongraphe2.ChartArea.Clear
    mongraphe2.ChartType = xl3Colums
    mongraphe2.SeriesCollection.Add plagedonnees, xlColumns, , True
    mongraphe2.HasLegend = False
    mongraphe2.HasTitle = True
    mongraphe2.ChartTitle.Text = "OxyS en fonction des classes de diamètre"
 
     With ActiveChart
        .Name = "gphe OxyS"
    End With
 
 
 
'graphique du nombre de sulfures en fonction du diamètre
Dim mongraphe3 As Chart, mafeuille3 As Worksheet, plagedonnees3 As Range
 Set mafeuille3 = ThisWorkbook.Worksheets("Données")
 With mafeuille3
    Set plagedonnees3 = .Range(.Cells(5, 60), .Cells(17, 61))
    End With
    Set mongraphe3 = ThisWorkbook.Charts.Add
    mongraphe3.ChartArea.Clear
    mongraphe3.ChartType = xl3Colums
    mongraphe3.SeriesCollection.Add plagedonnees, xlColumns, , True
    mongraphe3.HasLegend = False
    mongraphe3.HasTitle = True
    mongraphe3.ChartTitle.Text = "Sulf en fonction des classes de diamètre"
 
     With ActiveChart
        .Name = "gphe Sulf"
    End With
 
 
 
 
'graphique du nombre d'OxyCa en fonction du diamètre
Dim mongraphe4 As Chart, mafeuille4 As Worksheet, plagedonnees4 As Range
 Set mafeuille4 = ThisWorkbook.Worksheets("Données")
 With mafeuille4
    Set plagedonnees4 = .Range(.Cells(5, 62), .Cells(17, 63))
    End With
    Set mongraphe4 = ThisWorkbook.Charts.Add
    mongraphe4.ChartArea.Clear
    mongraphe4.ChartType = xl3Colums
    mongraphe4.SeriesCollection.Add plagedonnees, xlColumns, , True
    mongraphe4.HasLegend = False
    mongraphe4.HasTitle = True
    mongraphe4.ChartTitle.Text = "OxyCa en fonction des classes de diamètre"
 
     With ActiveChart
        .Name = "gphe OxyCa"
    End With
 
 
 
 
'graphique du nombre d'OxyMg en fonction du diamètre
Dim mongraphe5 As Chart, mafeuille5 As Worksheet, plagedonnees5 As Range
 Set mafeuille5 = ThisWorkbook.Worksheets("Données")
 With mafeuille5
    Set plagedonnees5 = .Range(.Cells(5, 64), .Cells(17, 65))
    End With
    Set mongraphe5 = ThisWorkbook.Charts.Add
    mongraphe5.ChartArea.Clear
    mongraphe5.ChartType = xl3Colums
    mongraphe5.SeriesCollection.Add plagedonnees, xlColumns, , True
    mongraphe5.HasLegend = False
    mongraphe5.HasTitle = True
    mongraphe5.ChartTitle.Text = "OxyMg en fonction des classes de diamètre"
 
     With ActiveChart
        .Name = "gphe OxyMg"
    End With
 
 
 
 
 
'graphique du nombre d'inclusions en fonction du diamètre
Dim mongraphe6 As Chart, mafeuille6 As Worksheet, plagedonnees6 As Range
 Set mafeuille6 = ThisWorkbook.Worksheets("Données")
 With mafeuille6
    Set plagedonnees6 = .Range(.Cells(5, 66), .Cells(17, 67))
    End With
    Set mongraphe6 = ThisWorkbook.Charts.Add
    mongraphe6.ChartArea.Clear
    mongraphe6.ChartType = xl3Colums
    mongraphe6.SeriesCollection.Add plagedonnees, xlColumns, , True
    mongraphe6.HasLegend = False
    mongraphe6.HasTitle = True
    mongraphe6.ChartTitle.Text = "OxyAl en fonction des classes de diamètre"
 
     With ActiveChart
        .Name = "gphe OxyAl"
    End With

J'obtiens bien un graphique pour chaque type d'inclusion (titres différents ....), mais toujours les valeurs de la colonne "inclusions"




Pouvez vous me dire ce qui bloque dans le code?
Je vous remercie

(P.S. : Merci à J-M Rabilloud pour sa "Formation Excel-VBA Debutant")