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

Chartobejekte

Chartobejekte
21.05.2017 10:53:42
Dennis
Hallo zusammen,
mit Hilfe einer Forumsteilnehmerin habe ich folgenden Code zum Kopieren von Chartobjekte von einem Worksheet auf ein anderes Worksheet gestrickt:
For Each chrObj In ws.ChartObjects
lngZaehler = lngZaehler + 1
'On Error Resume Next
strNameChrObj = ws.ChartObjects(lngZaehler).Name
ws.ChartObjects(lngZaehler).Copy
With Worksheets("Export PPT")
.Paste
If lngZaehler > 1 Then
.ChartObjects(lngZaehler).Top = .ChartObjects(lngZaehler - 1).Top + _
.ChartObjects(lngZaehler - 1).Height
.ChartObjects(lngZaehler).Left = .Range("A1").Left
End If
Call Achsenbeschriftung(lngZaehler)
Call Grafik_Größe(lngZaehler)
End With
Next

Der Code hat ein Problem mit der Zeile ws.ChartObjects(lngZaehler).Copy
Er kopiert die entsprechenden Chartobjekte nicht immer. Mit Glück läuft der Code durch, er kann aber auch bei unterschiedlichen Grafiken rausspringen. Manchmal bei Grafik 3, ein anderes Mal bei Grafik 7. Ich kann keine Systematik entdecken, weshalb er das eine Mal die Grafik kopiert, dass andere Mal nicht.
Um das Problem ein zugrenzen, lese ich den Name des jeweiligen Chart raus. Er spricht immer den richtigen Chart an. Ich verstehe nicht weshalb der Code dann nicht den richtigen Chart kopiert und eine Fehlermeldung ausgibt.
Hab jemand eine Idee?

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

Betreff
Datum
Anwender
Anzeige
Mehrere Diagramme kopieren...
21.05.2017 11:07:16
Beverly
Hi,
...und sie im gleichen Atemzug noch zu formatieren fürht oft zu Problemen, denn Excel hat meist nicht ausreichend Zeit für beide Arbeitsschritte, denn es ist im Hintergrund noch mit der Formatierung des vorhergehenden Diagramms beschäftigt obwohl der Code schon zum nächsten Schleifendurchlauf gekommen ist. Eventuell hilft, wenn du vor Next noch die Zeile DoEvents setzt.
Die andere Möglichkeit wäre, zuerst alle Diagramme zu kopieren und anschließend die kopierten Diagramm entsprechend zu formatieren (mit den beiden Makros für die Achsenbeschriftung und die Größe).


Anzeige
AW: Mehrere Diagramme kopieren...
21.05.2017 11:57:41
Dennis
Danke für den Hinweis.
Habe die Schleife jetzt reduziert auf:
For Each chrObj In ws.ChartObjects 'Kopieren der Grafiken
lngZaehler = lngZaehler + 1
'On Error Resume Next
ws.ChartObjects(lngZaehler).Copy
Worksheets("Export PPT").Paste
Next

Aber selbst da springt er raus.
Werde es später mal versuchen, dass er beim kopieren die Chartobjekte über die Namen anspricht. Chart 1, Chart 2 etc.
AW: Mehrere Diagramme kopieren...
21.05.2017 12:04:51
Beverly
Um wie viele Diagramme handelt es sich denn? Ich habe es jetzt mal mit folgendem Code mit 42 Diagrammen versucht - kein Problem, alle 42 werden korrekt kopiert.
    Dim ws As Worksheet
Dim chrObj As ChartObject
Set ws = Worksheets("Tabelle1")
For Each chrObj In ws.ChartObjects 'Kopieren der Grafiken
chrObj.Copy
Worksheets("Export PPT").Paste
Next


Anzeige
AW: Mehrere Diagramme kopieren...
21.05.2017 12:25:12
Dennis
Aktuell sind es 12 Grafiken.
Habe deinen Code Wort für Wort in ein neues Modul geschrieben, immer noch der gleiche Fehler.
Macht es Sinn die Charts nochmal komplett neu aufzusetzen?
AW: Mehrere Diagramme kopieren...
21.05.2017 16:51:46
Beverly
Lade doch mal deine Mappe hoch.


AW: Mehrere Diagramme kopieren...
21.05.2017 17:52:56
Dennis
Kann die Datei leider nicht hochladen, da größer als 300 MB. Habe alle Daten rausgeschmissen und schaffe es nicht unter die Grenze
AW: Mehrere Diagramme kopieren...
21.05.2017 17:57:48
Beverly
Dann kann ich nur noch empfehlen, zu Beginn des Codes
1. die automatische Berechnung auszuschalten
2. die Bildschirmaktualisierung auszuschalten
Mehr fällt mir dazu nicht ein.


Anzeige
Doch och eine weitere Variante...
21.05.2017 18:03:15
Beverly
Eventuell kannst du es auch nach diesem Prinzip versuchen:
    ActiveSheet.ChartObjects.Select
Selection.Copy
Worksheets("Export PPT").Paste

Dazu muss aber selbstverständlich das Tabellenblatt mit den zu kopierenden Diagrammen aktiv sein.


AW: Doch och eine weitere Variante...
21.05.2017 18:38:53
Ansgar
Gibt es eine Möglichkeit den einzelnen Chartobjekten eine Nummer zu
zuordnen?
Ich habe eine anderes Prozedur, die die Grafiken automatisch befüllt. Aber auch die Prozedur hat jetzt Probleme das dritte Chartobjekt zu finden. Habe alle Charts aufsteigend mit Chart 1, Chart 2 etc benannt.
Da scheint der Code aber nicht darauf zuzugreifen.
Anzeige
AW: Doch och eine weitere Variante...
21.05.2017 19:41:47
Beverly
Du musst zwischen dem Diagrammindex (Reihenfolge bei der Erstellung) und dem Diagrammnamen unterscheiden - versuche es einfach mit ChartObjects(Index).


AW: Mehrere Diagramme kopieren...
21.05.2017 18:59:42
Dennis
Hallo Karin,
ich habe es jetzt so gelöst, dass ich die Chartobjekte mit Chartobjekt("Chart" & lngZaehler) anspreche.
Dann funktioniert das Makro bei mehreren Läufen.
Vielen Dank für deine Anmerkungen!
AW: Mehrere Diagramme kopieren...
21.05.2017 19:44:29
Beverly
Hi,
wie schon geschrieben, bei mir funktioniert der von mir gepostete Code problemlos. Hängt möglicherweise mit der Excelversion zusammen, ich benutze Excel2016.


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige