ich möchte mit einem Makro eine beliebige Powerpointdatei aus dem Explorer von meinem Rechner wählen, um dann später im Verlauf Felder aus der Powerpoint in Excel zu laden und nutzte folgendes Makro, siehe unten. Ich mache das über eine Befehlsschaltfläche von einem Tabellenblatt aus.
Dabei hängt sich das Makro leider immer auf, ich weiß aber nicht warum? Also immer, wenn ich die Excel neu öffne, kommt der Fehler bei Klick auf die Schaltfläche wieder.
Folgendes habe ich herausgefunden:
Wenn man während es hängt den Task-Manager über Alt-Strg-Entf aufruft, dann MS Powerpoint über Task beenden beendet und den Taskmanager wieder schließt, geht das Visual-Basic Fehlermeldungsfenster auf, dort drücke ich Debuggen und dann steht das Makro an der gelben Stelle (bei .Show). Ich schließe dann das Visual-Basic Fenster wieder mit OK.
So: Nun läuft das Makro immer durch und hängt sich nicht mehr auf. Kein Problem mehr. Bis ich wie gesagt excel schließe dann hab ich wieder das gleiche Problem.
Meine Frage: Warum hängt sich das Makro immer beim ersten mal auf? Kann mir jemand eine Lösung bzw. einen anderen Vorschlag schicken, welcher gleich durchläuft/funktioniert.
Makro:
Sub Vorlage_Powerpoint_DB_Eintrag_erzeugen() 'Werte aus PowerPoint Textfeldern Excelfeldern in DB zuweisen
'1 - Variablen deklarieren
Dim wb As Workbook, wks As Worksheet
Dim objPowerpoint As New Powerpoint.Application
Dim Folie As Slide, Textfeld As Shape
Dim PfadExcel As String
Dim PfadPPT As String
'2 - Excelpfad (==> anpassen!)
PfadExcel = "C:\ANALYSE\Dateiname.xlsb" 'Exceldatei
'3 - Eine beliebige Powerpoint im Explorer auswählen und öffen ==> (Vorlage)
Set opjPPTApp = CreateObject("Powerpoint.Application")
Set dlg = opjPPTApp.FileDialog(Type:=msoFileDialogOpen)
With dlg
.FilterIndex = 2
.Show
.Execute
End With
opjPPTApp.Visible = True
PfadPPT = opjPPTApp.ActivePresentation.Path & "\" & opjPPTApp.ActivePresentation.Name
'4 - Ermitteln der Zeile wo eingefügt werden soll
keine Probleme beim restlichen Makro