Bonjour, débutant en orienté objet je cherche depuis un petit moment a faire une macro qui crée plusieurs graphique dans un nouveau classeur sur une même feuille, j'ai un code qui marche un peu prés si aprés chaque entrée de plage on retourne sur le classeur ou on veut les graphiques.
voila le code:
qui ne fonctionne malheureusement pas.
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 Sub encorunemacro() Dim plage As Range compt = 1 ' creer classeur et nommé la feuille Set nouv = Workbooks.Add Sheets("Feuil1").Name = "Graphique" ActiveWorkbook.SaveAs Filename:="Graphique.xls" ' classeur actif et non classeur graphique For compt = 1 To 3 Sheets("Graphique").Select Set plage = Application.InputBox(prompt:="plage", Type:=8) Charts.Add ActiveChart.ChartType = xlLine ActiveChart.SetSourceData Source:=plage ActiveChart.Location Where:=xlLocationAsObject, Name:="Graphique" With ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = False End With Next ' positionner les graphiques With Sheets(1) .Shapes("Chart 1").Left = 0 .Shapes("Chart 1").Top = 0 .Shapes("Chart 2").Top = 0 .Shapes("Chart 2").Left = .Shapes("Chart 1").Width + 5 .Shapes("Chart 3").Top = 0 .Shapes("Chart 3").Left = .Shapes("Chart 2").Width + 370 End With End Sub Je pense que cela vient du fait que le graphique ce crée sur le classeur actif (traitement.xls), mais je n'arrive pas a lui dire de le faire sur le classeur ("graphique.xls") Pour cela j'ai essayé en autre des choses de ce type: Sub encorunemacro() Dim plage As Range Dim cible As String Dim wb As Workbook Dim ws As Worksheet compt = 1 ' creer classeur et nommé la feuille Set nouv = Workbooks.Add Sheets("Feuil1").Name = "Graphique" ActiveWorkbook.SaveAs Filename:="Graphique.xls" ' classeur actif et non classeur graphique Set wb = Workbooks("Graphique.xls") Set ws = Worksheets("Graphique") For compt = 1 To 3 Sheets("Graphique").Select Set plage = Application.InputBox(prompt:="plage", Type:=8) wb.ws.Charts.Add ActiveChart.ChartType = xlLine ActiveChart.SetSourceData Source:=plage ActiveChart.Location Where:=xlLocationAsObject, Name:="Graphique" With ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = False End With Next ' With Sheets(1) .Shapes("Chart 1").Left = 0 .Shapes("Chart 1").Top = 0 .Shapes("Chart 2").Top = 0 .Shapes("Chart 2").Left = .Shapes("Chart 1").Width + 5 .Shapes("Chart 3").Top = 0 .Shapes("Chart 3").Left = .Shapes("Chart 2").Width + 370 End With End Sub
Je suis a l'écoute de toute proposition, Merci beaucoup.
Cordialement Zanzib.
Partager