Hallo.
Kurz zur Situation:
Ich lese von einer Datenbank verschieden Aktienkurse aus (also der Benutzer muss beim Starten einen Aktienname einegeben und wenn diese vorhanden ist, werden die kurse der letzten Tage ins Excel eingefügt).
Mein Code zum Erstellen des Diagrammes lautet:
Sub Diagramm()
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("aktie").Range("A1:B7"), PlotBy:= _
xlColumns
ActiveChart.SeriesCollection(1).name = "Kursverlauf"
ActiveChart.Location Where:=xlLocationAsNewSheet, name:=InputBox("Aktiename:", "Name")
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Kursverlauf"
End With
With ActiveChart
.HasAxis(xlCategory, xlPrimary) = True
.HasAxis(xlValue, xlPrimary) = True
End With
ActiveChart.HasLegend = False
ActiveChart.HasDataTable = False
'Zeichnungsfläche
ActiveChart.PlotArea.Select
Selection.Fill.PresetGradient Style:=msoGradientHorizontal, Variant:=2, _
PresetGradientType:=msoGradientDaybreak
'Strich
ActiveChart.SeriesCollection(1).Select
With Selection.Border
.Weight = xlThick
End With
End Sub
Jetzt zeichnet er mir aber komischer Weise nur einen geraden Strich und trägt mit das Datum an der falschen Achse auf...kann ich das irgendwie einstellen, dass an der x-Achse die Daten aus von A1:A7 verwenden soll und auf der y-Achse die Daten von B1:B7 sind?
Und dann habe ich noch ein Problem:
Wenn ich einen neuen Kurs einfügen lasse, hat er mir (als das mit den Achsen noch richtig funktionierte) das selbe Diagramm gezeichnet wie beim vorigen - also er hat die Daten nicht wirklich aktualisiert...kann man das irgendwie einstellen, dass die Prodzedur vom Diagramm() weiß, dass neue Daten eingegangen sind über die Prozedur KurseEinlesen()?
Kann ich allg auch einfache Art und Weise das Diagramm dynamischer gestalten? Also dass ich den Bereich nicht fix vorgebe, sondern, dass er automatisch sucht wo Daten drinnen stehen, die für das Diagramm relevant sind? Ich habs mit cells(rows.count, 1).End(xlUp) versucht, aber ich weiß nicht genau wie ich das einbauen muss?
-------------------
Bitte um Hilfe...wäre echt wichtig
Vielen Dank im Vorraus.
LG, Beate
P.S.: Verwende Office 2003
|