Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Diagramm erstellen aus vorhandenen Daten
20.05.2016 09:56:23
Jonny
Hallo!
Ich habe folgendes Problem:
Ich möchte aus vorhandenen Daten ein Diagramm (via VBA-button) erstellen.
Ab dem Punkt wo der Pfad der Daten eingegeben werden sollte bekomme ich einen Laufzeitfehler 1004.
Ich habe über einige Foren schon nach einer ähnlichen Problematik gesucht, aber nichts wirklich vergleichbares gefunden.
Ich hoffe, ihr könnt mir helfen... Ich habe unten den Punkt an dem er mir einen Laufzeitfehler anzeigt mal kursiv markiert.
Vielen Dank und viele Grüße,
Jonny
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xl3DColumnStacked100
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "=Database!$G$6"
ActiveChart.SeriesCollection(1).Values = _
"=Database!$J$8;Database!$M$8;Database!$P$8;Database!$S$8;Database!$V$8;Database!$Y$8;Database!$AB$8;Database!$AE$8"

ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "=Database!$H$6"
ActiveChart.SeriesCollection(2).Values = _
"=Database!$K$8;Database!$N$8;Database!$Q$8;Database!$T$8;Database!$W$8;Database!$Z$8;Database!$AC$8;Database!$AF$8"
ActiveChart.SeriesCollection(2).XValues = _
"=Database!$I$6;Database!$L$6;Database!$O$6;Database!$R$6;Database!$U$6;Database!$X$6;Database!$AA$6;Database!$AD$6"
ActiveSheet.Shapes("Diagramm PI").Height = 300
ActiveSheet.Shapes("Diagramm PI").Width = 440
ActiveChart.Legend.Select
Selection.Delete
ActiveChart.SetElement (msoElementChartTitleAboveChart)
ActiveChart.ChartTitle.Text = "Projektfortschritt"
Selection.Format.TextFrame2.TextRange.Characters.Text = _
"Projektfortschritt"

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm erstellen aus vorhandenen Daten
20.05.2016 10:23:37
Rudi
Hallo,
sollte nach diesem Schema funktionieren:
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xl3DColumnStacked100
ActiveChart.SeriesCollection.NewSeries
With Sheets("Database")
ActiveChart.SeriesCollection(1).Name = .Range("G6")
ActiveChart.SeriesCollection(1).Values = _
Array(.Range("J8"), .Range("M8"), .Range("P8"), .Range("S8"), .Range("V8"), .Range("Y8"), . _
Range("AB8"), .Range("AE8"))
End With
Gruß
Rudi

AW: Diagramm erstellen aus vorhandenen Daten
20.05.2016 14:20:58
Jonny
Das hat super funktioniert!!
Vielen DANK!!
Jetzt trotzdem noch eine weitere Frage...
Ich lasse mir unter dem Diagramm mit

ActiveChart.SetElement (msoElementDataTableWithLegendKeys)

die Datentabelle unter dem Diagramm anzeigen. Jetzt setzt er aber die Werte ohne die Prozent-Formatierung in die Tabelle. Gibt es da die Möglichkeit, dass die Werte automatisch in Prozent umgewandelt werden?

Anzeige
Ohne Mappe schlecht nachvollziehbar - o.T.
21.05.2016 08:15:19
Beverly


AW: Diagramm erstellen aus vorhandenen Daten
20.05.2016 14:35:24
Beverly
Hi Jonny,
auf Activate/Select kann man verzichten.
    Dim rngBereichY As Range
Dim rngBereichX As Range
With ActiveSheet.Shapes.AddChart.Chart
.ChartType = xl3DColumnStacked100
With Worksheets("Database")
Set rngBereichY = Union(.Range("J8"), .Range("M8"), .Range("P8"), _
.Range("S8"), .Range("V8"), .Range("Y8"), .Range("AB8"), .Range("AE8"))
Set rngBereichX = Union(.Range("I6"), .Range("L6"), .Range("O6"), _
.Range("R6"), .Range("U6"), .Range("X6"), .Range("AA6"), .Range("AD6"))
End With
With .SeriesCollection.NewSeries
.Name = "=Database!$G$6"
.Values = rngBereichY
.XValues = rngBereichX
End With
With Worksheets("Database")
Set rngBereichY = Union(.Range("K8"), .Range("N8"), .Range("Q8"), _
.Range("T8"), .Range("W8"), .Range("Z8"), .Range("AC8"), .Range("AF8"))
End With
With .SeriesCollection.NewSeries
.Name = "=Database!$H$6"
.Values = rngBereichY
End With
End With
Set rngBereichX = Nothing
Set rngBereichY = Nothing


Anzeige
AW: Diagramm erstellen aus vorhandenen Daten
23.05.2016 09:55:38
Jonny
Hallo!
Vielen Dank auch an dich Karin!
Jetzt habe ich zwei gut funktionierende Varianten, allerdings stellt die Datentabelle immernoch ein Problem dar.
Bei der erste Variante (von Rudi) stellt er die Werte nicht als Prozentzahlen dar, sondern als 0,##-Werte. Und bei Karin habe ich vier anstatt zwei Datenreihen. Ich bekomme diese leider nciht weg.
Ich habe mal die Datei hochgeladen: herber.de/bbs/user/105734.xlsm
Viele Grüße,
Jonny

AW: Diagramm erstellen aus vorhandenen Daten
23.05.2016 10:26:15
Beverly
Hi Jonny,
wo sind in dem Diagramm 4 Datenreihen?
Userbild


Anzeige
AW: Diagramm erstellen aus vorhandenen Daten
23.05.2016 10:41:34
Jonny
Jetzt wird es verrückt.
Userbild
So wird es mir angezeigt?
Liegt das evtl. an meiner Office-Version?
Viele Grüße!

AW: Diagramm erstellen aus vorhandenen Daten
23.05.2016 11:47:14
Beverly
Wäre möglich. Ergänze mal noch eine Zeile im Code, vielleicht hilft das:
    With ActiveSheet.Shapes.AddChart.Chart
.ChartType = xl3DColumnStacked100
.SetSourceData Source = Range("A1") '


AW: Diagramm erstellen aus vorhandenen Daten
23.05.2016 12:38:25
Jonny
Das führt leider nur zu einem Laufzeitfehler 13 : Typen unverträglich
Oder muss ich das Range(...) noch anpassen?
Wo kommen diese Datenreihen überhaupt her? Wurden ja nirgends definiert.

Anzeige
AW: Diagramm erstellen aus vorhandenen Daten
23.05.2016 13:54:30
Beverly
Wenn du einen Laufzeitfehler erhältst, dann ergänze noch

Worksheets("Tabelle1").Range("A1")



AW: Diagramm erstellen aus vorhandenen Daten
23.05.2016 16:01:18
Beverly
Gerade gesehen, der Code ist fehlerhaft, denn hinter Source fehlt der Doppelpunkt - also so
        .SetSourceData Source:=Range("A1")

Jetzt dürfte kein Laufzeitfehler mehr ausgelöst werden.


AW: Diagramm erstellen aus vorhandenen Daten
23.05.2016 12:42:19
Jonny
Ich habe jetzt vor dem letzten End With folgendes 2mal eingesetzt:
.SeriesCollection(1).Delete
Ist wahrscheinlich ganz schön gepfuscht, bringt aber das gewünschte Ergebnis :-D
Vielen, vielen Dank für deine Hilfe und Geduld!!
Anzeige

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige