Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
340to344
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
340to344
340to344
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Diagramm einfügen

Diagramm einfügen
25.11.2003 11:00:08
Andi
Seid gegrüßt,

ich möchte per VBA ein Punktdiagramm in einem Tabellen-Blatt namens "Darstellung der Werte" einfügen; die Wertetabelle für das Diagramm steht in einem Blatt namens "Byte-Auswertung". Außerdem sollte das Diagramm etwas größer sein, als es von Haus aus ist und eine weisse Zeichnungsfläche haben.
Ich hab' das dann einfach mal manuell gemacht, und dabei den Markro-Rekorder mitlaufen lassen, wodurch folgendes produziert wurde:

Charts.Add
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
ActiveChart.SetSourceData Source:=Sheets("Darstellung der Werte").Range("D33" _
)
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "='Byte-Auswertung'!R25C2:R152C2"
ActiveChart.SeriesCollection(1).Values = "='Byte-Auswertung'!R25C3:R152C3"
ActiveChart.SeriesCollection(1).Name = "=""I(V)"""
ActiveChart.Location Where:=xlLocationAsObject, Name:= _
"Darstellung der Werte"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Kennlinie"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Spannung in V"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Strom in A"
End With
ActiveSheet.Shapes("Diagramm 7").ScaleWidth 1.28, msoFalse, _ '******
msoScaleFromBottomRight
ActiveSheet.Shapes("Diagramm 7").ScaleHeight 1.44, msoFalse, _
msoScaleFromBottomRight
ActiveSheet.Shapes("Diagramm 7").ScaleWidth 1.18, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Diagramm 7").ScaleHeight 1.25, msoFalse, _
msoScaleFromTopLeft
ActiveChart.PlotArea.Select
With Selection.Border
.ColorIndex = 16
.Weight = xlThin
.LineStyle = xlContinuous
End With
Selection.Interior.ColorIndex = xlNone

Wenn ich da jetzt eine eigene Sub draus mache, und das ganze aus einer anderen Sub heraus aufrufe, bekomme ich in der Zeile, die ich hinten mit den Sternchen markiert habe, einen Fehler mit der Nummer '-2147024809(80070057)' und der Kurzbeschreibung "Das Element mit dem angegebenen Namen wurde nicht gefunden". Ich weiss zwar auch nicht so genau, wie der Makro-Rekorder auf "Diagramm 7" kommt, aber man sollte doch meinen, dass Excel sein selbst-produzierten Makros auch ausführen kann, oder?

Hat jemand eine Idee, was ich falsch mache?

Schönen Gruß
Andi

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm einfügen
25.11.2003 13:55:37
GerdW
Excel nummeriert die Objekte automatisch durch. Bein nächsten Durchlauf des
Codes heißt das Diagramm nicht mehr ("Diagramm 7") eher ("Diagramm 8")
und dann wird ("Diagramm 7") natürlich nicht gefunden.

Gerd
AW: Diagramm einfügen
25.11.2003 14:21:35
Andi
Hallo Gerd,

danke schon mal für die Erklärung.
Und was kann ich unternehmen, damit Excel das betreffende Diagramm findet? Ich hab' schon versucht, statt "Diagramm 7" den von mir gewählten Diagramm-Titel "Kennlinie" in den Code zu schreiben; hat leider auch nix gebracht.

Ich hätte auch nix gegen eine völlig andere - und damit vermutlich elegantere - Methode, die Größe des Diagramms zu verändern. Wie gesagt, ich hab' den Code vom Makro-Rekorder einfach übernommen.

Schönen Gruß
Andi
Anzeige
AW: Diagramm einfügen
25.11.2003 15:30:21
GerdW
Du kannst das Diagramm auch über den Index ansprechen. Falls es nicht
mehr als ein Diagramm gibt, hat es immer den Index 1.
Ansonsten lad mal ein Beispiel mit Erläuterungen, was genau passieren
soll, hoch.

Gerd
AW: Diagramm einfügen
25.11.2003 16:04:23
Andi
Danke für die Rückmeldng!

Den betreffenden Code hatte ich ja eingangs schon gepostet, viel mehr gibt's da eigentlich nicht, was ich hochladen könnte. Was bräuchtest Du denn noch?

Passieren soll, dass das Diagramm eine bestimmte Größe annimmt, die momentan zu Testzwecken noch relativ egal ist. Später soll sich das Diagramm dann in eine Art Ergebnis-Blatt einfügen, dessen Layout aber noch nicht feststeht, weshalb ich die endgültige Größe auch noch nicht kenne.
Das ganze soll dann irgendwann 20 Mal hintereinander ablaufen, mit verschiedenen Blättern für die Datenquelle und als Zielort. Kann man da was mit Index machen? Und wenn ja, wie?

Ich hoffe, ich hab' mich einigermaßen verständlich ausgedrückt und danke Dir schon mal für Deine Mühe.

Schönen Gruß
Andi
Anzeige
AW: Diagramm einfügen
25.11.2003 16:29:55
GerdW
Ja, aber ich hab keine Lust, deine Mappe nachzubauen.

Gerd
AW: Diagramm einfügen
25.11.2003 16:51:09
Andi
Alles klar, versteh' ich.
Ich hab' nur leider heut Nachmittag so in meinem Quellcode rumgeholzt, dass ich da erstmal einiges rekonstruieren muss; da ich in 10 Minuten einen Termin habe, schaffe ich das heut leider nicht mehr. Bist Du morgen auch wieder da? Ich lade jedenfalls morgen früh mal was hoch.

Schönen Abend noch
Andi
Guten Morgen...
26.11.2003 08:39:33
Andi
da bin ich wieder.
Hab jetzt mal eine Mappe hochgeladen (https://www.herber.de/bbs/user/2166.xls),
die den relevanten Code enthält; alles, was nix mit dem Diagramm zu tun hat, hab' ich mal weggelassen, weil's sonst etwas unübersichtlich geworden wäre.

Der Code verbirgt sich hinter Tabelle 1, weil von dort aus in meinem Programm die komplette Messdaten-Auswertung gesteuert wird. Das Diagramm wird durch Betätigung des CommandButton auf dem Blatt "Darstellung der Werte" erzeugt, die Wertetabelle steht in "Byte-Auswertung".

Ich hoffe, dass das Problem eingermaßen verständlich ist, sonst meld' Dich einfach nochmal.

Schönen Dank schon mal
Andi
Anzeige
Noch offen ...
26.11.2003 16:19:21
Andi
... nur so als Hinweis, falls jemand zufällig noch mal hier unten vorbeischauen sollte.

Schönen Gruß
Andi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige