Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
600to604
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
600to604
600to604
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Diagramm mit Makro erzeugen

Diagramm mit Makro erzeugen
24.04.2005 15:27:45
axelg
Hallo Leute,
hoffentlich kann mir hier jemand weiterhelfen, probiere schon stundenlang, habe Bücher gewälzt und Foren durchstöbert, ohne erkennbaren Erfolg.
Ich möchte ein Diagramm mit 3 Graphen erzeugen, die aus jeweils 3 Spalten erzeugt werden. D.h. die x-Achse ist konstant, es gibt dazu aber 3 Wertebereiche. Ich habe bereits ein funktionierendes Makro erzeugt, in dem für das Diagramm bereits feste Spalten vorgegeben sind. Allerdings ist es mir noch nicht gelungen, das Makro so abzuändern, bzw zu "dynamisieren", dass ich mir die 3Spalten auswählen kann, mit denen ich das Diagramm erzeugen will. "Selection" und sowas bringt bei mir nur Laufzeitfehler.
Bei einfachen Diagrammen mit nur einem Wertebereich ist mir die Erzeugung so eines "dynamischen" Makros gelungen, indem ich einfach die Zeile im VBA-Editor gelöscht habe, in der die Spalte aus dem Excelarbeitsblatt ausgewählt wurde. "Selction" hat mich hier auch nicht weitergebracht.
Bitte nicht auslachen, bin blutiger Makro-Anfänger.
Hier der Quellcode, vielleicht hilft er ja ein bissel bei einer Antwort:

Sub Diagrammerstellung()
' Diagrammerstellung Makro
' Makro am 24.04.2005 von   aufgezeichnet
' Tastenkombination: Strg+a
Charts.Add
ActiveChart.ChartType = xlXYScatterLines
ActiveChart.SetSourceData Source:=Sheets("Zug").Range("C2:C14"), PlotBy:= _
xlColumns
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "=Zug!R2C1:R14C1"
ActiveChart.SeriesCollection(2).XValues = "=Zug!R18C1:R30C1"
ActiveChart.SeriesCollection(2).Values = "=Zug!R18C3:R30C3"
ActiveChart.SeriesCollection(3).XValues = "=Zug!R18C1:R30C1"
ActiveChart.SeriesCollection(3).Values = "=Zug!R34C3:R46C3"
ActiveChart.Location Where:=xlLocationAsObject, Name:="Zug"
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = _
"Geschwindigkeit [km/h]"
.Axes(xlValue, xlPrimary).HasTitle = False
End With
With ActiveChart
.HasAxis(xlCategory, xlPrimary) = True
.HasAxis(xlValue, xlPrimary) = True
End With
ActiveChart.Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic
ActiveChart.SeriesCollection(3).Select
ActiveChart.SeriesCollection(3).AxisGroup = 2
ActiveChart.Legend.Select
ActiveChart.Axes(xlValue, xlSecondary).Select
Selection.TickLabels.NumberFormat = "0.000E+00"
With ActiveChart.Axes(xlValue, xlSecondary)
.MinimumScaleIsAuto = True
.MaximumScaleIsAuto = True
.MinorUnitIsAuto = True
.MajorUnit = 0.000001
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
ActiveChart.Axes(xlValue).MajorGridlines.Select
ActiveChart.Axes(xlValue).MajorGridlines.Select
ActiveChart.Axes(xlValue).Select
ActiveChart.PlotArea.Select
ActiveChart.Axes(xlValue).MajorGridlines.Select
Selection.Delete
ActiveChart.Legend.Select
ActiveChart.Legend.LegendEntries(1).LegendKey.Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlNone
End With
With Selection
.MarkerBackgroundColorIndex = xlAutomatic
.MarkerForegroundColorIndex = xlAutomatic
.MarkerStyle = xlAutomatic
.Smooth = False
.MarkerSize = 5
.Shadow = False
End With
ActiveChart.Legend.LegendEntries(2).LegendKey.Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlAutomatic
End With
With Selection
.MarkerBackgroundColorIndex = xlAutomatic
.MarkerForegroundColorIndex = xlAutomatic
.MarkerStyle = xlNone
.Smooth = False
.MarkerSize = 5
.Shadow = False
End With
End Sub

Vielen Dank schonmal im voraus für die Hilfe.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm mit Makro erzeugen
24.04.2005 16:57:12
Cardexperte
Hello axelg,
warum wird das Diagramm immer wieder auf Neue erzeugen? Mach das Diagramm doch nur einmal!!!! fertig, z.B. als extra Blatt und steuere die Anzeige indem du Zeilen bzw. Spalten ausblendest! Geht doch 100 mal einfacher, hast du nicht ein dummyfile, das Makro sagt mir gar nicht was du willst, denn es wiederspiegelt doch nur die Diagrammerstellung!
Gruss WS
AW: Diagramm mit Makro erzeugen
24.04.2005 19:50:16
axelg
Hallo Cardexperte,
vielen Dank für Deinen Lösungsvorschlag, ich kann mir darunter leider nicht so richtig was vorstellen. Ich hab mal ein Dummyfile, welches auch mein bisheriges makro enthält, reingestellt.
Im Prinzip gehts darum, die Werte der ersten und zweiten Datenreihe spaltenweise im Diagramm darzustellen. Die 3. Datenreihe ist der prozentuale Vergleich der ersten beiden Datenreihen und soll im Diagramm ebenfalls aber auf einer Sekundärachse angezeigt werden.
Alle Werte sollen über einer Abszisse, welche aus der 1. Spalte der oberen Datenreihe gebildet wird, dargestellt werden.
Naja und damit sich derAufwand in Grenzen hält (denn das ganze muss ich bestimmt noch mehr als 100mal machen...), wollte ich halt ein Makro schreiben, welches mir diese Arbeit abnimmt.
Hier der Link zum File:
https://www.herber.de/bbs/user/21632.xls
Vielen Dank für Deine Mühe.
Axel
Anzeige
AW: Diagramm mit Makro erzeugen
25.04.2005 09:35:20
Cardexperte
Hello Axel,
habe dazu noch einige Frage:
1. Frage was meinst du mit "denn das ganze muss ich bestimmt noch mehr als 100mal machen", heisst das du hast ca. 100 Excelfiles oder Mappen, wo noch keine Diagramme drin sind? Wenn ja dann muss es doch über chartadd gehen
2. so viel wie ich sehe ist die erste Spalte immer die x-Achse, oder?
was meinst du mit spaltenweise darstellen, es wird doch spaltenweise dargestellt, oder willst du wahlweise z.B. Spalte B und beim nächsten mal Spalte C darstellen?
3. wozu ist die Datenreihe 1 da, oder anders ausgedrückt, wozu sind die grün unterlegten und blau unterlegten Zellen gut (sind doppelt), oder unterscheiden sie sich im Original
Gruss WS
Anzeige
AW: Diagramm mit Makro erzeugen
25.04.2005 10:18:29
axelg
Hallo Cardexperte,
zu Deinen Fragen:
1. Ja, es wird noch viele Mappen und Files mehr geben, die dieselbe Struktur aufweisen.
3. Datenreihe 1 und 2 wurden jeweils von verschiedenen Programmen erzeugt. Die Spalten dieser Datenreihen möchte ich miteinander vergleichen, sie unterscheiden sich oft erst in der x-ten Stelle nach dem Komma.
Es existiert also ein minimaler Unterschied zwischen Datenreihe 1 (grün) und Datenreihe 2 (blau).
2. Ja, die erste Spalte ist immer die x-Achse.
Die Daten sollen spaltenweise verglichen werden, d.h. z.B. die Daten aus Spalte B in Datenreihe 1 und 2 sind fast gleich. Spalte B in der Datenreihe 3 ist die prozentuale Abweichung der Spalte B, Datenreihe 2 von Spalte B, Datenreihe 1.
Und zur Verdeutlichung dieses Vergleichs möchte ich Diagramme erzeugen, welche auf der Primärachse die Spalten aus Datenreihe 1 und 2 enthalten und auf der Sekundaärachse die Daten aus den Spalten der Datenreihe 3(und über Spalte A, 1. Datenreihe aufgetragen werden).
Hm, ich häng mal ein File mit mehr manuell erstellten Diagrammen ran, vielleicht wirds dann deutlicher. (hab die jetzt mit Strg+Mausklick geklont und bearbeitet, aber so richtig "bequem" ist das auch nicht).
https://www.herber.de/bbs/user/21661.xls
Auf jeden Fall vielen Dank, dass Du mir hier versuchst "ehrenamtlich" zu helfen.
Anzeige
AW: Diagramm mit Makro erzeugen
25.04.2005 16:29:33
axelg
Achso, was ist eigentlich "chartadd"? Habe dazu nichts gefunden.
Oder ist damit nur Strg+Mausklick gemeint?
AW: Diagramm mit Makro erzeugen
25.04.2005 17:49:42
Cardexperte
Helle axelg,
meinte nur charts.add, also ein neues Diagramm hinzufügen, hast du doch auch in deinem Makro drinstehen! Ich schicke dir mal deine Datei mit ein paar Abänderungen zu. Schau es dir an, dein Makro (Diagramm erstellen) habe ich übernommen und es wird nur aufgerufen durch das Makro vieldiagramm, wo mit einer Zählvariablen die einzelnen Spalten angewählt werden und dann die Diagramme erstellt werden. Muss natürlich noch weiter ausgebaut werden, insbesondere, dass sie nicht alle übereinanderliegen, lässt sich aber alles machen, Bemerkungen habe ich in die Makros reingeschrieben, auch die Steuerung der Überschriften, der Beschriftung der y-Achse lassen sich so einfach bewerkstelligen!
Am besten, wenn du noch Fragen oder Wünsche hast kontaktiere mich unter Seidel-Welka@t-online.de
Gruss WS
ach so hier noch deine Datei zurück:
https://www.herber.de/bbs/user/21688.xls
Anzeige
AW: Diagramm mit Makro erzeugen
25.04.2005 23:56:37
AxelG
Vielen, vielen Dank, Cardexperte!
Das Makro ist fast perekt. Ich wäre nie darauf gekommen (oder hätte mich noch wochenlang in VBA einarbeiten müssen).
Ich probiere schon die ganze Zeit, das makro noch ein bissel mehr meinen Wünschen anzupassen. Wenn ich nicht mehr weiterkomme, werde ich Dein Angebot nochmal wahrnehmen müssen. Aber auf jeden Fall warst Du ne grosse Hilfe.
cu, Axel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige