Siehe auch: | Datei vorhanden ? | 

Autor: Peter Haserodt  --- Aus Excel VBA - Gruppe: Häufige Fragen

Datei 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