Bonjours,

Je viens vers vous pour un problème que je ne comprend pas.

J'ai fait un programme qui en fonction de paramètres que l'on rentre le programme fait des calculs puis trace des graphiques bilan.

Mon programme se compose en 2 parties : une qui fait les calculs pour mettre à jour des colonnes de valeurs et l'autre qui trace les graphes.

Seulement voila quand je trace un graphe alors que je viens de changer des valeur initial le graphe affiche une nouvelle série inconnu et change les abscisse. Il me suffit de supprimer le programme et de le réécrire identiquement (avec un copié collé) et cela remarche jusqu’à ma prochaine modification.


Merci d'avance pour toute réponse.

Ps: Comment faire pour mettre mon fichier en ligne, le format excel avec macro n'est pas accepté en pièce jointe ?


En attendant de pouvoir mettre mon programme en ligne voici le code de la fonction de traçage :

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
Sub graphe()
 
Dim c As Integer
c = 0
 
 
 If Sheets("Feuil1").CheckBox1.Value = True Then
 ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlLine
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(1).Name = "=Feuil2!$G$1"
    ActiveChart.SeriesCollection(1).Values = "=Feuil2!$G$2:$G$22"
c = c + 1
 End If
If Sheets("Feuil1").CheckBox2.Value = True Then
ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlLine
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(1).Name = "=Feuil2!$H$1"
    ActiveChart.SeriesCollection(1).Values = "=Feuil2!$H$2:$H$22"
c = c + 1
End If
If Sheets("Feuil1").CheckBox3.Value = True Then
ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlLine
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(1).Name = "=Feuil2!$E$1"
    ActiveChart.SeriesCollection(1).Values = "=Feuil2!$E$2:$E$22"
c = c + 1
End If
 
If c = 1 Then
ActiveSheet.ChartObjects(1).Left = Range("J23").Left
ActiveSheet.ChartObjects(1).Top = Range("J23").Top
 
End If
 
If c = 2 Then
ActiveSheet.ChartObjects(1).Left = Range("G22").Left
ActiveSheet.ChartObjects(1).Top = Range("G22").Top
ActiveSheet.ChartObjects(2).Left = Range("N22").Left
ActiveSheet.ChartObjects(2).Top = Range("N22").Top
 
End If
If c = 3 Then
ActiveSheet.ChartObjects(1).Left = Range("F27").Left
ActiveSheet.ChartObjects(1).Top = Range("F27").Top
ActiveSheet.ChartObjects(2).Left = Range("L27").Left
ActiveSheet.ChartObjects(2).Top = Range("L27").Top
ActiveSheet.ChartObjects(3).Left = Range("I14").Left
ActiveSheet.ChartObjects(3).Top = Range("I14").Top
 
End If
End Sub