Hallo zusammen,
bin neu in der Community deshalb nicht mit allen Gepflogenheiten vertraut - bitt um Nachsicht :-)
Ich möchte für 720 Roboter jeweils 720 kleine Diagramme erstellen in welchen die Auslastung der Jahre 2021 - 2027 hervorgeht.
Diagrammtyp Säule oder Line egal.
Ich stelle mir das so vor:
Diagrammname = z (Variable nimmt den Namen des Roboters aus Spalte "C" und Zeile a +2 an wobei in der Schleife a mit 1 beginnt.
Datenberiech soll sein: Datenreihenname immer $AC$2:$AI$2; Werte jeweils "AC" & a + 2 & ":AI" & a + 2 (Soll heißen idealerweise immer eine Zeile weiter in der Schleife).
Ich hätte zuerst gedacht das ich tatsächlich immer die nur die angesprochenen Zellen auswähle aber Excel interpretiert anders und wählt alles aus, also von $AC$2:AI" & a + 2. Dadurch erhalte ich mehrere Datenreihen die ich nicht möchte. ich versuche sie nun mit folgender Schleife zu reduzieren und ich glaube darin liegt auch des Pudels Kern:
For j = 1 To a
On Error Resume Next
ActiveChart.FullSeriesCollection(j).Delete
ActiveChart.FullSeriesCollection(j).XValues = "='Equipment List'!$AC$2:$AI$2"
On Error GoTo 0
Next j
Also es passiert nun folgendes
Das erste Diagramm wird richtig dargestellt. $AC$2:$AI$2 Datenreihenname & $AC$3:$AI$3 als Werte
Das zweite Diagramm sieht aus wie das erste (und klickt man in die Datenreihenwerte rein sieht man hier auch $AC$2:$AI$2 Datenreihenname & $AC$3:$AI$3 als Werte
Das dritte Diagramm bedient sich nun tatsächlich der Werte aus der 5. Spalte aber die Datenreihennamen sind Weg.
Das geht si weiter bis zum neunten Diagramm und da wird es ganz seltsam: Statt sich an Zeilen zu bedienen verwendet Excel nun in die Spaltenwerte von $AC$2:$AC$10 & $AD$2:$AD$10 usw...
Was läuft da schief? Hat jemand eine Idee und einen Lösungsvorschlag? Besten Dank vorab für Eure Hilfe.
VG, Bernd
Zum besseren Verständnis hier der komplette Code:
Wesentliche Vorgehensweise
lösche alle vorhandenen Diagramme, füge Diagramme von a = 1 bis i (hier Zellwert = 720) ein und lösche dabei die jeweils unnöten Datenreihen (dazu noch paar Cosmetics wie Zeilenhöhe bestimmen, Diagrammgröße und Position anpassen)
Sub Add_Dia()
'
' Add_Dia Makro
Dim chrDiagramm As ChartObject
Dim a As Long
Dim z As String
Dim i As Long
Dim j As Long
On Error Resume Next
Worksheets("Equipment List").ChartObjects.Delete
On Error GoTo 0
i = Cells(1, 2).Value
For a = 1 To i
z = Cells(a + 2, 3).Value
Rows(a + 2).Select
Selection.RowHeight = 100
ActiveSheet.Shapes.AddChart2(332, xlLineMarkers).Name = z
ActiveSheet.ChartObjects(z).Activate
ActiveChart.SetSourceData Source:=Range("AC2:AI2", "AC" & a + 2 & ":AI" & a + 2)
ActiveChart.PlotArea.Select
For j = 1 To a
On Error Resume Next
ActiveChart.FullSeriesCollection(j).Delete
ActiveChart.FullSeriesCollection(j).XValues = "='Equipment List'!$AC$2:$AI$2"
On Error GoTo 0
Next j
ActiveChart.SetElement (msoElementChartTitleCenteredOverlay)
Selection.Caption = z
ActiveSheet.ChartObjects(z).Activate
ActiveSheet.ChartObjects(z).Top = Cells(a + 2, 3).Top
ActiveSheet.ChartObjects(z).Left = Cells(a + 2, 3).Left
ActiveSheet.Shapes(z).ScaleWidth 0.73, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes(z).ScaleHeight 0.42, msoFalse, _
msoScaleFromTopLeft
Next a
Range("A1").Select
End Sub
|