aximand
Goto Top

Excel VBA Diagramm aus Array-Werten erzeugen

Hallo,

ich habe ein Problem bei dem ich seit knapp 4h google, probiere und einfach nicht weiter komme:

Ich habe ein Array curMonatsNNS(12) als Currency mit 13 Werten von 0 bis 99,99

Aus diesen 13 Werten möchte ich jetzt ein Diagramm erstellen:

ActiveSheet.Shapes.AddChart(xlLineMarkers, 300, 10, 940, 200).Select
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue).MaximumScale = 100
ActiveSheet.ChartObjects(1).Chart.HasTitle = True
ActiveSheet.ChartObjects(1).Chart.ChartTitle.Text = "Durchschnitt NNS-Preis Artikelgruppenübergreifend/Monat"  
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(1).Name = "Durchschnittspreis"  
    ActiveChart.SeriesCollection(1).Values = curMonatsNNS

Im angehangenen Bild das Ergebnis zu dem ich Fragen habe:

a) Woher kommt die Datenreihe 2?
b) Wieso werden die Werte aus dem Array nicht angezeigt (rote X)
c) Kann man zur Laufzeit die X-Ache individual benennen mit 1= Dezember Vorjahr, 2= Jan, 3=Feb...


Danke für die Hilfe, ich bin total entnervt face-sad
diagramm

Content-Key: 522171

Url: https://administrator.de/contentid/522171

Printed on: April 18, 2024 at 12:04 o'clock

Mitglied: 141965
141965 Dec 05, 2019 updated at 13:00:28 (UTC)
Goto Top
Alles hier drin
Sub CreateChart()
    Dim sh As Shape, curMonatsNNS As Variant
    curMonatsNNS = Array(10.34, 99.32, 55.2, 12.43, 11, 4)
    Set sh = ActiveSheet.Shapes.AddChart(xlLineMarkers, 300, 10, 940, 200)
    With sh
        .Chart.Axes(xlValue).MaximumScale = 100
        .Chart.HasTitle = True
        .Chart.ChartTitle.Text = "Durchschnitt NNS-Preis Artikelgruppenübergreifend/Monat"  
        .Chart.SeriesCollection.NewSeries
        With .Chart.SeriesCollection(1)
            .Name = "Durchschnittspreis"  
            .Values = curMonatsNNS
            .XValues = Array("A", "B", "C", "D", "E", "F")  
            .MarkerStyle = xlMarkerStyleCircle
            .MarkerBackgroundColor = vbGreen
            .Format.Line.Visible = True
            .Format.Line.ForeColor.RGB = RGB(255, 0, 0)
        End With
    End With
End Sub
Hier erfolgreich getestet.

Ergebnis des obigen Codes:

screenshot