Clever-Excel-Forum

Normale Version: XLSX Öffnen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Community,

Ich habe folgenden Code und möchte darin Daten aus einer .xlsx in eine PowerPoint übernehmen. 

Kann ich es so einrichten, dass hier die einzige .xlsx Datei im Ordner, in dem sich auch die PowerPoint befindet geöffnet wird, statt vorher den Namen zu definieren? Hat den Hintergrund, dass der Name der .xlsx ständig geändert wird und das Skript nicht angepasst werden muss. 

Sub Refresh22()
Dim i As Integer
Dim a As Integer

i = 2
a = 15

Set Ex = CreateObject("Excel.Application")
Ex.Workbooks.Open FileName:="C:\01\PPP Makro\TEST.xlsx", ReadOnly:=True 'Hier soll statt der TEST.xlsx die einzige .xlsx Datei im Ordner geöffnet werden, unanhängig des Namens
Do
Wert = Ex.Workbooks("TEST.xlsx").Sheets(1).Cells((a), 18)
If Wert = "" Then Exit Do
Wert = Ex.Workbooks("TEST.xlsx").Sheets(1).Cells((a), 18)
ActivePresentation.Slides(6).Shapes(i).TextFrame.TextRange.Text = "" & Wert & ""
a = a + 1
i = i + 1

Loop


End Sub
Hallöchen,

Du könntest mit dem Dir-Befehl den kompletten Namen ermitteln. Eventuell geht das sogar in einem Rutsch
Ex.Workbooks.Open FileName:="C:\01\PPP Makro\" & Dir("C:\01\PPP Makro\*.xlsx"),
Noch ein kürzere Rutsch:

Code:
With getobject("C:\01\PPP Makro\" & dir("C:\01\PPP Makro\*.xl"))
  sn=.sheets(1).cells(15,18).resize(.sheets(1).columns(18).specialcells(2).count)
  .close 0
end with

for j=1 to ubound(sn)
   ActivePresentation.Slides(6).Shapes(j).textframe.textrange.text=sn(j,1)
next