AW: Diagramm automatisieren
11.01.2017 02:26:11
Rainer
Hallo Iris,
mit dem Diagramassistenten wird das nichts. Habe es selber oft genug versucht, es macht einen wahnsinnig. Für mich das schlimmste ist dann immer, wenn Excel beim ändern der Datenbereiche auch gleich noch die ganze Formatierung kaputt schlägt.
Aber VBA ist garnicht so schlimm. Ich weiß nicht welchen Diagrammtyp du verwendest. Ich gebe dir ein Beipiel für "Punkt XY mit geraden Linien":
Sub Diagramm_Update()
Dim TB As Worksheet
Dim FirstRow, LastRow As Integer
Set TB = ThisWorkbook.Sheets("MAIN")
LastRow = Worksheets("EXPORT").Cells(Rows.Count, 1).End(xlUp).Row
FirstRow = LastRow - 30 * Range("N39") 'Interval in Minuten in N39
FirstRow = IIf(FirstRow
Hier wird für das Diagram mit dem Namen "Graph 1" erst der Bereich (FirstRow, LastRow) geprüft und durch ein Interval festgelegt.
Dann definiert es die Skalierung für die Y-Achse "xlValue"(N44, N45 berechnen die Skalierung).
Ebenso für die Y-Achse "xlCategory", hier mit den Zellen Z44, Z43.
".SeriesCollection(1)" definiert die Datenreihe 1, X-Achse ist "XValues", Y-Achse ist "Values".
Ich habe hier noch die Formatierungen für die Graphen mit drin, weil Excel diese im Diagramm gerne zurücksetzt oder komplett vergnaddelt, wenn man den Datenbereich löscht.
Für deinen Fall würde ich nun Diagram1 mit Spalte A erstellen und testen ob das Makro es füllen kann. Dann kopiert du das Diagram, änderst den Namen in "Diagram2" und kopierst den Makro-Code
With TB.ChartObjects("Graph1").Chart 'GRAPH 1*
End With
Ändere auch hier den Bezug in "Diagram2". Im weiteren Code kannst du nun für jede "SeriesCollection" den Datenbezug "Range" anpassen, mit Worksheet Name und Zellbezug.
Dann einfach das Makro ausführen und fertig. Dann sehen auch alle Diagramme gleich aus.
Viele Grüße,
Rainer