Bonjour,
Pour mon travail j´ai besoin de créer une commande permettant à l´utilisateur de changer l´abscisse max d´un graphe comme le montre l´image
Sachant que ce bouton et cette textbox doivent être crées par vba (je ne peux pas l´implémenter manuellement car la feuille excel est crée par vba).
Seulement j´ai un bug lors de l´exécution à la ligne où j´appelle la valeur dans la textbox:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ActiveSheet.Buttons.Add(1036.5, 25.5, 98.25, 39.75).Select Selection.OnAction = "PERSONAL.XLSB!Makro5" ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", Link:=False, _ DisplayAsIcon:=False, Left:=994.5, Top:=90, Width:=78, Height:=27). _ Select
Puis la macro 5 appellée par clic sur le bouton:
Voilà c´est peut-être juste une erreur de syntaxe mais je n´ai pas trouvé la solution.
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 Sub Makro5() ' ' Makro5 Makro ' 'Supprimer graphe Sheets("ChartSheet").Select Range("L5").Select ActiveSheet.ChartObjects("Diagramm 1").Activate ActiveChart.Parent.Delete 'Créer un nouveau graphe ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlXYScatterLinesNoMarkers ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(1).Name = "='Data'!$B$1" ActiveChart.SeriesCollection(1).XValues = "='Data'!$A$4:$A$65536" ActiveChart.SeriesCollection(1).Values = "='Data'!$B$4:$B$65536" ActiveChart.ApplyLayout (8) ActiveChart.HasTitle = True With ActiveChart.Axes(xlCategory) .HasTitle = True .AxisTitle.Text = "Time" .MaximumScale = TextBox1.Text '<--------BUG ICI End With With ActiveChart.Axes(xlValue) .MaximumScale = 300 End With With ActiveChart.Parent .Left = 25 .Top = 100 .Width = 950 .Height = 450 End With End Sub
Je vous remercie pour votre réponse.
Partager