Bonjour Messieurs,
J'ai un petit soucis que je n'arrive pas à résoudre depuis deux jours:
Je voudrais sélectionner une plage de donnée pour mon graphique.
Le problème est que cette plage de donnée admet des cellules vides et je voudrais donc les filtrer pour ne pas les inclure dans le graphique (c'est moche sinon).
La variable "contenu" (voir code ci-dessous) me permet de stocker les cellules qui contiennent des informations à afficher dans mon graphique.
Si je sélectionne l'ensemble de la colonne de données, par exemple (A2:A30) et que le l'affecte aux XValues de mon graphe, le graphique n'est pas jolie mais cela fonctionne.
Par contre si je commence à filtrer les cellules vides dans cette plage, comme dans mon code, je n'arrive pas à affecter le résultat à mes XValues ni même à mes Values.
C'est le séparateur ";" qui n'est pas bon ?
Voici mon code:
Merci.
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 If ComboBox2.Value <> Empty Then 'Menu déroulant permettant de sélectionner l'itération étudiée Sheets("AnalyseEpaisseurs").Activate coup = ComboBox2.Value If ComboBox2.Value <> Empty Then Set Graph1 = Worksheets("AnalyseEpaisseurs").ChartObjects(1).Chart Graph1.SetSourceData Source:=Sheets("AnalyseEpaisseurs").Range("A2:B6") 'Definition des plages du graphe: 'Plage1: contenu = "AnalyseEpaisseurs!A" & i & ":" j = 0 For i = 2 To 30 If Cells(i, 1).Value <> Empty And j = 1 Then contenu = contenu & ";AnalyseEpaisseurs!A" & i & ":" j = 0 ElseIf Cells(i, 1).Value = Empty And j = 0 Then contenu = contenu & "A" & i - 1 j = 1 End If Next i Graph1.SeriesCollection(1).XValues = contenu 'Plage2: j = 0 If Cells(2, 2).Value <> Empty Then l = "B" k = 2 Else l = "C" k = 3 End If contenu = "=AnalyseEpaisseurs!" & l & "2:" For i = 2 To 30 If Cells(i, k).Value <> Empty And j = 1 Then contenu = contenu & ";AnalyseEpaisseurs!" & l & i & ":" j = 0 ElseIf Cells(i, k).Value = Empty And j = 0 Then contenu = contenu & l & i - 1 j = 1 End If Next i Graph1.SeriesCollection(1).Values = contenu Nomimage = ThisWorkbook.Path & Application.PathSeparator & "Graph1.gif" Graph1.Export Filename:=Nomimage, FilterName:="GIF" Me.Image3.Picture = LoadPicture(Nomimage)
Partager