Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dateireservierung

Forumthread: 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.
Anzeige

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
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige