Hallo Sebastian,
zur .XValues-Eigenschaft kann ich leider nciht viel sagen.
Allerdings habe ich auch schon in einem Projekt Diagramme erzeugt.
Der Code sah wie folgt aus:
'Variablen definition
Dim aktChartName As String
Dim aktChartIndex As String
Dim AnzPlotDaten As Integer
Dim ChartObject As Variant
Dim wks_PLOT As Worksheet
Dim wks_PLOT_Daten As Worksheet
Dim Kreis_Diag As ChartObject
'Verweis auf benötigte Arbeitsblätter herstellen
Set wks_PLOT = ActiveWorkbook.Worksheets("PLOT")
Set wks_PLOT_Daten = ActiveWorkbook.Worksheets("PLOT_Daten")
'löschen, des vorhanden/alten Diagramms
If wks_PLOT.ChartObjects.Count > 0 Then
For Each ChartObject In wks_PLOT.ChartObjects
aktChartIndex = ChartObject.Index
aktChartName = ChartObject.Name
If aktChartName = "Auswertung Menge Störmeldungen" Then
wks_PLOT.ChartObjects("Auswertung Menge Störmeldungen").Delete
End If
Next
End If
'größe und Platz des neuen Diagramms definieren
Set Kreis_Diag = wks_PLOT.ChartObjects.Add(0, 0, 707, 494)
'Zählen der vorhandenen Datenpunkte für Diagramm
AnzPlotDaten = wks_PLOT_Daten.Cells(Rows.Count, 1).End(xlUp).Row
With Kreis_Diag
.Name = "Auswertung Menge Störmeldungen"
With .Chart
If AnzPlotDaten <= 10 Then 'bei weniger als 10 Datenpunkten normales Diagramm erzeugen
.ChartType = xlPie
Else
.ChartType = xlPieOfPie 'bei mehr als 10 Datenpunkten Torte von Torte-Diagramm erzeugen
End If
.HasTitle = True
'Überschrift von Diagramm den Erfordernissen anpassen
If OhneBlacklist And Not GX_BenDefZeitraum Then
.ChartTitle.Text = "Diagramm zur Anzeige aller Meldungen"
ElseIf Not OhneBlacklist And Not GX_BenDefZeitraum Then
.ChartTitle.Text = "Diagramm zur Anzeige ausgewählter Meldungen"
ElseIf OhneBlacklist And GX_BenDefZeitraum Then
.ChartTitle.Text = "Diagramm zur Anzeige aller Meldungen" & vbCr & "von " & GDt_Startdatum & " bis " & GDt_Enddatum
Else
.ChartTitle.Text = "Diagramm zur Anzeige ausgewählter Meldungen" & vbCr & "von " & GDt_Startdatum & " bis " & GDt_Enddatum
End If
.SetSourceData Source:=wks_PLOT_Daten.Range("$A$2:$B" & AnzPlotDaten) 'Quelle/Bereich für Diagrammdaten
.SeriesCollection(1).Select
.ChartGroups(1).SplitType = xlSplitByPercentValue
.ChartGroups(1).SplitValue = 15
.ChartGroups(1).GapWidth = 90
.SeriesCollection(1).ApplyDataLabels
.SeriesCollection(1).DataLabels.Select
Selection.ShowPercentage = False
Selection.ShowCategoryName = False
Selection.ShowSeriesName = False
'Schriftart für Diagramm definieren
With Selection.Format.TextFrame2.TextRange.Font
.NameComplexScript = "Arial"
.NameFarEast = "Arial"
.Name = "Arial"
End With
'Legende an den unteren bereich des Diagramm legen
Selection.Format.TextFrame2.TextRange.Font.Size = 14
ActiveChart.Legend.Select
Selection.Position = xlBottom
End With
End With
End Sub
Vielleicht kann es dir bei deiner Aufgabe nützen.
Viel Erfolg wünsche ich.
Gruß
Andreas
|