Supportnet / Forum / Tabellenkalkulation
Diagramm - letzten 5 Jahre
Frage
Guten Morgen!
Ich habe eine Exceltabelle mit historischen Daten.
Nun möchte ich ein Diagramm zur grafischen Darstellung der vorhandenen Werte.
Es sollte möglich sein, automatisch immer nur die letzten 5 Jahre per Diagramm auszuwerten.
Den Quellbereich per Hand umzustellen ist kein Problem, jedoch werden pro Quartal Werte eingetragen und die Grafik soll sich immer auf die letzen 20 Quartale = 5 Jahre beziehen.
Danke für die Mithilfe.
Severin
Antwort 1 von schnallgonz
N´abend,
da muss man mit Namen arbeiten.
Ich habe mal ein Makro gebastelt, das immer die letzten vier Zeilen in ein Diagramm einspielt.
Wenn bei Dir pro Quartal eine Zeile belegt wird, müssen die letzten 20 Zeilen markiert und benannt werden,
siehe Erläuterung im Code.
Und Spaltenbereich anpassen.
Meine Beispieltabelle hat Daten in A1:E13.
Also Spalte E = 5
Ich hoffe, Du kommst klar, Erläuterungen im Code in den Zeilen mit "Rem" am Anfang.
MfG
schnallgonz
da muss man mit Namen arbeiten.
Ich habe mal ein Makro gebastelt, das immer die letzten vier Zeilen in ein Diagramm einspielt.
Wenn bei Dir pro Quartal eine Zeile belegt wird, müssen die letzten 20 Zeilen markiert und benannt werden,
siehe Erläuterung im Code.
Und Spaltenbereich anpassen.
Meine Beispieltabelle hat Daten in A1:E13.
Also Spalte E = 5
Sub DiagrammLetzte5Jahre()
Dim Blatt As Worksheet
Dim s As String
Dim LastZeile As Long
Rem letzte benutzte Zeile auslesen
LastZeile = ActiveSheet.UsedRange.Rows.Count
Rem markieren letzte Zeile -3 in Spalte A : letzte Zeile Spalte 5
Rem hier also an Deine Tabelle anpassen, z.B. letzte Zeile -19 und Spalte 10=J
Range(Cells(LastZeile - 3, 1), Cells(LastZeile, 5)).Select
s = ActiveSheet.Name
Set Blatt = ActiveSheet
On Error Resume Next
Rem schon vergebenen Namen löschen
ActiveWorkbook.Names("Letzte5Jahre").Delete
Rem obiger Markierung den Namen "Letzte5Jahre" verpassen
ActiveWorkbook.Names.Add _
Name:="Letzte5Jahre", RefersToR1C1:=Selection
Blatt.ChartObjects(1).Select
ActiveChart.SetSourceData _
Source:=Sheets(s).Range("Letzte5Jahre")
End Sub
Ich hoffe, Du kommst klar, Erläuterungen im Code in den Zeilen mit "Rem" am Anfang.
MfG
schnallgonz

