Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1224to1228
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

Dateireservierung

Dateireservierung
Rainer
Hallo!
Ich beziehe mich auf den Beitrag von Thorsten:
https://www.herber.de/forum/archiv/172to176/t172349.htm
Ist schon etwas älter, aber ich habe genau das selbe Problem.
Wir haben ca. 10 Benutzer, die auf diverse Exceldateien auf einem Dateiserver zugreifen.
Wenn ich jetzt eine Datei öffne, die ein anderer Benutzer gerade offen hat, bekomme ich per VBA "Workbooks.Open" keine Fehlermeldung, sondern die Arbeitmappe wird einfach schreibgeschützt geöffnet.
Ein manuelles Öffnen per "Datei - Öffnen" der gleichen Datei liefert ein Dialogfeld, wo der Benutzer angezeigt wird, der die Datei gerade geöffnet und somit gesperrt hat.
Die dargestellte Lösung funktioniert nun auch, um herauszufinden, OB die Datei gesperrt ist. Aber noch wichtiger wäre für mich, per VBA DEN BENUTZER herauszulesen, der die Datei gesperrt hat, weil in dem Fall im ganzen Betrieb herumtelefoniert /herumgerannt werden muss, um den spreenden Benutzer zu finden.
Da beim händischen Öffnen (Datei-Öffnen) ja der Benutzer für Excel bekannt ist, sollter er sich doch irgendwie per VBA auch auslesen lassen?!
Ich hab' mir im Netz schon den Wolf gesucht, aber nichts gefunden.

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

Betreff
Benutzer
Anzeige
AW: Dateireservierung
02.08.2011 20:46:22
sergiesam
Hallo Rainer,
mit der eigenschaft Workbook.UserStatus bekommst du ein 2-Dimensionales Array, die jeden Benutzer angibt, wer die Mappe benützt. Ist eigentlich für den freigegebenen Status gedacht, funkt aber auch bei einer "normalen Mappe" - Versuchs mal. Ich habe eine Mappe geöffnet und mittels Testmakro meinen Usernamen mit Datum ermittelt. Aus der Excel-Hilfe:
Sub ExcelUser()
Dim users, row
users = ActiveWorkbook.UserStatus
With Workbooks.Add.Sheets(1)
For row = 1 To UBound(users, 1)
.Cells(row, 1) = users(row, 1)
.Cells(row, 2) = users(row, 2)
Select Case users(row, 3)
Case 1
.Cells(row, 3).Value = "Exclusive"
Case 2
.Cells(row, 3).Value = "Shared"
End Select
Next
End With
End Sub

Anzeige
AW: Dateireservierung
03.08.2011 07:52:30
Rainer
Hallo sergiesam,
vielen Dank für die Unterstützung.
Die von Dir vorgeschlagenen Methode funktioniert in diesem Fall leider nicht.
Mein Problem hier ist wieder, dass der VBA Befehl "Workbooks.Open" die Mappe kommentarlos schreibgeschützt öffnet (im Gegensatz zu "Datei - öffnen"!)
Der Befehl "users = ActiveWorkbook.UserStatus" löst dann einen "Laufzeitfehler '1004': Zugriff auf das schreibgeschützte Dokument '....xls' nicht möglich".
Gruß Rainer

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige