Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Balkendiagramm aus dynamisch wachsender Quelle
22.09.2016 14:10:31
Jessi
Hallo zusammen,
für eine Auswertung möchte ich per vba Daten aus einer Tabelle in ein Balkendiagramm übertragen. Die Tabelle soll in Zukunft dynamisch wachsen, aus diesem Grund habe ich ein Makro eingebaut, mit dessen Hilfe mein Diagramm aktualisiert werden kann (Die Tabelle und das Diagramm sind in unterschiedlichen Arbeitsblättern). Im Großen und Ganzen funktioniert das auch schon gut. Allerdings weiß ich nicht, wie ich bei meinem Balkendiagramm die letzte beschriebene Zeile bzw. in einem zweiten Fall die letzte beschriebene Spalte übergeben kann.
Es wäre super wenn ihr mir hier Helfen könntet :-)
Ich habe es mit
'letzte beschriebene Zeile in Spalte B ermitteln
lzeile = Worksheets("Hilfswerte").Cells(Rows.Count, 2).End(xlUp).Row
.SeriesCollection(1).Values = Range(Cells(3, 3), Cells(lzeile, 3))
.SeriesCollection(1).XValues = Range(Cells(3, 2), Cells(lzeile, 2))
versucht. Hier wird zwar die richtige Zeilennummer ermittelt aber leider werden die Daten nicht in das Diagramm übertragen.
Im folgenden findet ihr meinen vollständigen Code, der funktioniert, allerdings das dynamische Wachstum noch nicht implementiert.
Viele Dank schon jetzt für eure Hilfe
Sub Diagramm_erstellen()
Range("A1:T1").Select
ActiveCell.FormulaR1C1 = "Auswertung"
' vorhandene Diagramme löschen:
With ActiveSheet
If .ChartObjects.Count > 0 Then .ChartObjects.Delete
End With
' Diagramm erstellen
Sheets("Uebersicht").Shapes.AddChart.Select
ActiveChart.ChartType = xlColumnClustered
'Position und Größe festlegen
With ActiveChart.Parent
.Left = 250
.Top = 150
.Width = 700
.Height = 400
End With
'Diagramm Umrandung
With Selection.Format.Line
.Visible = msoTrue
.Weight = 4
End With
'Beschriftung Diagramm
With ActiveChart
.HasTitle = True
.ChartTitle.Text = "mittlere Bewertung"
'Beschriftung Achsen
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Datum"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Note"
End With
' Werte der x-Achse
With ActiveChart
.HasAxis(xlCategory, xlPrimary) = True
.Axes(xlCategory).TickLabels.Orientation = 45
.SeriesCollection(1).Values = "='Hilfswerte'!$C$3:$C$6"
.SeriesCollection(1).XValues = "='Hilfswerte'!$B$3:$B$6"
.SeriesCollection(1).name = "=""Durchschnittsnote"""
'.Axes(xlCategory).MinorUnit = 1
.SeriesCollection(1).Trendlines.Add Type:=xlLinear, name:="Trend (Durchschnittsnote)"
End With
'Werte der y-Achse
With ActiveChart.Axes(xlValue)
.MaximumScale = 4
.MinimumScale = 1
.MinorUnit = 1
.MajorUnitIsAuto = True
End With
' Gitternetzlinien zufügen:
With ActiveChart.Axes(xlCategory)
.HasMajorGridlines = True
.HasMinorGridlines = False
End With
With ActiveChart.Axes(xlValue)
.HasMajorGridlines = True
.HasMinorGridlines = False
End With
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Balkendiagramm aus dynamisch wachsender Quelle
22.09.2016 14:19:57
Fennek
Hallo,
wenn man die Daten als "intellgente" Tabelle definiert (strg-t), wird das Diagramm automatisch angepasst, sobald die Tabelle erweitert wird. Warum geht das in deinem Fall nicht?
mfg
AW: Balkendiagramm aus dynamisch wachsender Quelle
22.09.2016 15:01:24
Jessi
Hallo Fennek,
Danke für die schnelle Antwort. Du hast Recht das wäre auch eine Lösungsmöglichkeit ich war zu sehr auf VBA fixiert.
Grüße,
Jessica
Anzeige

322 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige