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

Makro instabil

Makro instabil
16.01.2015 14:42:14
Remo
Liebe ForumsmitgliederInnen
mittels folgendem VBA-Code kopiere ich mittels Schleife rund 50 Charts aus Excel nach PowerPoint, immer einen Chart pro Slide.
************
PPSlide.Select 'PPT-Slide anwählen
WS_C.ChartObjects(1).Chart.CopyPicture Appearance:=xlScreen, Format:=xlPicture 'Chart kopieren
Set PPShape = PPSlide.Shapes.Paste 'Chart als PPT-Shape-Objekt einfügen
With PPShape
'.Name = Tab_Name
.LockAspectRatio = True
.Height = 300
.Left = 46
.Top = 160
End With
Cht_Hoehe = PPShape.Height
Set PPShape = Nothing
*****************
Dabei habe ich in rund 2 von 3 Fällen kein Problem, das Makro läuft stabil. Immer wieder stürzt der Code in den obigen Zeilen jedoch ab...
Kann mir jemand weiter helfen? An was liegt es, was könnte ich anders schreiben, um die Stabilität zu erhöhen? Könnte es daran liegen, dass das Excel-File, aus welchem ich die Charts beziehe rund 16mb gross ist und das PowerPoint-File, in welches ich die Charts kopiere, schlussendlich rund 12mb gross wird?
Besten Dank für Eure Unterstützung!
Remo

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

Betreff
Datum
Anwender
Anzeige
AW: Makro instabil
16.01.2015 18:41:38
Luschi
Hallo Remo,
schau Dir mal den Befehl 'DoEvents' an. Der ist hilfreich, um bei solchen massenhaften
Objekt-Kopien freiwillig dem Betriebssystem auch Zeit zugeben, seine Arbeit zu machen.
Gruß von Luschi
aus klein-Paris

AW: Makro instabil
20.01.2015 09:31:35
Remo
Besten Dank für Deine Antwort, Luschi!
Obwohl ich DoEvents in die Schleife eingebaut habe, stürzt das Makro nach wie vor fleissig ab...
Hat sonst noch jemand eine Idee?
Viele Dank und Gruss,
Remo

AW: Makro instabil
20.01.2015 15:59:46
fcs
Hallo Remo,
bei mir machte beim Testen sofort die Set-Zeile Probleme.
Ich hab die Zeile jetzt in 2 Zeilen aufgelöst.
Nachfolgende mein Testmakro mit der Anpassung.
Gruß
Franz
Sub Diagramme_nach_PowerPOint()
Dim ppApp As Object 'As PowerPoint.Application '
Dim ppPres As Object  'As PowerPoint.Presentation '
Dim ppSlide  As Object 'As PowerPoint.Slide '
Dim ppShape As Object 'As PowerPoint.Shape '
Dim intSlide As Integer
Dim WS_C As Worksheet
Dim Cht_Hoehe As Double
Set ppApp = VBA.CreateObject("PowerPoint.Application")
ppApp.Visible = True
Set ppPres = ppApp.Presentations.Open( _
Filename:="D:\Test\Präsentation_Master.pptx", untitled:=msoTrue)
intSlide = 1
For Each WS_C In ActiveWorkbook.Worksheets
If WS_C.ChartObjects.Count > 0 Then
intSlide = intSlide + 1
Set ppSlide = ppPres.Slides(intSlide)
ppSlide.Select 'PPT-Slide anwählen
WS_C.ChartObjects(1).Chart.CopyPicture Appearance:=xlScreen, _
Format:=xlPicture 'Chart kopieren
ppSlide.Shapes.Paste 'Chart als PPT-Shape-Objekt einfügen
Set ppShape = ppSlide.Shapes(ppSlide.Shapes.Count)
With ppShape
'.Name = Tab_Name
.LockAspectRatio = True
.Height = 300
.Left = 46
.Top = 160
End With
Cht_Hoehe = ppShape.Height
Set ppShape = Nothing
End If
Next WS_C
End Sub

Anzeige
AW: Makro instabil
21.01.2015 15:19:39
Remo
Hallo Franz,
besten Dank für Deine Rückmeldung!
Das Makro wurde insgesamt stabiler und stürzt in der von Dir erwähnten Set-Zeile nicht mehr ab. Ich habe nun mit Debug-Print rausgefunden, dass es in der folgenden Zeile noch zu Abbrüchen kommt:
******
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
******
Selection bezieht sich auf einen Range in Excel, in dem ich in einer Art Legende erkläre, was der Chart auf dem Slide darstellt: WS_S.Range().Select
Kann mir jemand weiterhelfen, wie ich bei der CopyPicture-Methode, die ebenfalls rund 50 Mal ausgeführt wird, einen Absturz verhindern kann?
Vielen Dank für Eure Unterstützung und Gruss,
Remo

Anzeige
AW: Makro instabil
21.01.2015 16:54:40
fcs
Hallo Remo,
versuche möglichst ohne Select zu arbeiten. Select funktioniert immer nur bei aktuell sichtbaren Objekten. evtl. ist das manchmal ein Problem, da du hier ja zwischen zwei Office-Anwendungen pendelst.
WS_S.Range("B4:D7").CopyPicture Appearance:=xlScreen, Format:=xlPicture

Gruß
Franz

AW: Makro instabil
21.01.2015 17:03:00
Remo
Hallo Franz,
herzlichen Dank für die rasche Antwort - das werde ich so rasch wie möglich testen, komme leider aber erst nächsten Dienstag dazu, Kurzferien;-) Gebe aber auf jeden Fall noch eine Rückmeldung.
Danke und Gruss,
Remo
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige