Thema Datum  Von Nutzer Rating
Antwort
Rot Systemfehler H80048240 -2148240
14.01.2019 16:53:31 Karin
NotSolved

Ansicht des Beitrags:
Von:
Karin
Datum:
14.01.2019 16:53:31
Views:
84
Rating: Antwort:
  Ja
Thema:
Systemfehler H80048240 -2148240

Ein liebes Hallo an alle Besucher!

Ich habe folgendes Problem: In nachstehendem Excel-Code kommt ab und an der Fehler H80048240 -2148240 oder auch Laufzeitfehler 1004. Ich habe das Programm etwas vereinfacht und hier angehängt. Das Programm exportiert Tabellenausschnitte in eine Powerpoint-Anwendung aus Excel heraus und zwar drei Ausschnitte auf eine Powerpoint-Seite(slide).
Zum Testen empfiehlt es sich die Spalten A-D einfach mit hochzählenden Nummern zu füllen, damit man im PowerPoint sieht wo genau das Programm ausgestiegen ist. Bitte auch die erste Tabelle nach "Test" umbenennen.

Leider kommt der Fehler nicht immer und auch nicht an der selben Stelle aber in der gleichen Sub . Daher habe ich den Excel - VBA - Code hier angehängt. Vielleicht fällt ja den Profis hier auf was zur Vermeidung des Fehlers geändert werden muss. (Copy oder CopyPicture oder Ähnliches ???).

Der Fehler erscheint auch erst ab der Excel-Version 2010. Dort tritt er selten auf. In der Verison 2016 kommt er öfters und das Programm bricht ab.

Option Explicit
Dim ppApp As PowerPoint.Application
Dim ppPres As PowerPoint.Presentation
Dim ppSlide As PowerPoint.Slide
Public Sub ClearClipboard()
    Sheets("Test").Range("X40").Copy
    Application.CutCopyMode = False
End Sub
Private Sub Zeichne_Tabelle(ppApp As Object, anfang As String, ende As String, top As Integer,  _
left As Integer, seite As Integer)  ', width As Integer, height As Integer)

    Set ppSlide = ppPres.Slides(1)
    Sheets("Test").Activate
    Sheets("Test").Range(anfang + ":" + ende).Select     

    Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture   
    
    ppApp.Visible = msoTrue
    ppApp.ActiveWindow.View.GotoSlide 1
    
    ppSlide.Shapes.Paste.Select
    Call DieseArbeitsmappe.ClearClipboard
    
    ppApp.Visible = msoTrue
    With ppApp.ActiveWindow.Selection.ShapeRange  ' Definition der Position
        .top = top
        .left = left
        .Width = .Width
        .Height = .Height * 1.25
    End With

    Set ppSlide = Nothing
End Sub
Sub ExcelNachPptClick()
        
    ' Variablen vereinbaren
    Dim ws As Worksheet
    Dim i As Integer
    Dim j As Integer
    
    Set ws = Sheets("Test")
    
    ' Allgemein PowerPoint initialisieren
    Set ppApp = CreateObject("Powerpoint.Application")
    Set ppPres = ppApp.Presentations.Add
    
    For i = 1 To 300
    
        ppApp.Visible = msoTrue
        ppPres.Slides.Add 1, ppLayoutBlank
        ppPres.Slides(1).Select
        ppApp.Visible = msoTrue
        ppApp.ActiveWindow.View.GotoSlide 1
    
        j = i + 4
        Call Zeichne_Tabelle(ppApp, "A" & i, "D" & j, 100, 100, i)
        Call Zeichne_Tabelle(ppApp, "A" & i, "D" & j, 200, 100, i)
        Call Zeichne_Tabelle(ppApp, "A" & i, "D" & j, 300, 100, i)
    Next i
    
    Set ppApp = Nothing
    Set ppPres = Nothing
End Sub

Für jede Idee bin ich dankbar.

Viele Grüße
Karin


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst genau und ausführlich
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
  • Bitte markieren Sie Ihre Anfrage als erledigt wenn Ihnen geholfen wurde
Thema: Name: Email:

 
 

Thema Datum  Von Nutzer Rating
Antwort
Rot Systemfehler H80048240 -2148240
14.01.2019 16:53:31 Karin
NotSolved