Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Laufzeitfehler 2147188160 (80048240)

Forumthread: Laufzeitfehler 2147188160 (80048240)

Laufzeitfehler 2147188160 (80048240)
23.01.2015 13:04:09
Patrick
Hallo,
langsam verzweifle ich. Ich habe vor einigen Wochen einen vba Code geschrieben, der bis letzte Woche noch einwandfrei funktionier hat. Seit letzten Freitag tut er das nicht mehr, obwohl definitiv nichts am Code geändert wurde.
Die Fehlermeldung lautet:
Laufzeitfehler 2147188160 (80048240)
View (unknown member): Invalid request: The specified data type is unavailable
Der Fehler tritt immer auf wenn folgender Befehl versucht wird auszuführen:
pptPresentation.Application.ActiveWindow.View.PasteSpecial DataType:=ppPasteOLEObject
ich kann mir das wirklich nicht erklären... Hier nochmal der gesamte Code:
Option Explicit
Sub exportExc2PP()
'############################################################################################### _
'version:                           1.0
'author:                            Patrick Tepass
'date:                              11/17/2014
'changes that needs to be done:     - User Interaction for folder path
'                                   - create manual: How to use this program
'                                   - close all excel and PP
'############################################################################################### _
'INPUT PARAMETER
'folder with Excel Sheets from database
Dim pathExcFold As String
pathExcFold = "H:\ExcExports"
'folder with PowerPoint Template in .pptx
Dim pathPP As String
pathPP = "H:\Export"
'############################################################################################### _
'variables
Dim fs As Object
Dim fVerz As Object
Dim fDatei As Object
Dim fdateien As Object
Dim strDat As String
Dim i As Integer
i = 0
'create full path of PowerPoint Template
pathPP = pathPP & "\" & "Presentation_Template.pptx"
'Count files in folder
Dim fso As Object
Dim numb As Integer
Set fso = CreateObject("Scripting.FileSystemObject")
numb = fso.GetFolder(pathExcFold).Files.Count
Set fso = Nothing
Dim T() As String
ReDim Preserve T(1 To numb)
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim j As Integer
'Create an instance of the FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Get the folder object
Set objFolder = objFSO.GetFolder("H:\VA_VE\Projects\All_VM_Europe\Database\Export\ExcExports")
j = 1
'loops through each file in the directory and prints their names and path
For Each objFile In objFolder.Files
'print file path
'    Cells(i + 1, 2) = objFile.Path
T(j) = objFile.Path
j = j + 1
Next objFile
'open TRW template and set to active presentation
Dim pptApp As PowerPoint.Application
Dim pptSlide As PowerPoint.Slide
Dim pptPresentation As PowerPoint.Presentation
Set pptApp = Nothing
Set pptApp = CreateObject("PowerPoint.Application")
With pptApp
.Visible = True
.WindowState = ppWindowMaximized
.Activate
If pathPP  "" Then
.Presentations.Open Filename:=pathPP, ReadOnly:=msoFalse
Else
.Presentations.Add
End If
Set pptPresentation = .ActivePresentation
End With
'start loop 2   #############################################
Dim k As Integer
Dim newFilename As String
For k = 1 To numb
Workbooks.Open T(k)
Range("B5:F39").Select
Selection.Copy
'create new slides, paste content and determine size & postition
Set pptSlide = pptPresentation.Slides.AddSlide(pptPresentation.Slides.Count + 1,  _
pptPresentation.SlideMaster.CustomLayouts(2))
pptSlide.Select
pptPresentation.Application.ActiveWindow.View.PasteSpecial DataType:= _
ppPasteOLEObject
With pptPresentation.Application.ActiveWindow.Selection.ShapeRange
.Left = 25
.Top = 80
.Width = 1000
.Height = 420
End With
'set title
Dim titleStr As String
titleStr = Range("B1").Value
pptSlide.Shapes(3).TextFrame.TextRange.Text = titleStr
'clear clipboard and close workbook
Application.CutCopyMode = False
ActiveWorkbook.Close False
Next k
'end loop 2     #############################################
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 2147188160 (80048240)
23.01.2015 13:06:09
Klaus
Hi Patrick,
wurde letzte Woche vielleicht ein Office-Update eingespielt? Aktuell gibt es eine ganze Menge unerklärlicher Fehlermeldungen, die sich auf ein fehlerhaftes Update seitens MS zurück führen lassen.
Grüße,
Klaus M.vdT.

AW: Laufzeitfehler 2147188160 (80048240)
23.01.2015 13:11:03
Patrick
Hi Klaus,
das war auch meine erste Vermutung.
Habe jedoch schon mit unserer IT-Abteilung gesprochen. Laut der IT wurde im fraglichen Zeitraum weder ein Windows, noch ein Office Update gefahren.
Google kennt das Problem bereits auch, aber leider hat keiner der genannten Vorschläge zur Lösung der Problems geführt.

Anzeige
AW: Laufzeitfehler 2147188160 (80048240)
23.01.2015 13:14:27
Klaus
Patrik,
wenn deine Anfrage nicht gelöst wurde dann lass doch den Haken bei "Frage noch offen" drin - sonst hilft dir keiner mehr!
2147188160 in die Herber-Forum-Recherche eingegeben hast du bereits? Da gibt es ein paar Funde.
Grüße,
Klaus M.vdT.

AW: Laufzeitfehler 2147188160 (80048240)
24.01.2015 14:34:51
Patrick
das koriose ist auch, das andere user z.T. ähnliche fehlerbeschreibungen melden. d.h. der code funktionierte und irgendwann plötzlich nicht mehr

Anzeige
evtl. fehlerhaftes Office Patch?
24.01.2015 23:57:39
Andy
Hallo Patrick,
ich hatte in der letzten Woche ein ähnliches Problem, dass mein Script nicht mehr lief, obwohl nichts verändert worden ist. Im meinem Fall lag es daran, dass Microsoft ein fehlerhaftes Office Patch verteilt hat, dass über die Windows Updatefunktion automatisch installiert worden ist.
Abhilfe in meinem Fall war, dass ich den Ordner "Excel8.0" im Ordner %temp% gelöscht habe.
Gruß Andy
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Laufzeitfehler 2147188160 (80048240) in VBA lösen


Schritt-für-Schritt-Anleitung

  1. Identifiziere den Fehler: Der Laufzeitfehler 2147188160 (80048240) tritt oft auf, wenn ein bestimmter Datentyp nicht verfügbar ist. In deinem Fall scheint der Fehler beim Befehl pptPresentation.Application.ActiveWindow.View.PasteSpecial DataType:=ppPasteOLEObject aufzutreten.

  2. Überprüfe Office-Updates: Stelle sicher, dass keine fehlerhaften Updates installiert wurden. Oft sind solche Fehler auf ein nicht funktionierendes Office-Update zurückzuführen.

  3. Lösche temporäre Dateien: Manchmal hilft es, den Ordner "Excel8.0" im %temp%-Verzeichnis zu löschen, um den Fehler zu beheben.

  4. Prüfe den Code: Überprüfe, ob der Code korrekt ist und keine unerwarteten Änderungen aufgetreten sind. Achte darauf, dass alle benötigten Objekte korrekt initialisiert sind.

  5. Führe den Code in Teilen aus: Wenn der Fehler weiterhin besteht, führe den Code schrittweise aus, um genau zu bestimmen, an welcher Stelle der Fehler auftritt.


Häufige Fehler und Lösungen

  • Laufzeitfehler -2147319767: Dieser Fehler kann auftreten, wenn ein Objekt nicht korrekt referenziert wird. Überprüfe, ob alle Objekte wie pptApp, pptSlide, und pptPresentation korrekt initialisiert sind.

  • Laufzeitfehler -2147467259: Dieser Fehler deutet oft auf ein Problem mit den Shapes in PowerPoint hin. Stelle sicher, dass die Shapes, die du ansprechen möchtest, existieren und korrekt referenziert sind.

  • Invalid request: Shapes (unknown member): Dieser Fehler tritt auf, wenn du versuchst, auf ein Shape zuzugreifen, das nicht existiert oder nicht korrekt geladen wurde. Überprüfe, ob die Folien, auf denen du arbeitest, die erwarteten Shapes enthalten.


Alternative Methoden

  1. Verwendung von Paste anstelle von PasteSpecial: Manchmal kann ein einfacher Wechsel des Befehls helfen. Probiere pptPresentation.Application.ActiveWindow.View.Paste statt PasteSpecial.

  2. Direkte Werte zuweisen: Anstatt Objekte zu kopieren und einzufügen, kannst du die Werte direkt zuweisen, indem du die Zellenwerte in PowerPoint-Objekte überträgst.

  3. Verwendung von Screenshot-Methoden: Wenn der Fehler weiterhin besteht, könnte ein Screenshot der Excel-Daten eine temporäre Lösung sein.


Praktische Beispiele

Hier ist ein Beispiel, wie du den Code anpassen könntest, um direkt Werte zuzuweisen:

'Anstatt zu kopieren und einzufügen
pptSlide.Shapes(3).TextFrame.TextRange.Text = Range("B1").Value

Wenn du Shapes in der Folie referenzierst, stelle sicher, dass sie existieren:

If pptSlide.Shapes.Count > 2 Then
    pptSlide.Shapes(3).TextFrame.TextRange.Text = titleStr
Else
    MsgBox "Das Shape wurde nicht gefunden!"
End If

Tipps für Profis

  • Setze Fehlerbehandlung ein: Verwende On Error Resume Next, um die Ausführung bei einem Fehler fortzusetzen, und überprüfe dann mit If Err.Number <> 0 Then, was schiefgelaufen ist. Dies kann helfen, den spezifischen Fehler zu identifizieren.

  • Dokumentiere Änderungen: Halte alle Änderungen am Code und an den Einstellungen in Excel und PowerPoint fest, um zukünftige Probleme leichter nachvollziehen zu können.

  • Teste in einer isolierten Umgebung: Erstelle eine Testkopie deiner Präsentation und deines Excel-Dokuments, um sicherzustellen, dass der Fehler nicht durch andere Elemente in deiner Umgebung verursacht wird.


FAQ: Häufige Fragen

1. Was kann ich tun, wenn mein Code plötzlich nicht mehr funktioniert? Überprüfe zuerst, ob es kürzlich Updates für Office gab. Manchmal können solche Updates unerwartete Fehler verursachen.

2. Wie kann ich den Laufzeitfehler 2147188160 beheben? Versuche, temporäre Dateien zu löschen und den Code Schritt für Schritt auszuführen, um den genauen Fehlerort zu identifizieren.

3. Welche Rolle spielen Shapes in diesem Kontext? Shapes sind Objekte in PowerPoint, die du bearbeiten oder referenzieren möchtest. Ein Fehler beim Zugriff auf diese kann zu Laufzeitfehlern führen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige