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
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
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
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
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
Top
#6
Hallo Klaus,

wo ist die Variable PPP deklariert? Und welchen Wert enthält sie?
Gruß Stefan
Win 10 / Office 2016
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
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
Top
#9
Hallo Klaus,

(10.10.2014, 23: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, 16: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
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
Top


Gehe zu:


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