Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1296to1300
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Diagramm erstellen

Diagramm erstellen
12.02.2013 19:40:32
Corben
Hallo xl Forum,
ich möchte mir ein Diagramm per makro erstellen.
Leider betrete ich hier Neuland und scheitere immer an Objekt oder Methodenfehler.
Herran gehen wollte ich in etwa so:
Dim NewChart As Chart
Set NewChart = Charts.Add
NewChart.Name = "Aus 1"
NewChart.ChartType = xlLine
With ActiveWorkbook.Chart("Aus 1").SeriesCollection(1)
.Name = ActiveWorkbook.Sheets(2).Cells(1, 3)
.Values = ActiveWorkbook.Sheets(2).Range(Range("C2"), _
Range("C2").End(xlDown))
.XValues = ActiveWorkbook.Sheets(2).Range(Range("B2"), _
Range("B2").End(xlDown))
End With
Spätestens bei with meckert er das, dass Object die Eigenschaft oder Methode nicht unterstützt.
Ich wollte ein neues Liniendiagramm erstellen und diesem gleich einen bestimmten Wertebereich für x und y Koordinaten zuordnen.
Leider sind alle Versuche bis jetzt gescheitert.
Wie kann ich dies am besten lösen?

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

Betreff
Datum
Anwender
Anzeige
AW: Diagramm erstellen
12.02.2013 19:41:57
Hajo_Zi
warum benutzt Du nicht den Makrorecorder?

AW: Diagramm erstellen
12.02.2013 19:53:26
Corben
Hallo Hajo_Z
habe ich :)
Allerdings sind viele Selects und Activate enthalten und ich wollte dies alles etwas zusammen fassen.
Der Objectkatalog zwar einige Beispiele vor, welche im einzelnen zwar funktionieren, aber nicht zusammen kombinierbar sind. :(
Gruß Corben

AW: Diagramm erstellen
12.02.2013 19:58:23
Hajo_Zi
das beseitigen dürfte doch kein Problem sein. Nur wenige sehen Deinen Code und Deine Tabelle.
Gruß Hajo

Anzeige
AW: Diagramm erstellen
12.02.2013 20:10:05
Corben
jetzt bin ich ein stück weiter.
With Zust.Charts("Aus 1")
.SeriesCollection.NewSeries
.SeriesCollection(1).Name = Zust.Sheets(2).Cells(1, 3)
.SeriesCollection(1).Values = Zust.Sheets(2).Cells(Cells(2, 3), Cells(2, 3).End(xlDown))
.SeriesCollection(1).XValues = Zust.Sheets(2).Cells(Cells(2, 2), Cells(2, 2).End(xlDown))
End With
Nur die ab dem .SeriesCollection(1).Values ... will er nicht mehr.
Jetzt mach ich erstmal Feierabend und tüftle da morgen weiter.

AW: Diagramm erstellen
12.02.2013 22:40:18
Beverly
Hi Corben,
dein Ansatz ist vom her Prinzip schon korrekt, nur musst du an allen Stellen den Bezug zum betreffenden Tabellenblatt herstellen - es reicht also nicht, wenn du
Zust.Sheets(2).Cells(Cells(2, 3), Cells(2, 3).End(xlDown))
schreibst, es muss dann schon
Zust.Sheets(2).Cells(Zust.Sheets(2).Cells(2, 3), Zust.Sheets(2).Cells(2, 3).End(xlDown))
heißen.
Ich würde es so lösen:
Set wksTab = ActiveWorkbook.Worksheets(2)
With ActiveWorkbook.Charts.Add
.Name = "Aus 1"
.ChartType = xlLine
With .SeriesCollection.NewSeries
.Name = wksTab.Cells(1, 3)
.Values = wksTab.Range(wksTab.Range("C2"), wksTab.Range("C2").End(xlDown))
.XValues = wksTab.Range(wksTab.Range("B2"), wksTab.Range("B2").End(xlDown))
End With
End With
Set wksTab = Nothing


Anzeige
AW: Diagramm erstellen
12.02.2013 23:47:54
Corben
Hallo Karin,
Dein Lösungsweg gefällt mir sehr gut.
Gestrafft und übersichtlich, irgendwie so hatte ich mir das vorgestellt.
Der Macrorecorder liefert oft einen overhead, dass es mich bei optmieren gern verwirrt.
Vielen Dank und Gruß Corben

AW: Diagramm erstellen
12.02.2013 21:06:23
Hajo_Zi
das beseitigen dürfte doch kein Problem sein. Nur wenige sehen Deinen Code und Deine Tabelle.
Gruß Hajo

AW: Diagramm erstellen
12.02.2013 21:49:52
littletramp
Hallo Corben
So geht's:

Option Explicit
Sub CreateChart()
Dim NewChart As Chart
Dim Datenblatt As Worksheet
Set Datenblatt = ActiveWorkbook.Sheets(2)
Set NewChart = Charts.Add(After:=Datenblatt)
NewChart.Name = "Aus 1"
NewChart.ChartType = xlLine
With Datenblatt
NewChart.SeriesCollection.NewSeries
NewChart.SeriesCollection(1).Name = .Cells(1, 3)
NewChart.SeriesCollection(1).Values = Range(.Cells(2, 3), .Cells(2, 3).End(xlDown))
NewChart.SeriesCollection(1).XValues = Range(.Cells(2, 2), .Cells(2, 2).End(xlDown))
End With
End Sub
Gruss
Markus (littletramp.ch)

Anzeige
AW: Diagramm erstellen
12.02.2013 22:33:15
Corben
Hallo Markus,
Danke für die Hilfe.
Ich werde es morgen früh gleich verproben.
Gruß Corben

AW: Diagramm erstellen
12.02.2013 22:46:41
Beverly
Hi Markus,
dein Code läuft auf einen Fehler, aus dem selben Grund wie er bei Corben auf einen Fehler läuft - es fehlt der korrekte Bezug zum Tabellenblatt. Wenn du noch einen Punkt (.) vor Range in beiden Zeilen setzt, ist dieser Fehler beseitigt und dein Code läuft fehlerfrei durch.


AW: Diagramm erstellen
12.02.2013 23:14:18
Corben
uhi der Bezug zum Tabellenblatt fehlt - hmm
Ich muss mir unbedingt einprägen den "." nicht zu vergessen.
Ich war schon ein bisschen am verzweifeln :)
Danke Karin

Anzeige
AW: Diagramm erstellen
12.02.2013 22:11:30
Josef
Hallo Corben,
setze der Cusor einfach irgendwo in die Tabelle bevor die Charts.Add-Methode startet, dann bekommst du sofort ein Standarddiagramm (Säulen) für den gesamten Datenbereich. Alternativ kannst du vorab den gewünschten Datenbereich markieren.
Das neue Diagramm läßt sich dann leicht per VBA anpassen (Datentyp, Formatierungen etc.)
Noch ein Tipp:
Wenn du den Datenbereich vorab als Tabelle definierst (Einfügen/Tabelle/Tabelle), werden hinzugefügte Zeilen automatisch ins Diagramm übernommen.
Gruss,

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige