mreske
Goto Top

Alle User anzeigen, die Excel-Datei geöffnet haben

Guten Morgen zusammen,

gibt es vielleicht eine Möglichkeit,
in einer MSG-Box ALLE Benutzernamen anzuzeigen, die gerade (schreibgeschützt, oder nicht) in einer Excel-Datei sind?

Mit diesem Code wird nur der user angezeigt, der nicht schreibgeschützt in der Datei ist:
MsgBox (Application.UserName)

Ich hätte aber gerne eine Info über alle, die gerade auf der Datei arbeiten.

Geht sowas?

Danke im Voraus
Gruß

Content-ID: 1074207142

Url: https://administrator.de/contentid/1074207142

Ausgedruckt am: 25.11.2024 um 01:11 Uhr

149062
149062 22.07.2021 aktualisiert um 10:26:36 Uhr
Goto Top
net file auf dem Rechner eintippen der die Datei freigibt oder per psexec ausführen (Remote).
Oder auch psfile (Sysinternals)
https://www.windows-faq.de/2011/08/17/geoeffnete-dateien-per-net-file-od ...
mreske
mreske 22.07.2021 um 13:17:32 Uhr
Goto Top
Hallo, danke für den Tipp.
Ist aber nicht ganz das, was ich gesucht habe.

Beispiel:
in der Datei: C:\VBA\Text.xlsm
sind 3 User schreibgeschützt
Ich bin in der selben Datei, aber nicht schreibgeschützt.

Nun möchte ich über eine Schaltfläche (die ich in Tabelle der Text.xlsm hinterlege) eine MSG-Box aufrufen
mit der Meldung:
müller
meier
peters
schaefer

WIe gesagt: mit MsgBox (Application.UserName) zeigt er nur mich als user an.
Aber wahrscheinlich geht das gar nicht. Ich finde im Netz keine Infos dazu.
149062
Lösung 149062 22.07.2021 aktualisiert um 13:32:15 Uhr
Goto Top
Zitat von @mreske:

Hallo, danke für den Tipp.
Ist aber nicht ganz das, was ich gesucht habe.

Beispiel:
in der Datei: C:\VBA\Text.xlsm
sind 3 User schreibgeschützt
Ich bin in der selben Datei, aber nicht schreibgeschützt.

Nun möchte ich über eine Schaltfläche (die ich in Tabelle der Text.xlsm hinterlege) eine MSG-Box aufrufen
mit der Meldung:
müller
meier
peters
schaefer

WIe gesagt: mit MsgBox (Application.UserName) zeigt er nur mich als user an.
Aber wahrscheinlich geht das gar nicht. Ich finde im Netz keine Infos dazu.
Kannst du doch über VBA mit dem Script.Shell Object den Net file Befehl ausführen und die Konsolenausgaben auslesen.
Einen VBA Befehl explizit dafür gibt es nicht.

Wenn es dagegen echte "Shared Workbooks" sind dann geht so was hier

Sub SharedWorkbookUsers()
    Dim strUsers As String
    Users = ActiveWorkbook.UserStatus
    For i = 1 To UBound(Users, 1)
        strUsers = strUsers & "User: " & Users(i, 1) & " | Opened since: " & Users(i, 2) & " | Mode: " & IIf(Users(i, 3) = 1, "Exclusive", "Shared") & vbNewLine  
    Next
    MsgBox strUsers
End Sub
https://docs.microsoft.com/de-de/office/vba/api/excel.workbook.userstatu ...
Zeigt aber nur die User wenn die Arbeitsmappe wirklich als "Shared Workbook" freigegeben wurde, zus. werden read only mode user nicht angezeigt
Die UserStatus-Eigenschaft gibt keine Informationen über Benutzer zurück, die die angegebene Arbeitsmappe schreibgeschützt geöffnet haben.
mreske
mreske 22.07.2021 um 20:17:42 Uhr
Goto Top
Hallo evoplus,
das mit den Shared user müsste sogar gehen.
Ich werde das ausprobieren.
Vielen Dank für die Hilfe.
Gruß und schönes Wochenende