mein Problem ist folgendes: Ich habe eine Exceldatei mit mehreren Tabellenblättern. Alle Tabellenblätter sind zu 100% identisch aufgebaut.
Ich möchte von bis zu maximal 6 Datenreihen aus verschiedenen Tabellenblättern ein Diagramm zeichnen lassen.
Feste Eigenschaften vom Diagramm:
- Punktdiagramm (X,Y), mit interpolierten Linien
- X-Werte sind immer gleich
- Achsenbeschriftung: Rubrikenachse (X): Zeit (h)
- Achsenbeschriftung: Größenachse (Y): Verformung (mm)
- Skalierung der Größenachse (X): Maximum 100
Nun habe ich die Vorstellung von einem Makro, welches wenn ich es aufrufe, mich fragt wieviele Graphen gezeichnet werden sollen (Max. 6), dann den Diagrammtitel abfragt, anschließend den Namen der 1. Datenreihe und letztendlich die Y-Werte der 1.Datenreihe abfragt, usw. mit der 2. Datenreihe ...
Abfragen während des Makros:
- Anzahl der Graphen, die gezeichnet werden sollen: Minimum 1, Maximum 6
- Diagrammtitel: über Inputbox oder über markieren einer Zelle
- Name der 1. Datenreihe: auch über Inputbox oder markieren einer Zelle
- Y-Werte der 1.Datenreihe: über markieren der entsprechenden Zellen im entsprechenden Tabellenblatt
- Name der 2. Datenreihe
- Y-Werte der 2.Datenreihe
usw. entsprechend der eingegeben Anzahl der Graphen
Also ich habe auch ein Makro aufgenommen, aber ich tu mir sehr schwer diese Makro entsprechend anzupassen. Dafür sind meine Kenntnisse leider noch zu low.
Jede Art von Unterstützung und Ratschläge sind sehr willkommen. Jetzt kommt noch mein Makro welches ich aufgenommen habe.
Grüße, bspa
Sub test01()
Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SetSourceData Source:=Sheets("T1=1050").Range("I23")
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "='T1=1050'!R2C18:R2C24"
ActiveChart.SeriesCollection(1).Values = "='T1=1050'!R8C18:R8C24"
ActiveChart.SeriesCollection(1).Name = "='T1=1050'!R3C2:R18C2"
ActiveChart.SeriesCollection(2).XValues = "='T1=1050'!R2C18:R2C24"
ActiveChart.SeriesCollection(2).Values = "='T3=950'!R8C18:R8C24"
ActiveChart.SeriesCollection(2).Name = "='T3=950'!R3C2:R18C2"
ActiveChart.Location Where:=xlLocationAsObject, Name:="T1=1050"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Diagrammtitel abfragen"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Zeit (h)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Verformung (mm)"
End With
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlBottom
ActiveChart.Axes(xlCategory).Select
With ActiveChart.Axes(xlCategory)
.MinimumScaleIsAuto = True
.MaximumScale = 100
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
With Selection.TickLabels
.ReadingOrder = xlContext
.Orientation = xlHorizontal
End With
End Sub