Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1508to1512
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - X-Achse bei Balken und Liniendiagramm

VBA - X-Achse bei Balken und Liniendiagramm
26.08.2016 19:07:53
AHK
Liebe Forumsmitglieder,
ich habe ein Problem mit der Erstellung eines eingebetteten Diagramms.
Darin sollen Messwerte (in Tabellenspalte "D") als Histogramm (Säulendiagramm) dargestellt werden, die Summenwerte (in Tabellenspalte "C") als Liniendiagramm.
Hierfür weise ich den beiden Datenquellen per VBA eine unterschiedliche X-Achse zu.
Das klappt auch prima. Bis ich mit .SeriesCollection(2).ChartType = xlColumnClustered das Säulendiagramm zuweise. Dann verschiebt sich die X-Achse.
Ich habe versucht die Skalierung der zweiten X-Achse der primären X-Achse gleichzusetzen, bekomme bei einer Codezeile à la .Axes(xlCategory, xlSecondary).MinimumScale = 100 aber eine Fehlermeldung.
Wie bekomme ich bei unterschiedlichen Diagrammtypen eine einheitliche X-Achse mit VBA hin ?
Ich würde mich riesig über Unterstützung freuen. Habe die Exceltabelle (ohne Makro) angefügt.
https://www.herber.de/bbs/user/107858.xlsx
Viele Grüße,
AHK
Der Makro-Code ist wie folgt:
Sub Makro1()
' Erstellen des Verteilungsdiagramms
Dim co As ChartObject
Dim r As Range
Set r = Range("F10:M18")
Set co = ActiveSheet.ChartObjects.Add(r.Left, r.Top, r.Width, r.height)
co.Name = "histDiag"
With co.Chart
.HasTitle = True
.ChartTitle.Text = "Auswertung"
.SeriesCollection.NewSeries
.SeriesCollection(1).ChartType = xlXYScatterLinesNoMarkers
.SeriesCollection(1).Name = "=Test!$C$10"
.SeriesCollection(1).Values = "=Test!$C$11:$C$112"
.SeriesCollection(1).XValues = "=Test!$B$11:$B$112"
.HasAxis(xlValue, xlPrimary) = True
.HasAxis(xlCategory, xlPrimary) = True
.Axes(xlCategory, xlPrimary).MinimumScale = 100
.Axes(xlCategory, xlPrimary).MaximumScale = 2000
.Axes(xlCategory, xlPrimary).MajorUnit = 500
.Axes(xlCategory, xlPrimary).MinorUnit = 100
.Axes(xlCategory, xlPrimary).CrossesAt = 0
.SeriesCollection.NewSeries
.SeriesCollection(2).Name = "=Test!$D$10"
.SeriesCollection(2).Values = "=Test!$D$11:$D$112"
.SeriesCollection(2).XValues = "=Test!$B$11:$B$112"
.SeriesCollection(2).AxisGroup = 2
.SeriesCollection(2).ChartType = xlColumnClustered
.HasAxis(xlValue, xlSecondary) = True
.HasAxis(xlCategory, xlSecondary) = True
End With
End Sub

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

Betreff
Datum
Anwender
Anzeige
Säulen- und Liniendiagramm
26.08.2016 20:02:12
Beverly
Hi,
du darfst kein Punkt-Daigramm verwenden sondern musst Linie nehmen:
    Dim co As ChartObject
Dim r As Range
Set r = Range("F10:M18")
Set co = ActiveSheet.ChartObjects.Add(r.Left, r.Top, r.Width, r.Height)
co.Name = "histDiag"
With co.Chart
.HasTitle = True
.ChartTitle.Text = "Auswertung"
With .SeriesCollection.NewSeries
.ChartType = xlLine
.Name = "=Test!$C$10"
.Values = "=Test!$C$11:$C$112"
.XValues = "=Test!$B$11:$B$112"
End With
.HasAxis(xlValue, xlPrimary) = True
.HasAxis(xlCategory, xlPrimary) = True
With .SeriesCollection.NewSeries
.Name = "=Test!$D$10"
.Values = "=Test!$D$11:$D$112"
.XValues = "=Test!$B$11:$B$112"
.AxisGroup = 2
.ChartType = xlColumnClustered
End With
.HasAxis(xlValue, xlSecondary) = True
.HasAxis(xlCategory, xlSecondary) = True
End With



Anzeige
AW: Säulen- und Liniendiagramm
27.08.2016 16:43:58
AHK
Hallo Karin,
danke. Es kann manchmal so einfach sein.
Funktioniert.
Viele Grüße,
AHK

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige