AW: Automatische Diagrammerstellung
13.10.2016 14:35:11
Beverly
Hi Tim,
Code ist genau auf deine Auflistung angepasst
lngLetzte1 = IIf(IsEmpty(wksXLS.Cells(Rows.Count, 1)), _
wksXLS.Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
lngLetzte2 = IIf(IsEmpty(wksLOG.Cells(Rows.Count, 1)), _
wksLOG.Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
Worksheets.Add After:=Sheets(Sheets.Count)
With Worksheets(Worksheets.Count)
.Name = "Messdaten - Diagramme"
' Diagramm -> Partikelkammer
With .Shapes.AddChart2(332, xlXYScatterSmoothNoMarkers).Chart
.HasTitle = True
.ChartTitle.Text = "Messdaten Partikelkammer"
.SetSourceData Source:=Union(wksXLS.Range("B6:B" & lngLetzte1), wksXLS.Range("F6:H" & _
lngLetzte1))
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Caption = "Zeit [s]"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Caption = "Temperatur [°C]"
End With
.ChartObjects(.ChartObjects.Count).Top = .Range("B5").Top
.ChartObjects(.ChartObjects.Count).Left = .Range("B1").Left
.ChartObjects.Width = 850
' Diagramm -> O2
With .Shapes.AddChart2(332, xlXYScatterSmoothNoMarkers).Chart
.HasTitle = True
.ChartTitle.Text = "Messdaten Sauerstoffkonzentration"
.SetSourceData Source:=Union(wksLOG.Range("C2:C" & lngLetzte2), wksLOG.Range("D2:D" & _
lngLetzte2))
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Caption = "Zeit [s]"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Caption = "Sauerstoffkonzentration [%]"
End With
.ChartObjects(.ChartObjects.Count).Top = .Range("B20").Top
.ChartObjects(.ChartObjects.Count).Left = .Range("B1").Left
.ChartObjects.Width = 850
End With
Worksheets.Add After:=Sheets(Sheets.Count)
With Worksheets(Worksheets.Count)
.Name = "Versuchsstand - Diagramme"
' Diagramm -> Druck
With .Shapes.AddChart2(332, xlXYScatterSmoothNoMarkers).Chart
.HasTitle = True
.ChartTitle.Text = "Messdaten Druck"
.SetSourceData Source:=Union(wksXLS.Range("B6:B" & lngLetzte1), wksXLS.Range("Q6:R" & _
lngLetzte1))
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Caption = "Zeit [s]"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Caption = "Druck [mbar]"
End With
.ChartObjects(.ChartObjects.Count).Top = .Range("B5").Top
.ChartObjects(.ChartObjects.Count).Left = .Range("B1").Left
.ChartObjects.Width = 400
' Diagramm -> Kühlwassertemperatur
With .Shapes.AddChart2(332, xlXYScatterSmoothNoMarkers).Chart
.HasTitle = True
.ChartTitle.Text = "Messdaten Kühlwassertemperatur"
.SetSourceData Source:=Union(wksXLS.Range("B6:B" & lngLetzte1), wksXLS.Range("C6:C" & _
lngLetzte1), wksXLS.Range("P6:P" & lngLetzte1))
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Caption = "Zeit [s]"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Caption = "Temperatur [°C]"
End With
.ChartObjects(.ChartObjects.Count).Top = .Range("B20").Top
.ChartObjects(.ChartObjects.Count).Left = .Range("B1").Left
.ChartObjects.Width = 400
' Diagramm -> Gasmesszelle
With .Shapes.AddChart2(332, xlXYScatterSmoothNoMarkers).Chart
.HasTitle = True
.ChartTitle.Text = "Messdaten Gasmesszelle"
.SetSourceData Source:=Union(wksXLS.Range("B6:B" & lngLetzte2), wksXLS.Range("K6:O" & _
lngLetzte2))
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Caption = "Zeit [s]"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Caption = "Sauerstoffkonzentration [%]"
End With
.ChartObjects(.ChartObjects.Count).Top = .Range("B35").Top
.ChartObjects(.ChartObjects.Count).Left = .Range("B1").Left
.ChartObjects.Width = 850
End With
Beachte, dass deine Daten fehlerhaft sind, wodurch die Graphen "falsch" dargestellt werden.