Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1856to1860
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

Username, der Netzwerkdatei geöffnet hat

Username, der Netzwerkdatei geöffnet hat
22.11.2021 21:18:21
Tim
Hallo zusammen,
eigentlich ist es nur ein Luxusproblem, doch auch so was will ja hin und wieder gelöst werden.
Mein Makro verschiebt eine große Mengen Dateien aus dem Netzwerk ins Archiv im Netzwerk, leider kommt es immer wieder vor, dass eine der Dateien noch durch einen anderen User geöffnet ist. Wenn man diese Datei dann selbst öffnen möchte, steht ja sogar da, wer die Datei geöffnet hat. Aber einen wirksamen Codeschnipsel, der mir genau den Usernamen ausgibt, der die Datei sperrt, konnte ich leider nicht finden. Ein Anhaltspunkt wäre wie unten angegeben "ActiveWorkbook.WriteReservedBy", aber da bekomme ich immer nur meinen eigenen Namen angegeben.
If ActiveWorkbook.ReadOnly = False Then
ActiveWorkbook.Cells(i, 2).Value = ActiveWorkbook.WriteReservedBy
ActiveWorkbook.Close
GoTo NextIteration
End If
Hat jemand eine schicke Idee dazu? Vielen Dank!
Beste Grüße
Tim

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Username, der Netzwerkdatei geöffnet hat
22.11.2021 23:03:16
MatthiasG
Hallo Tim,
ein Ansatz:
Öffnet jemand die Datei mit Schreibrechten, wird eine Textdatei mit Öffungsdatum und User [Environ("USERNAME")] erzeugt, evtl. auch Environ("COMPUTERNAME").
Vor dem Schließen (mit Schreibrechten) wird die Datei wieder gelöscht.
Wenn jemand (du) die Datei öffnest und sie schreibgeschützt ist, liest du die angelegte Textdatei aus und schon kennst du den Benutzer.
Gruß Matthisa
AW: Username, der Netzwerkdatei geöffnet hat
23.11.2021 08:13:13
Nepumuk
Hallo Tim,
teste mal:

Public Sub Test()
Debug.Print GetFileOwner(ActiveWorkbook.Path & "\", ActiveWorkbook.Name)
End Sub
Private Function GetFileOwner(ByVal pvstrFolder As String, ByVal pvstrFilename As String) As String
Dim securityUtility As Object
Dim securityDescriptor As Object
Set securityUtility = CreateObject("ADsSecurityUtility")
Set securityDescriptor = securityUtility.GetSecurityDescriptor(pvstrFolder & pvstrFilename, 1, 1)
GetFileOwner = securityDescriptor.Owner
Set securityDescriptor = Nothing
Set securityUtility = Nothing
End Function
Gruß
Nepumuk
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige