AW: Diagramme auf einer Seite
14.04.2021 15:55:10
Beverly
Hi Tom,
ich hoffe der folgende Code entspricht deinen Vorstellungen:
Sub GrafikenErstellen()
Dim wks As Worksheet
Dim cht As ChartObject
Dim iRow As Integer
Dim dblChart As Double
Dim lngAnzahl As Long
Dim lngZaehler As Long
Dim strMin As String
Dim strMax As String
Set wks = Worksheets("Tabelle1")
iRow = 3
Do Until IsEmpty(wks.Cells(iRow, 1))
Set cht = Worksheets("Tabelle2").ChartObjects.Add(0, 0, 300, 200)
With cht.Chart
.ChartType = xlColumnClustered
.SetSourceData Source:=wks.Range( _
wks.Cells(iRow, 1), wks.Cells(iRow, 13)), PlotBy:=xlRows
.HasTitle = True
.ChartTitle.Characters.Text = wks.Cells(iRow, 1).Value
' Datenbeschriftung hibzufügen und Schriftgröße 8 zuweisen
With .SeriesCollection(1)
.ApplyDataLabels
.DataLabels.Format.TextFrame2.TextRange.Font.Size = 8
End With
lngAnzahl = .SeriesCollection(1).Points.Count - 1
' Min und Max aus der betreffenden Spalte zusammensetzen
strMin = "=(Tabelle1!" & Cells(iRow, 2).Address & ","
strMax = "=(Tabelle1!" & Cells(iRow, 3).Address & ","
For lngZaehler = 1 To lngAnzahl
strMin = strMin & "Tabelle1!" & Cells(iRow, 2).Address & ","
strMax = strMax & "Tabelle1!" & Cells(iRow, 3).Address & ","
Next lngZaehler
strMin = Left(strMin, Len(strMin) - 1) & ")"
strMax = Left(strMax, Len(strMax) - 1) & ")"
' neue Datenreihe erstellen, Typ Punkte mit geraden Linien
' Name "Minimum", zusammengesetzte Y-Werte zuweisen, Linienfarbe Rot
With .SeriesCollection.NewSeries
.ChartType = xlXYScatterLinesNoMarkers
.Name = "Minimum"
.Values = strMin
.Format.Line.ForeColor.RGB = RGB(255, 0, 0)
End With
' neue Datenreihe erstellen, Typ Punkte mit geraden Linien
' Name "Maximum", zusammengesetzte Y-Werte zuweisen, Linienfarbe Grün
With .SeriesCollection.NewSeries
.ChartType = xlXYScatterLinesNoMarkers
.Name = "Maximum"
.Values = strMax
.Format.Line.ForeColor.RGB = RGB(0, 176, 80)
End With
End With
With cht
.Top = dblChart
dblChart = dblChart + 200
End With
iRow = iRow + 1
Loop
End Sub
Als Minimum und Maximum werden 2 extra Datenereihen verwendet. Dazu werden die Y-Werte aus der Zelladresse der Spalte B bzw. C so oft zusammengesetzt wie Datenpunkte in der Säulen-Datenreihe vorhanden sind.