Soweit ich verstehe, laeuft der Code ja unter Excel und nicht unter PP. Diese Funktion ist eigentlich dazu da, aus einer geschlossenen Excel Mappe einen Wert auszulesen. Ist vielleicht etwas kompliziert gemacht. Habs nicht ausprobiert. Aber hier nochmal eine andere, einfachere Variante dazu, vielleicht funktioniert das bei dir.
Damit der Zugriff auf PP von Excel aus funktioniert musst du in den VBE Referenzen das Haekchen setzen bei "Microsoft PowerPoint 16.0 Object Library". Ich hoffe, du weisst wie das geht.
Dann dieser Code und es sollte klappen:
Option Explicit
Public KW As Variant
Sub Zelleauslesen()
Dim pfad As String, datei As String, blatt As String, bezug As String
pfad = "MeinPfadDerExcelTabelle"
datei = "Status Übersichtstabelle.xlsx"
blatt = "copy paste Tabellen"
bezug = "D3"
KW = GetValue(pfad, datei, blatt, bezug)
Call DateispeichernmitKW
End Sub
Private Function GetValue(pfad As String, datei As String, blatt As String, bezug As String)
Dim Rng As Range
With CreateObject("Excel.Application")
With .Workbooks.Open(pfad & "\" & datei).Sheets(blatt)
Set Rng = .Range(bezug)
GetValue = Rng.Value
End With
.Quit
End With
End Function
Sub DateispeichernmitKW()
Dim PPT As PowerPoint.Application
Dim pfad2 As String
Dim dateiname As String
Set PPT = New PowerPoint.Application
pfad2 = "PfadFürDieNeuePPDatei"
dateiname = "speicherversuch"
Application.DisplayAlerts = False
PPT.ActivePresentation.SaveAs Filename:=pfad2 & dateiname & KW & ".pptm"
Application.DisplayAlerts = True
End Sub
Gruss Torsten
|