HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv

Beiträge zum Thread: for each datei in dateiliste, Fehler 424:Objekt erforderlich

Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
Excel-Profi - VBA gut
Bona
18.05.2026 11:48:41
for each datei in dateiliste, Fehler 424:Objekt erforderlich
Hallo Excelaner,
ich verstehe nicht, warum nachfolgender Code nicht geht:
Sub Test()

Dim oFile As Object, oFiles As Object
Set oFiles = File_Open("Dateien wauswählen", "D:\KOFFER\Download", "*.pdf", True)
For Each oFile In oFiles
Debug.Print oFile.Name
Next oFile
End Sub

Function File_Open(sPrompt As String, sFolder As String, sFilePattern As String, Optional bMulti As Boolean = False) As Object
'
Dim sType As String, sExt As String
Dim f As Office.FileDialog, sWildcard As String
Set f = Application.FileDialog(msoFileDialogFilePicker)

If Right(sFolder, 1) <> "\" Then sFolder = sFolder & "\"
sExt = LCase(Mid(sFilePattern, InStrRev(sFilePattern, ".", -1, vbTextCompare) + 1))
Select Case sExt
Case "pdf"
sType = "PDF-Datei"
Case "xlsx"
sType = "Excel-Datei"
Case Else
sType = "Text-Datei"
End Select

sWildcard = "*." & sExt

With f
.Title = sPrompt & " auswählen"
.AllowMultiSelect = bMulti
.ButtonName = "Auswählen"
.Filters.Clear
.Filters.Add sType, sWildcard, 1
.InitialFileName = sFolder & sFilePattern
.InitialView = msoFileDialogViewDetails

' Wenn der Benutzer OK klickt
If .Show = -1 Then
' Rückgabe des SelectedItems-Objekts
Set File_Open = .SelectedItems
Else
' Nichts ausgewählt?
Set File_Open = Nothing
End If
End With

Fehler 424: Objekt erforderlich. "oFile" ist aber als Objekt deklariert.
In der Microsoft-Referenz dazu steht, daß "oFile" entweder ein Objekt oder ein Variant sein kann, letzteres funktioniert zwar, ist aber in der nachfolgende Verwendung recht umständlich.

Mit einer for-each-Schleife über ein Verzeichnis funktioniert es mit oFile als Objekt. Aber ich möchte über den Open_File_Dialog nur einzelne Dateien auswählen, nicht alle.
Sub TestFiles()

Dim oFile As Object, oFiles As Object, oFolder As Object
Dim oFS As Object
Set oFS = CreateObject("Scripting.FileSystemObject")

Set oFolder = oFS.GetFolder("D:\KOFFER\Download")
For Each oFile In oFolder.Files
Debug.Print oFile.Name
Next oFile
End Sub

Schon mal Danke im Voraus
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
Excel-Profi - VBA gut
RPP63
18.05.2026 12:28:29
AW: for each datei in dateiliste, Fehler 424:Objekt erforderlich
Moin!
Deine UDF habe ich unverändert gelassen.
Test() habe ich geändert.
of als Zählvariable
Dies funktioniert wie gewünscht ("meinen" Pfad musst Du natürlich anpassen):
Sub Test()

Dim of&, oFiles As Object
Set oFiles = File_Open("Dateien auswählen", "E:\aktueller Stand", "*.xlsx", True)
For of = 1 To oFiles.Count
Debug.Print oFiles(of)
Next of
End Sub

Gruß Ralf
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
Excel-Profi - VBA gut
Bona
18.05.2026 13:30:36
AW: for each datei in dateiliste, Fehler 424:Objekt erforderlich
Hallo RPP63,
da hatte ich wohl die falsche Brille auf, ich war so auf das "for each" fixiert, aber so kann ich wenigstens auf die Eigenschaften der Dateiobjekte zugreifen.
Super, danke
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
Excel-Profi - VBA gut
daniel
18.05.2026 18:52:02
AW: for each datei in dateiliste, Fehler 424:Objekt erforderlich
Hi
der Rückgabewert deiner Funktion (f.SelectedItems) ist im Prinzip ein Array mit Textstrings.
dh die Einzelwerte sind keine Objekte, sondern Texte.
Daher muss die die Schleifenvariable der For-Each-Schleife vom Typ Variant sein.

Sub Test()

Dim oFile As Variant, oFiles As Object
Set oFiles = File_Open("Dateien wauswählen", "C:\Daten\TestDownload", "*.pdf", True)
For Each oFile In oFiles
Debug.Print oFile
Next oFile
End Sub

Gruß Daniel