Autor: Peter Haserodt --- Aus Excel VBA - Gruppe:
Häufige FragenDatei geöffnet ?
Autor: Peter Haserodt - Erstellt: -- - Letzte Revision: --
Prüfen ob eine Datei schon geöffnet ist
Dazu gibt viele Konstrukte auf dem Markt
(Zum Beispiel alle Arbeitsmappen durchlaufen)
Aber wer kann mir denn sagen ob die Datei nicht in einer anderen Excel Instanz geöffnet ist oder was weiß ich.
(Wenn ich alle Arbeitsmappen durchlaufe und die Mappe nicht finde, heißt dies noch lange nicht,
dass sie nicht irgendwo anders geöffnet ist!)
Hinweis:
Dies unterscheidet sich ganz gravierend von der Frage ob in meiner Excel Instanz eine bestimmte Mappe geöffnet ist.
In diesem Fall muss ich tatsächlich die Mappen in meiner Application überprüfen, aber auch hier sei ein Tipp gestattet: Nicht auf einen Mappennamen überprüfen, sondern immer auf Pfad + Mappennamen.
Und man darf niemals den Schluß ziehen, dass wenn ich sie in meiner App nicht finde, dass sie nicht geöffnet ist.
Eine feine Möglichkeit meiner Meinung nach für die allgemeine Überprüfung ist nachfolgender Konstrukt.
(Die Idee ist nicht auf meinem Mist gewachsen)
Selbstverständlich sollte man vorher überprüfen ob man auf die Datei auch zugreifen kann.
Siehe oben.
Wichtiger Hinweis: Bei z.B. Shared Workbooks oder Mappen die schreibgeschützt geöffnet sind, ist dies auch nicht zuverlässig!!!
Option Explicit
Public Sub TestePfad()
Dim sPfad As String
sPfad = "C:\Eigene Dateien\Test.xls" ' Pfad ändern für Tests
MsgBox DateiGeoeffnet(sPfad)
End Sub
Private Function DateiGeoeffnet(DerPfad As String) As Boolean
' Bei shared Workbooks, schreibgeschützten Mappen o.ä.. kann dies auch ein falsch zurückgeben.
On Error Resume Next
Open DerPfad For Binary Access Read Lock Read As #1
Close #1
If Err.Number <> 0 Then
DateiGeoeffnet = True
Err.Clear
End If
End Function
Weitere Artikel der Gruppe: Häufige Fragen Aus Excel VBA
Nach oben