Office: S.Wo liegt der Fehler in diesem Makro

Helfe beim Thema S.Wo liegt der Fehler in diesem Makro in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen ;) ich habe hier ein Makro und finde den Fehler nicht. ich hab in Excel im sheet "Start" ein Makro zugewiesen. Dieses soll mir... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von dbrauni, 18. Februar 2009.

  1. S.Wo liegt der Fehler in diesem Makro


    Hallo zusammen ;)

    ich habe hier ein Makro und finde den Fehler nicht.
    ich hab in Excel im sheet "Start" ein Makro zugewiesen.
    Dieses soll mir verschiedene Bereiche nacheinander in eine ppt Datei "demo.ppt"kopieren.
    wenn ich das Makro ausführe kommt dauernd eine Fehlermeldung...also Powerpoint geht auf ,also die Datei demo.ppt und dann kommt der Fehler.

    "Laufzeitfehler '-21471188160(80048240)'
    View.PasteSpecial . invalid request. Clipboard is empty or contains data which may not be paste here

    liegt das an der ppt datei oder an was anderem. ich benutzte office 2003 und powerpoint 2007...es ging schonmal irgendwie....keine ahnung warum jetzt nicht mehr...der Bereich der übergeben werden soll ist beim abbrechen noch makiert (Also Zelle A1-H30)...muss die ppt nen besonderes Format haben oder so?Die ppt Präsentation hat 5 slides........also ich komm hier nicht weiter.
    Hat jemand ne Idee oder sieht den Fehler ?

    Also ich hab jetzt nochmal hin und her probiert und habe folgendes rausgefunden.
    Ich lasse das Makro laufen ,Powerpoint geht auf,makiert den Slide1...und dann hängt das Makro...wenn ich jetzt in die Präsentation klicke und 1mal rechts einfügen...dann fügt er das auch ein...er machts halt nicht automatisch....stimmt da was mit dem Befehl

    .View.PasteSpecial DataType:=ppPasteDefault, link:=msoTrue

    nicht ?

    Gruß Sven


    Hier das Makro

    Sub Excel_Range_an_PPT()
    Dim ppApp As Object
    Dim ppFile As Object
    Dim ppPres As String
    Dim picObj As Object, picName As String
    'Dateiname
    ppPres = "C:\Demo.ppt"
    'Object referenzieren
    Set ppApp = CreateObject("Powerpoint.Application")
    'Bereich kopieren
    Worksheets("Start").Range("A1:H30").Copy
    'Object initialisieren
    ppApp.Visible = msoTrue
    'PPT öffnen
    Set ppFile = ppApp.Presentations.Open(ppPres)
    'Foliennummer angeben
    ppApp.ActivePresentation.Slides(1).Select
    'Bereich einfügen und OLE Verknüpfung herstellen = Link
    With ppApp.ActiveWindow

    .View.PasteSpecial DataType:=ppPasteDefault, link:=msoTrue
    End With
    'Eingefügte Tabelle skalieren
    With ppApp.ActiveWindow.Selection.ShapeRange
    'Oberer Rand 1 cm unter Standardtitel
    .Top = 150
    'Linker Rand 1.5 cm von linkem Folienrand
    .Left = 35
    'Eingefügte Tabelle auf Links und rechts 1,5 cm Rand skalieren
    .Width = 650
    'Bei Bedarf Höhe noch einstellen
    'Hier ist jedoch zu beachten, dass das Object skaliert wird !!!
    'Die Breite verändert sich dann
    '.Height = 300
    End With
    End Sub
     
    dbrauni, 18. Februar 2009
    #1
  2. Marc Aurel Erfahrener User
    Daten in Powerpoint übertragen

    Hallo,

    das Problem habe ich in der Vergangenheit auch schon gehabt.

    Meiner Meinung nach handelt es sich hierbei um einen Bug im Objektmodell von Powerpoint. Aber wie dem auch sei, es gibt ein einfaches Behelfsmittel:

    Man muß den Teil des Quellcodes, der die Daten in Powerpoint einfügt, aus der aufgerufenen Prozedur in Excel herausnehmen und in eine Extra-Private-Sub-Routine einbinden. Konkret:

    Code:
    Sub Excel_Range_an_PPT()
      Dim ppApp As Object
      Dim ppFile As Object
      Dim ppPres As String
      Dim picObj As Object, picName As String
    
      'Dateiname
      ppPres = "C:\Demo.ppt"
      'Object referenzieren
      Set ppApp = CreateObject("Powerpoint.Application")
      'Bereich kopieren
      Worksheets("Start").Range("A1:H30").Copy
      'Object initialisieren
      ppApp.Visible = msoTrue
      'PPT öffnen
      Set ppFile = ppApp.Presentations.Open(ppPres)
      'Foliennummer angeben
      ppApp.ActivePresentation.Slides(1).Select
      
      'Bereich einfügen und OLE Verknüpfung herstellen = Link
      DatenSchreiben ppApp
      
      'Eingefügte Tabelle skalieren
      With ppApp.ActiveWindow.Selection.ShapeRange
      'Oberer Rand 1 cm unter Standardtitel
      .Top = 150
      'Linker Rand 1.5 cm von linkem Folienrand
      .Left = 35
      'Eingefügte Tabelle auf Links und rechts 1,5 cm Rand skalieren
      .Width = 650
      'Bei Bedarf Höhe noch einstellen
      'Hier ist jedoch zu beachten, dass das Object skaliert wird !!!
      'Die Breite verändert sich dann
      '.Height = 300
      End With
    End Sub
    
    Private Sub DatenSchreiben(ppApp2 as Object)
      ppApp2.ActiveWindow.View.PasteSpecial DataType:=ppPasteDefault, link:=msoTrue
    End Sub
    Und das war's.

    Wie gesagt, außer der Vermutung, daß es sich hierbei um einen Bug handelt, kann ich leider auch keine sinnvolle Erklärung dazu abgeben, weshalb das Herauslösen des Schreibbefehls zu keinem Fehler mehr führt. Aber was soll's? Hauptsache es funktioniert.

    Grüße
    M.A.
     
    Marc Aurel, 19. Februar 2009
    #2
  3. Servus

    Leider funktioniert das irgendwie nicht richtig...bleibt noch an der selben Stelle hängen.
    Hast du es mal bei dir versucht , ob es läuft?
    Danke für die Info.....bin blutiger Anfänger was vba betrifft.....hab das schon nachvollziehen können aber vielleicht hat ja noch jemand ne Idee oder Tip.
    DAnke Euch :)
     
    dbrauni, 20. Februar 2009
    #3
  4. Marc Aurel Erfahrener User

    S.Wo liegt der Fehler in diesem Makro

    Problem mit Powerpoint und VBA

    Hallo,

    ich habe es in der Tat noch einmal getestet und bei mir funktioniert es jetzt.

    Wenn das so nicht klappt wird es wohl leider schwierig, auf die Ferne zu helfen.

    Trotzdem noch ein Versuch:

    Wo liegt denn der Code? In einem eigenen Modul oder in einem der Ereignis-Editoren, z.B. von der Tabelle "Start"?

    Dann ist noch ein Ansatz, daß Du einmal in die Verweise schaust (im VBA-Editor im Menü Extras zu finden).

    Dort sollten zumindest vier Einträge mit einem Häkchen versehen sein:

    Visual Basic for Applications, MS Excel 11.0 Object Library, OLE Automation und Microsoft Office 11.0 Object Library.

    Manchmal hilft es auch etwas, die Häkchen einmal herauszunehmen und wieder einzutragen.

    Versuch das einmal. Falls es nicht hilft, müßte ich erst einmal ein bißchen recherchieren, da ich dann auswendig auch nicht weiter weiß.

    Grüße
    M.A.
     
    Marc Aurel, 20. Februar 2009
    #4
  5. DAAAAAAAAANKE

    ALSO ich hab nochmal rumprobiert und es scheint wohl and der Art und Weise zu liegen, wie ich die Powerpointdatei gestalte. Jetzt geht es irgendwie....fragt mich nicht warum....hab einfach ne PPT datei erstellt und die genau Anzahl slides die ich brauche...und gespeichert...danach gings wieder.....komisch aber funktioniert jetzt.
    Danke nochmalfür die Hilfe.
    Gruß dbrauni
     
    dbrauni, 25. Februar 2009
    #5
  6. Ecxel VBA View.PasteSpecial : Invalid DataType

    He Leute,

    hatte das gleiche verd**** Problem und hier meine Loesung:

    - Makro ausfuehren, bis man an die Fehlerstelle kommt, dann in Debug-Mode gehen
    - im PowerPoint manuell das OLE-Object einfuegen
    - den VBA-Code im Schrittmodus (F8) bis zum Schluss ausfuehren
    - PowerPoint-Datei speichern und schliessen
    - Makro nochmals ausfuehren und jetzt muesste es duchlaufen bis zum Schluss :)
    - jetzt kann man alle eingefuegten Objekte wieder loeschen und der Fehler ist verschwunden....

    So ging es zumindest bei mir nach ewigen Hin-und-Her probieren und dabei bin ich VBA-Neuling ;)

    Gruesse, Lars
     
    lindnerlars, 3. Oktober 2011
    #6
Thema:

S.Wo liegt der Fehler in diesem Makro

Die Seite wird geladen...
  1. S.Wo liegt der Fehler in diesem Makro - Similar Threads - Fehler Makro

  2. Hilfe benötigt bei Fehler in Makro

    in Microsoft Excel Hilfe
    Hilfe benötigt bei Fehler in Makro: Guten Tag erstmal. Direkt vorweg, Excel ist absolutes Neuland für mich. Habe jetzt nur versucht mich rein zu finden um einen Fehler zu finden, da derjenige, der die Makros vor einigen Jahren...
  3. Makro Problem nach Wörtern filtern und Zeilen löschen

    in Microsoft Excel Hilfe
    Makro Problem nach Wörtern filtern und Zeilen löschen: Hallo zusammen! Ich habe ein Makro, dass ich erweitern möchte. Dabei soll in den Daten in der ersten Zeile ein Filter aktiviert werden und alle Datenzeilen löschen, die in Spalte 10 eines von 4...
  4. Zu viele Leerzeichen nach Makroanwendung

    in Microsoft Excel Hilfe
    Zu viele Leerzeichen nach Makroanwendung: Hi zusammen, ich habe da ein Problem: Zu viele Leerzeichen in den Zellen (wo zuvor keine waren) nach der Anwendung eines aufgezeichneten Makros. Kann jemand helfen das Problem zu lösen? Die...
  5. Langsames Makro

    in Microsoft Excel Hilfe
    Langsames Makro: Hallo ihr Lieben, habe ein Makro, welches zwar gut funktioniert, aber sehr langsam ist. Die üblichen Standards wie Screenupdate ausschalten habe ich bereits eingefügt. Ich habe in einem Blog...
  6. Makro Fehler

    in Microsoft Excel Hilfe
    Makro Fehler: Hallo, ich habe ein Makro erstellt, dass leider nicht richtig funktioniert. Hoffe mir kann jemand behilflich sein. Folgendes sollte das Makros eigentlich tun: Seitenlayout-...
  7. Syntax Fehler nach Makro Aufnahme trotz funktionierender Wenn-Formel

    in Microsoft Excel Hilfe
    Syntax Fehler nach Makro Aufnahme trotz funktionierender Wenn-Formel: Hallo alle zusammen, bin neu hier und hoofe nun das Ihr einen Rat habt. Ich habe eine "Wenn-Funktion" erstellt die in der Mappe auch funktioniert. Nachdem ich es als Makro aufgezeichnet habe...
  8. excel 2010 - vba Einstellung "Unterbrechen bei Fehlern" via Makro ändern

    in Microsoft Excel Hilfe
    excel 2010 - vba Einstellung "Unterbrechen bei Fehlern" via Makro ändern: Hallo Forum, momentan beschäftige ich mich mit eigener Fehlerbehandlung in Makros. Dabei bin ich auf folgende Fragestellung gestossen: Wenn in einer Firma Makros auf mehreren Rechnern benutzt...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden