HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
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
Als Antwort auf diesen Beitrag
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
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.