Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Diagramm erstellen mit Excell

Diagramm erstellen mit Excell
08.12.2016 08:17:58
Frank
Guten morgen zusammen,
ich folgendes problem und zwar habe ich nach langem tüfteln und suchen mal versucht ein diagramm zu erstellen, mit 4 Einträgen, davon sind jeweils zwei Linien und zwei Balken, alles in einem Diagramm.
Nun bekomme ich allerdings eine Fehlermeldung "Laufzeitfehler '1004' Anwendungs- objektdefinierter fehler".
und zwar bei dieser Zeile: Tabelle1.Shapes.AddChart XlChartType.xlLineMarkers, 500, 50, 1400, 430
Was kann ich da machen? und wie könnte ich dieses Wirrwar optimierien?
Hier der ganze Code:
Sub AlleDiagrammelöschen()
On Error Resume Next
ActiveSheet.ChartObjects.Delete
End Sub
Sub Diagramm()
Tabelle1.Select
AlleDiagrammelöschen
Union( _
Range("I23:AB23"), _
Range("I26:AA26"), _
Range("I11:AB11"), _
Range("I17:AB17")).Select
Tabelle1.Shapes.AddChart XlChartType.xlLineMarkers, 500, 50, 1400, 430
'Änderung der Legende und der Linien
With ActiveSheet.ChartObjects(1).Chart
.SeriesCollection(1).Name = "=""AGW Vorwoche"""
.SeriesCollection(1).Border.Weight = xlThick
.SeriesCollection(1).Interior.Color = RGB(86, 52, 111)
.SeriesCollection(1).XValues = "=Tabelle1!I5:AB5"
.SeriesCollection(2).Name = "=""AGW"""
.SeriesCollection(2).Border.Weight = xlThick
.SeriesCollection(3).Name = "=""AGN"""
.SeriesCollection(3).ChartType = xlColumnClustered
.SeriesCollection(4).Name = "=""AGP"""
.SeriesCollection(4).ChartType = xlColumnClustered
.SeriesCollection(1).ChartType = xlDash
End With
'Positionierung des Diagramms
ActiveSheet.ChartObjects(1).Top = Range("h30").Top
ActiveSheet.ChartObjects(1).Left = Range("h30").Left
End Sub

Danke für die Hilfe und Grüße,
Franky
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Diagramm erstellen mit VBA
08.12.2016 09:05:18
Beverly
Hi Franky,
kann ich nicht nachvollzeihen. Aber ich erhalte eine Fehlermeldung in dieser Zeile
.SeriesCollection(1).ChartType = xlDash

weil es den Diagrammtyp xlDash nicht gibt. Ich nehme an du meinst stattdessen, dass die linie gestrichelt sein soll:
.SeriesCollection(1).Format.Line.DashStyle = msoLineDash

Hier der gesamte Code wie ma es lösen vielleicht könnte:
Sub Diagramm()
Dim rngBereich As Range
With Tabelle1
If .ChartObjects.Count > 0 Then .ChartObjects.Delete
Set rngBereich = Union(.Range("I23:AB23"), .Range("I26:AA26"), _
.Range("I11:AB11"), .Range("I17:AB17"))
.Shapes.AddChart XlChartType.xlLineMarkers, 0, 0, 0, 0
'Änderung der Legende und der Linien
With .ChartObjects(1).Chart
.SetSourceData Source:=rngBereich
.SeriesCollection(1).Name = "=""AGW Vorwoche"""
.SeriesCollection(1).Border.Weight = xlThick
.SeriesCollection(1).Interior.Color = RGB(86, 52, 111)
.SeriesCollection(1).XValues = "=Tabelle1!I5:AB5"
.SeriesCollection(2).Name = "=""AGW"""
.SeriesCollection(2).Border.Weight = xlThick
.SeriesCollection(3).Name = "=""AGN"""
.SeriesCollection(3).ChartType = xlColumnClustered
.SeriesCollection(4).Name = "=""AGP"""
.SeriesCollection(4).ChartType = xlColumnClustered
.SeriesCollection(1).Format.Line.DashStyle = msoLineDash
End With
'Positionierung des Diagramms
.ChartObjects(1).Top = .Range("h30").Top
.ChartObjects(1).Left = .Range("h30").Left
.ChartObjects(1).Height = 430
.ChartObjects(1).Width = 1400
End With
End Sub


Anzeige
AW: Diagramm erstellen mit VBA
08.12.2016 09:29:16
Frank
Wow, danke für die schnelle antwort, klappt jetzt perfekt!
Grüße
Franky
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige