Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
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

Abfrage ob Datei in anderem Excel-Prozess geöffnet

Abfrage ob Datei in anderem Excel-Prozess geöffnet
13.11.2019 09:10:08
Jürgen
Hallo zusammen,
nach etwas Recherche habe ich unten folgende Funktion gefunden mit der ich abfragen kann ob eine Datei geöfffnet ist oder nicht.
--------------------------------------
Function IsWorkbookOpen(strWB As String) As Boolean
On Error Resume Next
IsWorkbookOpen = Not Workbooks(strWB) Is Nothing
End Function

--------------------------------------
Sub CommandButton2_Click()
If IsWorkbookOpen(sDatei) Then 'Funktion in Modul1 definiert
MsgBox "Die zugehörige Datei " & sDatei & " ist geöffnet!" & vbCrLf & "Zur Übertragung  _
der Daten muss diese geschlossen werden!" _
& vbCrLf & " " & vbCrLf & "Übertragungsprozedur wird beendet", _
16, "   Hinweis für " & Application.UserName
Exit Sub
End If
End Sub

--------------------------------------
Dies funktioniert so auch!
ABER nur wenn die Datei im gleichen Excelprozess geöffnet ist. Jedoch habe ich das Problem das die betreffende Datei immer in einem eigenen Excel-Prozess auf dem selben Rechener (Das Programm das die Datei Aufruft macht das einfach so und ist nicht zu ändern) oder über das Netztwerk geöffnet wird.
Nach langer Recherche finde ich leider nichts wie ich dann prüfen kann ob die Datei geöffnet ist. Meine VBA Kentnisse sind weitgehend auch sehr bescheiden.
Kann mir da jemand dabei helfen?

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfrage ob Datei in anderem Excel-Prozess geöffnet
13.11.2019 10:01:05
Werner
Hallo Jürgen,
so:
Sub CommandButton2_Click()
Dim strFilePath As String, boOpen As Boolean
'Pfad zur Datei die auf offen/geschlossen geprüft wird anpassen
strFilePath = "C:\Ordner1\Unterordner1\DeineDatei.xlsx"
On Error Resume Next
Open strFilePath For Binary Access Read Lock Read As #1
Close #1
boOpen = Err.Number  0
Err.Clear
MsgBox boOpen
If boOpen Then 'Datei ist offen
MsgBox "Die zugehörige Datei " & sDatei & " ist geöffnet!" & vbCrLf _
& "Zur Übertragung der Daten muss diese geschlossen werden!" _
& vbCrLf & " " & vbCrLf & "Übertragungsprozedur wird beendet", _
16, "   Hinweis für " & Application.UserName
Exit Sub
End If
End Sub
Deine Function kannst du löschen.
Die entsprechende Datei wird geöffnet und geprüft, ob ihr Status "Schreibgeschützt" ist. Das ist der Fall wenn sie schon offen ist. Anschließend wird sie wieder geschlossen.
Ja nach Zustand "schreibgeschützt" also schon offen bzw. "nicht schreibgeschützt" also zu, wird der Schalter boOpen auf True oder False gesetzt.
Gruß Werner
Anzeige
AW: Abfrage ob Datei in anderem Excel-Prozess geöffnet
13.11.2019 12:02:56
Jürgen
Hallo Werner,
Habe es gerade in meine Prozedur eingebaut und getestet.
Funktioniert, vielen lieben Dank.
Gruß Jürgen
Gerne u. Danke für die Rückmeldung. o.w.T.
13.11.2019 12:13:27
Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige