Bonjour à tous,
Voilà, je débute en VBA et je cherche à faire une macro qui automatise la création de graphiques pour mes taux de service. Le code fonctionnait très bien hier, mais ce matin à ma grande supprise il ne fonctionne plus et l'erreur d’exécution 1004 apparait "Erreur définie par l'application ou par l'objet"
Voici la macro en question :
Merci par avance.
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 Sub test_graph() Dim ligne As Long ligne = 5 While Sheets("Taux de service Mensuel 2").Range("B" & ligne).Value <> "" Union(Range("C4:N4"), Range(Cells(ligne, 3), Cells(ligne, 14))).Select Sheets(5).Shapes.AddChart.Select activeChart.ChartType = xlColumnClustered activeChart.SeriesCollection(1).Select activeChart.SeriesCollection(1).ChartType = xlLine activeChart.SeriesCollection(1).Name = "='Taux de service Mensuel 2'!$B$4" activeChart.SeriesCollection(2).Name = "=""Taux de service""" activeChart.SeriesCollection(2).XValues = _ "='Taux de service Mensuel 2'!$C$3:$N$3" activeChart.SetElement (msoElementChartTitleAboveChart) activeChart.ChartTitle.Text = Cells(ligne, 2) Selection.Format.TextFrame2.TextRange.Characters.Text = Cells(ligne, 2) With Selection.Format.TextFrame2.TextRange.Characters(1, 1).ParagraphFormat .TextDirection = msoTextDirectionLeftToRight .Alignment = msoAlignCenter End With With Selection.Format.TextFrame2.TextRange.Characters(1, 1).Font .BaselineOffset = 0 .Bold = msoTrue .NameComplexScript = "+mn-cs" .NameFarEast = "+mn-ea" .Fill.Visible = msoTrue .Fill.ForeColor.RGB = RGB(0, 0, 0) .Fill.Transparency = 0 .Fill.Solid .Size = 18 .Italic = msoFalse .Kerning = 12 .Name = "+mn-lt" .UnderlineStyle = msoNoUnderline .Strike = msoNoStrike End With strName = Replace(activeChart.Name, ActiveSheet.Name & " ", "") With ActiveSheet.Shapes(strName) .Left = 3 .Top = 1000 + 225 * ligne End With 'For Each Legraph In ActiveSheet.ChartObjects ' Legraph.Select ' activeChart.HasAxis(xlValue) = True ' activeChart.Axes(xlValue).Select ' activeChart.Axes(xlValue).MaximumScale = 1 'Next ligne = ligne + 1 DoEvents Wend End Sub
Partager