Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1624to1628
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

Chart in zu öffnender Datei erstellen.

Chart in zu öffnender Datei erstellen.
07.06.2018 17:22:09
Norman
Hallo,
ich möchte mit dem Skript eine andere Datei öffnen und in dieser ein Diagramm erstellen. Dafür wollte ich zuerst mal ein ChartObject erstellen, wie in folgender Anleitung: https://www.herber.de/mailing/vb/html/xlobjchartobjects.htm
Zitat aus Link:

Dim ch As ChartObject
Set ch = Worksheets("sheet1").ChartObjects.Add(100, 30, 400, 250)
ch.Chart.ChartWizard source:=Worksheets("sheet1").Range("a1:a20"), _
gallery:=xlLine, title:="New Chart"

da ich allerdings nicht die Macrodatei sondern die andere Datei bearbeiten möchte, hab ich das wie folgt geändert:
        Dim co      As ChartObject
Dim cht     As Chart
Dim sc1     As SeriesCollection
Dim ser1    As Series
Set co = Workbooks(zDatei).Sheets(10).ChartObjects.Add(Range("A5").Left, Range("A5"). _
Top, 500, 300)
co.Name = "F to s Graph"
Set cht = co.Chart
With cht
.HasTitle = True
.HasLegend = True
.ChartTitle.Text = "Kraft-Weg-Diagramm"
Set sc1 = .SeriesCollection
Set ser2 = sc1.NewSeries
With ser1
.Name = "M1"
.XValues = Workbooks(zDatei).Sheets(7).Range(Cells(1, 4), Cells(1, 14000))
.Values = Workbooks(zDatei).Sheets(9).Range(Cells(1, 4), Cells(1, 14000))
.ChartType = xlXYScatterLinesNoMarkers
End With
End With

Er akzeptiert den Pfad nicht und kann ".add" dem Sheets 10 nicht zuordnen.
Woran kann das liegen?
Wie kann ich den Ort des Charts auf die geöffnete Datei, Blatt 10 festlegen?
Vielen Dank schon mal!

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ungeprüft
07.06.2018 17:31:59
Fennek
Hallo,
versuche:

with Workbooks(zDatei).Sheets(10)
Set co = .ChartObjects.Add(.Range("A5").Left, .Range("A5"). _
Top, 500, 300)
end with
also Range jeweil vollständig referenzieren.
mfg
(ungeprüft)
AW: ungeprüft
07.06.2018 17:41:17
Norman
super hat funktioniert!
Vielen Dank!
Ich versehe nur nicht ganz warum ich bei einem einzigen Aufruf, das "with" benötige?
AW: wer schreibt gerne mehrfach?
07.06.2018 17:44:45
Fennek
ansonsten müßte man vor beiden Range den WB.Namen und Sheets(Nr) wiederholen.
AW: wer schreibt gerne mehrfach?
07.06.2018 21:59:29
Norman
ok, ich denke ich hab es halbwegs verstanden.
merci
AW: ungeprüft
07.06.2018 18:17:06
Luschi
Hallo Norman,

warum ich bei einem einzigen Aufruf
Und das genau ist Dein Erkenntnis-Problem:
- 1 ChartObject
- 2 Range-Objekte
die auf die gleiche Tabelle (und damit auf selbe Arbeitsdmappe) verweisen, benötigen eine genaue Referenzierung, und da ist 'With' genau das Richtige!
Gruß von Luschi
aus klein-Paris
Anzeige
AW: ungeprüft
07.06.2018 21:58:25
Norman
ok, ich glaub ich habs soweit halbwegs kapiert.
Immer wenn ich mir den Pfad sparen will und verschieden Aktionen mit dem gleichen Objekt mache oder es mehrmals aufrufe, kann ich das in eine "with" Schleife packen. Damit referenziert jeder Befehl auf das mit "with" ausgewählte Objekt.
In einer With schleife dürfen keine anderen Schleifen laufen oder?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige