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:

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
Voilà c´est peut-être juste une erreur de syntaxe mais je n´ai pas trouvé la solution.

Je vous remercie pour votre réponse.