Bonjour à tous,
Je coince actuellement sur la mise en forme d'un graphique créé automatiquement par macro.
Voici la structure de mon traitement de données :
Classeur Source avec un premier traitement de données qui génère une multitude d'onglets où se trouvent les informations sous forme de tableau.
De ces différents tableaux, dans chacun des onglets, je souhaite créer un nouveau classeur par onglets avec une feuille qui contiendrait 3 Graphiques différents.
J'ai pas mal avancé, mais je coince sur la mise en forme du premier graphique. En effet, celui ci est bien généré sur le nouveau classeur, mais lorsque je souhaite mette en forme le titre, j'ai une erreur d'exécution '438' Propriété ou méthode non gérée par cet objet
C'est comme si la macro ne trouvait pas la sous-sélection...
Pour info, la macro se trouve sur mon fichier source
Voici un extrait du code (qui peut choquer les plus chevronnés car je suis débutant, et j'essaye d'adapter l'enregistreur)
Merci d'avance à ceux qui me liront, et j'espère avoir été explicite
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 Sub CreationGraphe1() Dim MonGraphe As Chart Dim MonGraphe2 As Chart Dim MonGraphe3 As Chart Dim MaPlage1 As Range Dim MaPlage2 As Range Dim M As ChartObject Dim cel As Range Dim ws As Worksheet Dim wscount As Integer Dim I As Integer Dim derlign As Integer Dim SourceG As Range Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim Book As Excel.Workbook wscount = ActiveWorkbook.Worksheets.Count For I = 3 To wscount 'On créer l'objet Excel Set xlApp = CreateObject("Excel.Application") 'On défini le nombre d'onglets (ici 5) xlApp.SheetsInNewWorkbook = 1 'On ajoute un classeur Set xlBook = xlApp.Workbooks.Add 'On donne un nom au classeur xlBook.SaveAs (ActiveSheet.Name & ".xls") 'On rend le classeur visible xlApp.Visible = True Range("Q2") = "CT JUSTIFIEE" Range("Q3") = "CT DECADREE" Set MaPlage1 = Sheets(I).Range(Cells(2, 17), Cells(3, 17)) Set MaPlage2 = Sheets(I).Range(Cells(2, 18), Cells(3, 18)) Set SourceG = xlBook.Sheets("Feuil1").Range("Q2:R3") ThisWorkbook.Sheets(I).Range("M1:R3").Copy xlBook.Sheets("Feuil1").Range("M1:R3").Value = ThisWorkbook.Sheets(I).Range("M1:R3").Value Set MonGraphe = xlBook.Charts.Add MonGraphe.ChartType = xl3DPieExploded MonGraphe.SetSourceData Source:=SourceG MonGraphe.SeriesCollection(1).Select MonGraphe.SeriesCollection(1).ApplyDataLabels MonGraphe.SeriesCollection(1).DataLabels.Select MonGraphe.SeriesCollection(1).DataLabels.ShowPercentage = True MonGraphe.SeriesCollection(1).DataLabels.Separator = "" & Chr(10) & "" MonGraphe.SeriesCollection(1).Select 'Titre et légende MonGraphe.SetElement (msoElementChartTitleAboveChart) MonGraphe.ChartTitle.Text = _ "TABLEAU DE BORD DES CONSULTATIONS TECHNIQUES POUR LE SECOND TRIMESTRE 2013" & Chr(13) & "" & Chr(13) & "TAUX DE CONSULTATIONS JUSTIFIEES" Selection.Format.TextFrame2.TextRange.Characters.Text = _ "TABLEAU DE BORD DES CONSULTATIONS TECHNIQUES POUR LE SECOND TRIMESTRE 2013" & Chr(13) & "" & Chr(13) & "TAUX DE CONSULTATIONS JUSTIFIEES" With Selection.Format.TextFrame2.TextRange.Characters(1, 75).ParagraphFormat .TextDirection = msoTextDirectionLeftToRight .Alignment = msoAlignCenter End With With Selection.Format.TextFrame2.TextRange.Characters(1, 75).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
Partager