Diagramme anlegen, verändern, prüfen?
Verfasst: Di, 03.01.2012 13:33
Hallo zusammen,
das Gute zuerst:
Ich habe jetzt meine vorhandene komplexere Excel Tabelle fast in OpenOffice portiert
Jetzt fehlen mir nur noch zwei Diagramme, die ich im Code zeichnen will ...
Dafür habe ich leider keine richtigen Anleitungen gefunden, also wende ich mich erneut hilfesuchend an euch
Was ich möchte:
1.) Überprüfen, ob ein Diagramm schon vorhanden ist, wenn ja, löschen.
Der Code in VBA sieht so aus:
2.) Ich möchte ein Liniendiagramm mit Datenpunkten, sowie ein XY Diagramm anlegen und Größe, Skalierung etc. festlegen können, so wie hier:
3.) Ich möchte Datenreihen anlegen und löschen können für beide Diagrammtypen
Hat hier jemand Beispiele für, Dokumente, in denen ich nachlesen kann?
Bei Dannenhoefer war ich nicht erfolgreich, bei Andrew Pitonyak ebenfalls nicht ...
LG
Entchen
das Gute zuerst:
Ich habe jetzt meine vorhandene komplexere Excel Tabelle fast in OpenOffice portiert

Jetzt fehlen mir nur noch zwei Diagramme, die ich im Code zeichnen will ...
Dafür habe ich leider keine richtigen Anleitungen gefunden, also wende ich mich erneut hilfesuchend an euch

Was ich möchte:
1.) Überprüfen, ob ein Diagramm schon vorhanden ist, wenn ja, löschen.
Der Code in VBA sieht so aus:
Code: Alles auswählen
existiert_diagramm = False
Set sh = ActiveSheet
For x = 1 To sh.ChartObjects.Count
If UCase("Diagramm1") = UCase(sh.ChartObjects(x).Name) Then
existiert_diagramm = True
Exit For
End If
Next x
If existiert_diagramm = True Then
ActiveSheet.Shapes("Diagramm1").Delete
End If
Code: Alles auswählen
Charts.Add
ActiveChart.ChartType = xlXYScatterLines
ActiveChart.Location Where:=xlLocationAsObject, Name:="Tabelle2"
ActiveChart.Parent.Name = "Diagramm1"
ActiveSheet.Shapes("Diagramm1").IncrementLeft -199
ActiveSheet.Shapes("Diagramm1").IncrementTop 145#
ActiveSheet.Shapes("Diagramm1").ScaleWidth 1.85, msoFalse, msoScaleFromTopLeft
ActiveSheet.Shapes("Diagramm1").ScaleWidth 1.1081948513, msoFalse, msoScaleFromBottomRight
ActiveSheet.Shapes("Diagramm1").ScaleHeight 1.3435112278, msoFalse, msoScaleFromBottomRight
ActiveSheet.Shapes("Diagramm1").ScaleWidth 1.1757059852, msoFalse, msoScaleFromTopLeft
Code: Alles auswählen
ActiveChart.SeriesCollection.NewSeries
With ActiveChart
.SeriesCollection(k).XValues = Worksheets("Tabelle2").Range("E2:E" & endex)
End With
ActiveChart.Axes(xlCategory).Select
With ActiveChart.Axes(xlCategory)
.MinimumScaleIsAuto = True
.MaximumScaleIsAuto = True
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
With ActiveChart.Axes(xlCategory)
' .MinimumScale = 36526.9
.MaximumScale = 36527.5
' .MinorUnit = 0.1
' .MajorUnit = 0.02
End With
'Daten hinzufügen
ActiveChart.SeriesCollection(k).Name = zt
ActiveChart.SeriesCollection(k).Values = Worksheets("Tabelle2").Range(Worksheets("Hilfs").Cells(2, i), Worksheets("Tabelle2").Cells(endetemp, i))
ActiveChart.SeriesCollection(k).MarkerSize = 2
ActiveChart.SeriesCollection(k).Format.Line.Weight = 1.5
Code: Alles auswählen
With ActiveChart
For i = 1 To .SeriesCollection.Count
.SeriesCollection(i).Delete
Next
End With
Bei Dannenhoefer war ich nicht erfolgreich, bei Andrew Pitonyak ebenfalls nicht ...
LG
Entchen