Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA InsertFromFile macht probleme
#1
Hallo zusammen,
habe neulich von euch Hilfe zum einfügen von Folien in bestehende PP-Datei bekommen.
Das funktionierte auch soweit
Jetzt gibt es einen Fehler, den ich einfach nicht verstehe und hoffe wieder ma auf eure Hilfe
Folgendes
Ich lese eine Dateiliste in eine Listbox und will die markierten in die bestehende PP Datei anhängen
Ich benutze folgenden Code
PHP-Code:
Dim PPTest As PowerPoint.Presentation
    Set PPTest 
PPApp.ActivePresentation
    
'------------------
    FrmPP_extra.Show
    PPPfad = "D:\11\Test"
    For intCurrentRow = 0 To FrmPP_extra.ListBox1.ListCount - 1
        If FrmPP_extra.ListBox1.Selected(intCurrentRow) Then
            PPdat = PPPfad & "\" & FrmPP_extra.ListBox1.List(intCurrentRow, 0)
            PPP.Slides.InsertFromFile (PPdat), PPP.Slides.Count
        End If
    Next
End If 

Bei der Zeile ... InsertFromFile.... bekomme ich den Fehler
"Slides (unknown member): Failed."

Wenn ich aber in die Zeile :
PPP.Slides.InsertFromFile "D:\11\Test\Prä-01.pptx", PPP.Slides.Count
statt der Variablen PPdat den Dateinamen mit Pfad direkt eintrage funktioniert das einwandfei
(Ach ja... der Wert der Variablen hab ich schon gecheckt)
Rätsel über Rätsel

Hat von euch jemand ne Idee, was ich hier falsch mache ?
Hab ich was vergessen?

HHiiiiiiillllfe :3969

Gruß
Klaus
Antworten Top
#2
Hallo Klaus,

da ich vermute, das deine Einträge in der Listbox nicht mit einem Backslash beginnen ändere dies mal

Code:
PPPfad = "D:\11\Test\"   '<------ der Backslash hat gefehlt
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
Hallo Klaus,

und wofür sind die Klammern bei ... (PPdat) ...? Wink

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Wulfi
Antworten Top
#4
Hallo zusammen
vielen Dank erstmal für eure Tipps

@Steffl
hatte ich auch vermutet, war es aber nicht
denn ich stze den \ in der Zeile
PPdat = PPPfad & "\" & FrmPP_extra.ListBox1.List(intCurrentRow, 0)
@Kuwer
keine Ahnung, hab die mal reingemacht . Aber das ist auch nicht die Fehlerquelle
Gruß
Klaus
Antworten Top
#5
Hallo Klaus,

deklariere die Variable erst mal richtig:

Dim PPdat as String

Dann gehe bei dem Fehler auf Debug und gucke im Lokaltfenster, was wirklich in PPdat steht.

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Wulfi
Antworten Top
#6
Hallo Klaus,

wo ist die Variable PPP deklariert? Und welchen Wert enthält sie?
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#7
Hallo zusammen,
sorry musste schnell weg und bin eben erst wieder am Platz
@ Uwe
hab ich getan und da steht
D:\11\Test\Prä-01.pptx
@Stefan
die Variable PPP ist weiter oben im Script bereits deklariert und zwar so
Dim PPP As PowerPoint.Presentation

Ich hoffe, das hilft euch weiter.
Danke noch mal für eure bisherige Mühe

Gruß
Klaus
Antworten Top
#8
Hallo Klaus,

was kommt bei MsgBox Dir(PPdat) ?

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Wulfi
Antworten Top
#9
Hallo Klaus,

(10.10.2014, 22:09)DeBabba schrieb: @Stefan
die Variable PPP ist weiter oben im Script bereits deklariert und zwar so
Dim PPP As PowerPoint.Presentation

wenn ich mal aus den Code aus deinem Startbeitrag verweisen darf

(10.10.2014, 15:29)DeBabba schrieb: Ich benutze folgenden Code
PHP-Code:
Dim PPTest As PowerPoint.Presentation
    Set PPTest 
PPApp.ActivePresentation
    
'------------------
    FrmPP_extra.Show
    PPPfad = "D:\11\Test"
    For intCurrentRow = 0 To FrmPP_extra.ListBox1.ListCount - 1
        If FrmPP_extra.ListBox1.Selected(intCurrentRow) Then
            PPdat = PPPfad & "\" & FrmPP_extra.ListBox1.List(intCurrentRow, 0)
            PPP.Slides.InsertFromFile (PPdat), PPP.Slides.Count
        End If
    Next
End If 

dies ist ja nur ein Teil aus deinem Code und da sehe ich nichts von der Codezeile, nur eine, in der die Variable anders benannt ist. Gut, kann natürlich sein, das es die Deklaration im nicht geposteteten Teil gibt. Aber gibt es da auch eine Zeile Set PPP = ?
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#10
Hallo zusammen,
danke nochmal für eure Mühe
@Stefan
Sorry, mein Fehler. Ich hab im Rahmen von verschiedenen "Ausprobiersachen" PPP + PPtest ausprobiert. Jedoch alles mit dem gleichen Ergebnis
PPP = Powerpoint.Presentation
PPtest = PPApp.activepresentation (PPApp = Powerpoint.Application)

@Uwe
habe die Msgbox hinter der Zeile PPdat = .... eingefügt
Ergebnis --> Laufzeitfehler 52 , Dateiname oder -nummer falsch
Ist aber doch Rätselhaft, da ppdat exakt den Inhalt hat wie der manuell eingetragene Term

Gruß
KLaus
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste