BOnjour,
Je me posais la question de savoir si c'était possible de créer des graphiques automatiquement à partir d'un fichier de données excel?
Si quelqu'un pouvait m'aider, merci!
Bonne journée
BOnjour,
Je me posais la question de savoir si c'était possible de créer des graphiques automatiquement à partir d'un fichier de données excel?
Si quelqu'un pouvait m'aider, merci!
Bonne journée
Bonjour,
Utilise l’enregistreur de macro pour générer un code qui fait ça, puis analyse la macro créée par Excel.
Oui merci j'y pense jamais....
Voici ce que cela me donne:
Mais je ne sais pas comment faire car j'ai plusieurs feuilles dans un classeur?
Et j'aimerais aussi ajouter un nom au graphique mais en automatique....
Re bonjour,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub Macro1() ' ' Macro1 Macro ' ' ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xl3DColumn Range("A1:D2").Select ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xl3DColumn ActiveChart.SetSourceData Source:=Range("Feuil1!$A$1:$D$2") End Sub
J'ai extrait du nouveau code avec les macros pour créer des graphiques.
Voici le resultat (code ci-dessous):
ça marche bien le seul soucis, c'est qu'il me mets les differents graphiques au même endroit.
J'aimerais qu'ils envois chaques graphiques dans chaque onglet prévue donc si quelqu'un pouvait m'aider, 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
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 Option Explicit Sub Auto() ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlLineMarkers ActiveChart.SetSourceData Source:=Range("Feuil2!$B$2:$M$3") ActiveChart.SeriesCollection(1).Name = "=Feuil2!$A$2" ActiveChart.SeriesCollection(2).Name = "=Feuil2!$A$3" ActiveChart.SeriesCollection(2).XValues = "=Feuil2!$B$1:$M$1" ActiveChart.SetElement (msoElementChartTitleAboveChart) ActiveChart.ChartTitle.Text = "Les faits constatés 2011/2012" Selection.Format.TextFrame2.TextRange.Characters.Text = _ "Les faits constatés 2011/2012" With Selection.Format.TextFrame2.TextRange.Characters(1, 29).ParagraphFormat .TextDirection = msoTextDirectionLeftToRight .Alignment = msoAlignCenter End With With Selection.Format.TextFrame2.TextRange.Characters(1, 3).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 With Selection.Format.TextFrame2.TextRange.Characters(4, 26).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 ActiveChart.ChartArea.Select ' ' Macro2 Macro ' ' ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlColumnClustered ActiveChart.SetSourceData Source:=Range("Feuil3!$B$2:$M$3") Application.CutCopyMode = False ActiveChart.SeriesCollection(1).Name = "=Feuil3!$A$2" ActiveChart.SeriesCollection(2).Name = "=Feuil3!$A$3" ActiveChart.SeriesCollection(2).XValues = "=Feuil3!$B$1:$M$1" ActiveChart.SetElement (msoElementChartTitleAboveChart) ActiveChart.ChartTitle.Text = "Les atteintes aux personnes en 2012" Selection.Format.TextFrame2.TextRange.Characters.Text = _ "Les atteintes aux personnes en 2012" With Selection.Format.TextFrame2.TextRange.Characters(1, 35).ParagraphFormat .TextDirection = msoTextDirectionLeftToRight .Alignment = msoAlignCenter End With With Selection.Format.TextFrame2.TextRange.Characters(1, 3).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 With Selection.Format.TextFrame2.TextRange.Characters(4, 32).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 ActiveChart.ChartArea.Select End Sub
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 Option Explicit Sub test() Auto "Feuil1", "Feuil2", "Feuil3" End Sub Sub Auto(Cible As String, Source1 As String, Source2 As String) ActiveWorkbook.Worksheets(Cible).Select ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlLineMarkers ActiveChart.SetSourceData Source:=Range(Source1 & "!$B$2:$M$3") ActiveChart.SeriesCollection(1).Name = "=" & Source1 & "!$A$2" ActiveChart.SeriesCollection(2).Name = "=" & Source1 & "!$A$3" ActiveChart.SeriesCollection(2).XValues = "=" & Source1 & "!$B$1:$M$1" ActiveChart.SetElement (msoElementChartTitleAboveChart) ActiveChart.ChartTitle.Text = "Les faits constatés 2011/2012" Selection.Format.TextFrame2.TextRange.Characters.Text = _ "Les faits constatés 2011/2012" With Selection.Format.TextFrame2.TextRange.Characters(1, 29).ParagraphFormat .TextDirection = msoTextDirectionLeftToRight .Alignment = msoAlignCenter End With With Selection.Format.TextFrame2.TextRange.Characters(1, 3).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 With Selection.Format.TextFrame2.TextRange.Characters(4, 26).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 ActiveChart.ChartArea.Select ' ' Macro2 Macro ' ' ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlColumnClustered ActiveChart.SetSourceData Source:=Range(Source2 & "!$B$2:$M$3") Application.CutCopyMode = False ActiveChart.SeriesCollection(1).Name = "=" & Source2 & "!$A$2" ActiveChart.SeriesCollection(2).Name = "=" & Source2 & "!$A$3" ActiveChart.SeriesCollection(2).XValues = "=" & Source2 & "!$B$1:$M$1" ActiveChart.SetElement (msoElementChartTitleAboveChart) ActiveChart.ChartTitle.Text = "Les atteintes aux personnes en 2012" Selection.Format.TextFrame2.TextRange.Characters.Text = _ "Les atteintes aux personnes en 2012" With Selection.Format.TextFrame2.TextRange.Characters(1, 35).ParagraphFormat .TextDirection = msoTextDirectionLeftToRight .Alignment = msoAlignCenter End With With Selection.Format.TextFrame2.TextRange.Characters(1, 3).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 With Selection.Format.TextFrame2.TextRange.Characters(4, 32).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 ActiveChart.ChartArea.Select End Sub
merci pour l'aide et il me marque "argument non facultatif" donc je ne vois pas le probleme....
Joins ton fichier pour juger sur pièce !
ok et encore merci!
Partager