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

zweites Öffnen einer Datei anzeigen lassen

zweites Öffnen einer Datei anzeigen lassen
07.11.2023 11:58:19
ZKarsten
hallo zusammen,

wir öffnen im Netzwerk die Excel Dateien mit einem VBA Befehl. Nun wird aber ein zweites öffnen der selben Datei nur in der Titelleiste mit einem (Schreibgeschützt) gekennzeichnet.
Gibt es eine Möglichkeit per VBA Befehl diese Meldung (Schreibgeschützt) in einer MsgBox anzeigen zu lassen, dass diese Datei bereits geöffnet ist und eine Eingabe nicht möglich ist.

Vielen Dank.

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

Betreff
Datum
Anwender
Anzeige
AW: zweites Öffnen einer Datei anzeigen lassen
07.11.2023 12:56:15
volti
Hallo Karsten,

das Auslesen des Titeltextes eines Fenster kann mit der API-Funktion GetWindowtext bewerkstelligt werden. Hierzu muss allerdings das Handle des Fensters bekannt sein, also der interne Prozedurzeiger auf das Fenster.
Zur Ermittlung eines Handles gibt es verschiedene API-Funktionen.

Leider habe ich keine Netzwerksituation mehr bei mir und kann es nicht testen bzw. gesichert programmieren.

Möglich wäre das Excelhandle Application.hWnd, das Vordergrundfenster GetForegroundwindow und noch zig andere.
Kannst ja erst mal diese beiden im u.a. Anregungscode testen....

Code:


Option Compare Text Private Declare PtrSafe Function GetWindowTextA Lib "user32" ( _ ByVal hWnd As LongPtr, ByVal lpString As String, ByVal cch As Long) As Long Private Declare PtrSafe Function GetForegroundWindow Lib "user32" () As LongPtr Sub Test() Dim sText As String * 255, hWnd As LongPtr hWnd = Application.hWnd hWnd = GetForegroundWindow ' Titeltext ermitteln, checken und anzeigen GetWindowTextA hWnd, sText, 255 If sText Like "*schreibgeschützt*" Then ' MsgBox Left$(sText, InStr(sText, vbNullChar) - 1), vbExclamation, "Hinweis" MsgBox "Die Datei " & vbLf & Split(sText, " - ")(0) _ & vbLf & "ist schreibgeschützt und kann nicht bearbeitet werden!", _ vbExclamation, "Hinweis" End If End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz
Anzeige
AW: zweites Öffnen einer Datei anzeigen lassen
07.11.2023 13:14:43
daniel
HI
wenn es dir reicht, dass die Meldung nach dem Öffnen kommt, kannst du das einfach abfragen über die Workbook-Eigenschaft ReadOnly

Workbooks.Open Pfad & Datei
If Workbooks(Datei).ReadOnly = 'True Then Msgbox "Achtung, Datei wird von einer anderen Person bearbeitet. Änderungen können nicht gespeichert werden."

Gruß Daniel
AW: zweites Öffnen einer Datei anzeigen lassen
07.11.2023 13:03:41
ZKarsten
Hallo Karl-Heinz,

vielen Dank, ich werde dies morgen mal testen. Ich gebe in Kürze eine Rückmeldung.
Danke.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige