Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Kursdiagramm - Candlestickformation
#1
Hallo,

ich habe ein Liniendiagramm (Chart) erstellt das mit den Inputdaten  a. Datum und b. Close eines Aktienkurses erstellt wird.  Die Daten werden direkt von einem Array in das Diagramm gelesen. Nun möchte ich das Diagramm so umändern dass ich eine sogenannte Candlestick-Darstellung erhalte. Die Daten hierfür liegen alle in Arrays: a. Datum, b. Open, c. High, d, Low und e. close.

Ich bringe das irgendwie einfach nicht hin. Die jetzige Liniendarstellung sieht wie folgt aus und funktioniert auch. Wie kann ich die Candlestickformation direkt von den Arrays in das Diagramm bringen. 

Vielen Dank im Voraus

  'funktionstüchtiges Liniendiagramm
  Dim XDatum() as string 'beinhaltet das datum
  Dim YClose() as single    'beinhaltet die Schlußkurse
  Dim YOpen() as single    'beinhaltet die Eröffnungskurse
  Dim YHigh() as single     'beinhaltet die Höchstkurse
   Dim YLow() as single     'beinhaltet die Tiefstkurse

  Dim chDiagramm As Excel.ChartObject
  For Each chDiagramm In ActiveSheet.ChartObjects
    chDiagramm.Delete
  Next
    
  'Neu erstellen
  Set chDiagramm = ActiveSheet.ChartObjects.Add(500, 10, 1000, 1000)
  chDiagramm.Chart.ChartType = xlLine

  'Datum
  With chDiagramm.Chart.SeriesCollection.NewSeries
      .XValues = XDatum
      .Name = "Datum"
  End With
    
  'Close
  With chDiagramm.Chart.SeriesCollection.NewSeries
      .Values = YClose
      .Name = "Close"
  End With
Antworten Top
#2
Hallöchen,

im Prinzip geht das so (getestet in 2016). Du erzeugst erst eine "leere Diagrammhülle" und fügst der dann die Datenreihen und deren Daten hinzu. Die Datenreihen müssen dabei gleich groß sein.
Nach den Datenreihen kannst Du noch die Achsbeschriftung hinzufügen und erst zum Schluß legst Du den Diagrammtyp fest.
FullSeriesCollection gibt es eventuell nicht unter allen Excelversionen, eventuell reicht da auch SeriesCollection.

Code:
Sub Create_CandleStickChart()
'CandleStickChart
'Variablendeklaration
Dim objCSChart As ChartObject
'nur zum Test - Array's
Dim arr1, arr2, arr3, arr4, arr5
'Neues Diagramm ab Zelle A1 erzeugen
Set objCSChart = ActiveSheet.ChartObjects.Add(Left:=Range("a1").Left, Width:=400, Top:=Range("a1").Top, Height:=200)
'Mit dem neuen Diagramm
With objCSChart.Chart
 'neue Datenreihe hinzufuegen
 .SeriesCollection.NewSeries
   'Daten aus Array 1 einfuegen
   arr1 = Range("B2:B21").Value 'nur zum Test, Daten aus Zellbereich in Array holen
   .FullSeriesCollection(1).Values = arr1
 'neue Datenreihe hinzufuegen
 .SeriesCollection.NewSeries
   'Daten aus Array 2 einfuegen
   arr3 = Range("C2:C21").Value 'nur zum Test, Daten aus Zellbereich in Array holen
   .FullSeriesCollection(2).Values = arr2
 'neue Datenreihe hinzufuegen
 .SeriesCollection.NewSeries
   'Daten aus Array 3 einfuegen
   arr3 = Range("D2:D21").Value 'nur zum Test, Daten aus Zellbereich in Array holen
   .FullSeriesCollection(3).Values = arr3
 'neue Datenreihe hinzufuegen
 .SeriesCollection.NewSeries
   'Daten aus Array 4 einfuegen
   arr4 = Range("E2:E21").Value 'nur zum Test, Daten aus Zellbereich in Array holen
   .FullSeriesCollection(4).Values = arr4
 'Beschriftung X-Achse hinzufuegen
   arr5 = Range("A2:A21").Value 'nur zum Test, Daten aus Zellbereich in Array holen
   .FullSeriesCollection(4).XValues = arr5
 'Diagrammtyp festlegen
   .ChartType = xlStockOHLC
'Ende Mit dem neuen Diagramm
End With
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hallo Schauan,

vielen Dank für die Hilfe! Ich probier es gleich aus.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste