Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1164to1168
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

152 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige