Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Fehler 53: Datei nicht gefunden

Fehler 53: Datei nicht gefunden
Frank
Hallo zusammen.
Es ist schon sehr merkwürdig.
Mit Hilfe eines kurzen Makros und einer dazugehörigen Funktion überprüfe ich, ob bestimmte Dateien im Netzwerk von einem beliebigen User geöffnet sind oder nicht.
Hier meine verwendeten Makros:
Sub TestFileOpened()
' Prüfen, ob die Datei bereits geöffnet ist.
If IsFileOpen("filename.xls") Then
' Meldung anzeigen, die angibt, dass die Datei bereits
' verwendet wird.
MsgBox "Datei bereits geöffnet!"
' Hier Code für den Fall hinzufügen, dass die Datei von einem
' anderen Benutzer geöffnet ist.
Else
' Meldung anzeigen, die angibt, dass die Datei nicht geöffnet ist.
MsgBox "Datei nicht geöffnet!"
' Datei in Microsoft Excel öffnen.
Workbooks.Open "filename.xls"
' Hier Code für den Fall hinzufügen, dass die Datei NICHT von
' von einem anderen Benutzer geöffnet ist.
End If
End Sub
und
Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer
On Error Resume Next   ' Fehlerprüfung deaktivieren.
filenum = FreeFile()   ' Freie Dateinummer besorgen.
' Versuchen, die Datei zu öffnen und zu sperren.
Open filename For Input Lock Read As #filenum
Close filenum          ' Datei schließen.
errnum = Err           ' Fehlernummer speichern.
On Error GoTo 0        ' Fehlerprüfung reaktivieren.
' Überprüfen, welcher Fehler aufgetreten ist.
Select Case errnum
' Kein Fehler.
' Datei NICHT durch anderen Benutzer geöffnet.
Case 0
IsFileOpen = False
' Fehlernummer für "Zugriff verweigert."
' Datei bereits durch anderen Benutzer geöffnet.
Case 70
IsFileOpen = True
' Ein weiterer Fehler ist aufgetreten.
Case Else
Error errnum
End Select
End Function
Das Bizarre ist, daß die Ausführung des Makros an einem Tag funktioniert, ich aber am nächsten Tag sofort die Meldung "Fehler 53" bzw. "Datei nicht gefunden" bekomme. Ich kann keine Logik erkennen, warum es mal klappt und mal nicht...Könnt Ihr mir einen Tipp geben?
Vielen Dank,
Frank
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fehler 53: Datei nicht gefunden
16.07.2010 13:58:43
fcs
Hallo Frank,
in deinem Makro erfolgt die Suche der Datei immer im gerade aktiven Verzeichnis.
Weicht dieses vom Verzeichnis der Datei ab, die du überprüfen willst, dann tritt der Fehler auf.
Damit die Suche korrekt erfolgt, muss du den Dateinamen inklusive Pfad an die Function übergeben.
Außerdem solltest du die Fehlerbehandlung so umbauen, dass alle 3 Zustände als Wert an die Hauproutine zurückgegeben werden, damit du auch den Fehler verarbeiten kannst.
Gruß
Franz
Sub TestFileOpened()
Dim sPfad As String, sDatei As String
sPfad = ThisWorkbook.Path & Application.PathSeparator
'    sPfad = "C:\Lokale Daten\Test" & Application.PathSeparator
sDatei = "filename.xls"
'    sDatei = "Mappe1.xls"
' Prüfen, ob die Datei bereits geöffnet ist.
Select Case IsFileOpen(sPfad & sDatei)
Case 1
' Meldung anzeigen, die angibt, dass die Datei bereits
' verwendet wird.
MsgBox "Datei bereits geöffnet!"
' Hier Code für den Fall hinzufügen, dass die Datei von einem
' anderen Benutzer geöffnet ist.
Case 0
' Meldung anzeigen, die angibt, dass die Datei nicht geöffnet ist.
MsgBox "Datei nicht geöffnet!"
' Datei in Microsoft Excel öffnen.
Workbooks.Open sPfad & sDatei
' Hier Code für den Fall hinzufügen, dass die Datei NICHT von
' von einem anderen Benutzer geöffnet ist.
Case 2
MsgBox "Datei """ & sDatei & """ nicht gefunden!" & vbNewLine _
& "Durchsuchtes Verzeichnis: " & VBA.CurDir
End Select
End Sub
Function IsFileOpen(filename As String) As Integer
Dim filenum As Integer
On Error GoTo Fehler   ' Fehlerprüfung deaktivieren.
filenum = FreeFile()   ' Freie Dateinummer besorgen.
' Versuchen, die Datei zu öffnen und zu sperren.
Open filename For Input Lock Read As #filenum
Close filenum          ' Datei schließen.
Fehler:
' Überprüfen, welcher Fehler aufgetreten ist.
With Err
Select Case .Number
' Datei NICHT durch anderen Benutzer geöffnet.
Case 0  ' Kein Fehler - Datei ist nicht geöffnet
IsFileOpen = 0
' Fehlernummer für "Zugriff verweigert."
' Datei bereits durch anderen Benutzer geöffnet.
Case 70 'Datei ist  geöffnet
IsFileOpen = 1
' Ein weiterer Fehler ist aufgetreten.
Case Else
'          MsgBox "Fehler-Nr: " & .Number & vbNewLine & .Description
IsFileOpen = 2
End Select
End With
End Function

Anzeige
AW: Fehler 53: Datei nicht gefunden
19.07.2010 08:17:38
Frank
Hallo Franz,
den Pfad habe ich meinem Original-Quelltext mit eingebaut. Hatte ihn nur hier der Übersicht halber weggelassen. Wie gesagt: das Makro läuft "manchmal" und dann wieder nicht....Gibt es noch einen anderen Ansatz?
Vielen Dank,
Frank
;
Anzeige
Anzeige

Infobox / Tutorial

Fehler 53: Datei nicht gefunden in Excel beheben


Schritt-für-Schritt-Anleitung

  1. Überprüfe den Dateipfad: Stelle sicher, dass der Pfad zur Datei korrekt ist. Der laufzeitfehler 53 tritt häufig auf, wenn das Makro die Datei nicht im aktiven Verzeichnis finden kann. Um den Pfad zu überprüfen, kannst du folgenden Code verwenden:

    Dim sPfad As String
    sPfad = ThisWorkbook.Path & Application.PathSeparator
  2. Füge den vollständigen Pfad in die Funktion ein: Modifiziere die Funktion IsFileOpen, um den vollständigen Pfad zur Datei zu verwenden. Beispiel:

    Select Case IsFileOpen(sPfad & sDatei)
  3. Fehlerbehandlung implementieren: Achte darauf, dass die Fehlerbehandlung alle möglichen Fehlerzustände berücksichtigt. Dies hilft, den excel laufzeitfehler 53 effizient zu diagnostizieren.

  4. Testen: Führe das Makro aus und überprüfe, ob die Datei jetzt korrekt geöffnet wird. Sollte der Fehler weiterhin auftreten, teste den Zugriff auf die Datei von einem anderen Netzwerkgerät aus.


Häufige Fehler und Lösungen

  • Fehler 53: Datei nicht gefunden: Dies passiert oft, wenn der Pfad zur Datei nicht korrekt angegeben ist. Stelle sicher, dass du den vollen Pfad zur Datei verwendest.

  • Zugriff verweigert (Fehler 70): Wenn dieser Fehler auftritt, bedeutet dies, dass die Datei bereits von einem anderen Benutzer geöffnet ist. Überprüfe dies, bevor du versuchst, die Datei zu öffnen.

  • Datei wird nicht gefunden: Wenn die Datei an einem anderen Speicherort liegt, kann dies auch einen laufzeitfehler 53 datei nicht gefunden auslösen. Überprüfe den Speicherort der Datei und passe den Pfad an.


Alternative Methoden

Wenn das oben genannte Makro weiterhin Probleme verursacht, kannst du auch die folgenden Alternativen ausprobieren:

  1. Verwendung von Dir: Mit der Dir-Funktion kannst du überprüfen, ob die Datei vorhanden ist, bevor du versuchst, sie zu öffnen:

    If Dir(sPfad & sDatei) = "" Then
       MsgBox "Datei nicht gefunden!"
    Else
       Workbooks.Open sPfad & sDatei
    End If
  2. Error Handling mit On Error: Implementiere eine umfassendere Fehlerbehandlung, um spezifische Fehler zu identifizieren und entsprechende Meldungen auszugeben.


Praktische Beispiele

Hier ist ein einfaches Beispiel, um den laufzeitfehler 53 zu vermeiden:

Sub TestFileOpened()
    Dim sPfad As String, sDatei As String
    sPfad = "C:\Dein\Pfad\Hier\"  ' Beispielpfad
    sDatei = "filename.xls"

    If Dir(sPfad & sDatei) = "" Then
        MsgBox "Datei """ & sDatei & """ nicht gefunden!"
    Else
        Workbooks.Open sPfad & sDatei
    End If
End Sub

Tipps für Profis

  • Verwende vollständige Pfade: Um Probleme mit dem netzwerkfehler 53 zu vermeiden, nutze immer den vollständigen Pfad zur Datei.

  • Testumgebungen: Teste dein Makro in einer kontrollierten Umgebung, um sicherzustellen, dass alle möglichen Fehlerquellen ausgeschlossen sind.

  • Protokolliere Fehler: Implementiere eine Methode zur Protokollierung von Fehlern, sodass du im Nachhinein sehen kannst, wo das Problem lag.


FAQ: Häufige Fragen

1. Was ist der Laufzeitfehler 53?
Der Laufzeitfehler 53 bedeutet, dass eine Datei nicht gefunden wurde. Dies geschieht häufig, wenn der Pfad zur Datei inkorrekt ist.

2. Wie kann ich den Fehler beheben?
Überprüfe den Pfad zur Datei und stelle sicher, dass die Datei existiert. Du kannst auch die Dir-Funktion verwenden, um die Existenz der Datei zu bestätigen, bevor du versuchst, sie zu öffnen.

3. Gibt es eine Möglichkeit, die Datei zu finden, wenn ich den Pfad nicht kenne?
Ja, du kannst eine Dateisuche in Excel durchführen oder eine Funktion implementieren, die nach der Datei im aktuellen Verzeichnis sucht.

4. Was passiert, wenn die Datei von einem anderen Benutzer geöffnet ist?
Wenn die Datei von einem anderen Benutzer geöffnet ist, erhältst du einen Fehler 70 (Zugriff verweigert). Stelle sicher, dass du die Datei nur öffnest, wenn sie nicht verwendet wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige