Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1684to1688
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
Per VBA abfragen wer Datei geöffnet hat.
10.04.2019 12:41:33
Marco
Hallo Zusammen,
ich frage mit einer Funktion ab, ob einige Dateien in Benutzung sind und lasse es mir anzeigen. Vielleicht weiß jemand von Euch wie ich das Makro erweitern muss, damit ich auch den angemeldeten User bekomme, bei dem die Datei gerade in Verwendung ist. Hat jemand von Euch hierfür eine Iddee oder Lösung?
Danke und Viele Grüße
Marco
Hier mein bisheriger Code:
Aufruf in Userform:
Public Sub ZVDbtn_Click()
Dim PfadZVD as String
Dim UsedBy as String
PfadZVD = "C:\ZVD.xls"
If IsFileLocked(PfadZVD) = True Then
ZVDbtn.BackColor = RGB(251, 2, 0)
'Spätere Message: "Die Datei ist in Benutzung durch" & UsedBy
Else
ZVDbtn.BackColor = RGB(3, 199, 97)
End If
End Sub
Funktion:
Public Function IsFileLocked(strFileName As String) As Boolean
On Error Resume Next
Dim FF As Integer
FF = FreeFile
'An error occurs if the document is currently open.
Open strFileName For Binary Access Read Lock Read As #FF
Close #FF
'Check for Error
If Err.Number Then
Err.Clear
IsFileLocked = True
End If
End Function

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per VBA abfragen wer Datei geöffnet hat.
10.04.2019 12:50:58
Nepumuk
Hallo Marco,
das geht nicht per VBA.
Gruß
Nepumuk
AW: Per VBA abfragen wer Datei geöffnet hat.
10.04.2019 13:16:18
Marco
Hallo Nepumuk,
Schade :((
Trotzdem Danke für Deine Antwort!
VG
Marco
AW: Per VBA abfragen wer Datei geöffnet hat.
10.04.2019 13:47:36
Torsten
Hi Marco,
das geht schon. Probier mal das hier. Musste deinen Pfad und Datei allerding aufteilen auf 2 Strings:

Function GetFileOwner(fileDir As String, fileName As String) As String
'On Error Resume Next
Dim secUtil As Object
Dim secDesc As Object
Set secUtil = CreateObject("ADsSecurityUtility")
Set secDesc = secUtil.GetSecurityDescriptor(fileDir & fileName, 1, 1)
GetFileOwner = secDesc.owner
End Function
Public Function IsFileLocked(strFileName As String) As Boolean
On Error Resume Next
Dim FF As Integer
FF = FreeFile
'An error occurs if the document is currently open.
Open strFileName For Binary Access Read Lock Read As #FF
Close #FF
'Check for Error
If Err.Number Then
Err.Clear
IsFileLocked = True
End If
End Function
Public Sub ZVDbtn_Click()
Dim PfadZVD As String, DateiZVD As String
Dim UsedBy As String
PfadZVD = "C:\"
DateiZVD = "ZVD.xls"
If IsFileLocked(DateiZVD) = True Then
ZVDbtn.BackColor = RGB(251, 2, 0)
'Spätere Message: "Die Datei ist in Benutzung durch" & UsedBy
MsgBox "Die Datei ist in Benutzung durch " & GetFileOwner(PfadZVD, DateiZVD) & "."
'Else
ZVDbtn.BackColor = RGB(3, 199, 97)
End If
End Sub
Gruss Torsten
Anzeige
AW: Per VBA abfragen wer Datei geöffnet hat.
10.04.2019 14:04:47
Marco
Hallo Thorsten,
Vielen Dank! - Klappt super.
VG
Marco
Gerne...
10.04.2019 15:03:02
Torsten
und danke fuer die Rueckmeldung.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige