Reputation: 1777
I'm trying to create a chart from 5 ActiveX Textboxes which I put in my Worksheet. First the user types in the values and then presses a button which generates the chart.
This is my approach but it doesn't work. It says something like "Object necessary"
Private Sub CommandButton1_Click()
Dim arKurse(4) As Double
arKurse(0) = Conver.ToDouble(TextBox1.Text)
arKurse(1) = Conver.ToDouble(TextBox2.Text)
arKurse(2) = Conver.ToDouble(TextBox3.Text)
arKurse(3) = Conver.ToDouble(TextBox4.Text)
arKurse(4) = Conver.ToDouble(TextBox5.Text)
Dim oChtObj As ChartObject
Set oChtObj = ActiveSheet.ChartObjects.Add(Left:=445, Width:=385, Top:=10, Height:=245)
With oChtObj.Chart
.SeriesCollection.NewSeries
.SeriesCollection.Values = arKurse
.SeriesCollection.XValues = Array("1", "2", "3", "4", "5")
.ChartType = xlLine
.HasLegend = False
.HasTitle = True
.ChartTitle.Caption = "Chart"
End With
End Sub
Upvotes: 1
Views: 1036
Reputation:
There are a few things that don't work
The below is updated to work hopefully
Option Explicit
Sub SetupUserformToTest()
UserForm1.Show
UserForm1.TextBox1.Value = 1
UserForm1.TextBox2.Value = 2
UserForm1.TextBox3.Value = 3
UserForm1.TextBox4.Value = 4
UserForm1.TextBox5.Value = 1
CommandButton1_Click
End Sub
Private Sub CommandButton1_Click()
Dim arKurse(4) As Double
arKurse(0) = CDbl(UserForm1.TextBox1.Value)
arKurse(1) = CDbl(UserForm1.TextBox2.Value)
arKurse(2) = CDbl(UserForm1.TextBox3.Value)
arKurse(3) = CDbl(UserForm1.TextBox4.Value)
arKurse(4) = CDbl(UserForm1.TextBox5.Value)
Dim oChtObj As ChartObject
Set oChtObj = ActiveSheet.ChartObjects.Add(Left:=445, Width:=385, Top:=10, Height:=245)
With oChtObj.Chart
.SeriesCollection.NewSeries
'Assumed series 1
.SeriesCollection(1).Values = arKurse
.SeriesCollection(1).XValues = Array("1", "2", "3", "4", "5")
.ChartType = xlLine
.HasLegend = False
.HasTitle = True
.ChartTitle.Caption = "Chart"
End With
End Sub
Upvotes: 2