Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datei schreibgeschützt gesperrt von xxx ?? user ??

Forumthread: Datei schreibgeschützt gesperrt von xxx ? user ?

Datei schreibgeschützt gesperrt von xxx ? user ?
18.09.2007 07:18:00
xxx
Datei im Netzwerk geöffnet.
Hallo VBA Profis,
hatte eine ähnliche frage gestern schon.
Leider konnte mir nur zum teil geholfen werden.
Würde mich freuen wenn es eine möglichkeit gibt und ihr mir einen Tipp geben könnt.
Ich habe eine Datei im Netzwerk.
Wenn diese Datei durch einen anderen user geöffnet ist kommt immer eine Meldung:
Datei ist zum bearbeiten durch "kennung" gesperrt.
Da sehen ich welche kennung die datei geöffnet hat.
Wie kann ich das via VBA herausbekommen.
So das ich diesen namen dann in eine msgbox bekomme ?
Vielen Dank schon im vorraus !
grüße Chris

Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei schreibgeschützt gesperrt von xxx ? user ?
18.09.2007 07:46:00
xxx
Hallo Chris,
das funktioniert so:

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
Function LastUser(strFileName As String) As String
Dim strText As String
Dim strFlag1 As String, strFlag2 As String, _
fF As Integer
Dim i As Integer, j As Integer
strFlag1 = Chr(0)
strFlag2 = Chr(32) & Chr(32)
fF = FreeFile()
Open strFileName For Binary As #fF
strText = Space(LOF(1))
Get #fF, , strText
Close #fF
j = InStr(1, strText, strFlag2)
i = InStrRev(strText, strFlag1, j) + Len(strFlag1)
LastUser = Mid(strText, i, j - i)
End Function
Sub test1()
MsgBox LastUser("D:\Daten\Excel\Mappe1aaa.xls")
End Sub

Gruß von Luschi
aus klein-Paris

Anzeige
AW: Datei schreibgeschützt gesperrt von xxx ? user ?
18.09.2007 07:52:20
xxx
Hallo Chris,
funktioniert doch nicht so, wie ich dachte.
Damit kann man ermitteln, wer der letzte User war, der die Datei geöffnet hat bzw. hatte.
Also auch dqann, wenn die Mappe garnicht geöffnet ist.
Muß mal weiterforschen.
Gruß von Luschi
aus klein-Paris

AW:würde mich freuen wenn du noch was findest
18.09.2007 08:46:00
chris
Ich las einfach mal offen.
Danke im vorraus !

Anzeige
AW: AW:würde mich freuen wenn du noch was findest
18.09.2007 09:08:00
chris
Danke aber der thread nutzt mir ja nichts.
Genauso wenig wie dem kollegen der in dem Thread geschrieben hat.
Aber ich kann das glaube ich mit last user machen.Beitrag von dem vorgänger.
Wenn es doch noch was nobleres gibt wäre ok.
Danke ich lass einfach einmal offen.
Danke!!!

Anzeige
AW: Datei schreibgeschützt gesperrt von xxx ? use
18.09.2007 09:58:00
xxx
Hi Chris,
Folgendes Makro in DieseArbeitsmappe, sollte das Problem lösen:

Private Sub Workbook_Open()
On Error GoTo add_property
If ThisWorkbook.ReadOnly = True Then
MsgBox "Datei wird wieder geschlossen, weil..." & vbCrLf & _
"BenuterIn  hat die Datei geöffnet!", _
vbOKOnly + vbExclamation, _
"Lock-Check"
ThisWorkbook.Close (False)
Exit Sub
End If
ThisWorkbook.CustomDocumentProperties("LastUser") = Environ("Username")
ThisWorkbook.Save
Exit Sub
add_property:
ThisWorkbook.CustomDocumentProperties.Add _
Name:="LastUser", _
LinkToContent:=False, _
Type:=msoPropertyTypeString, _
Value:=Environ("Username")
Resume Next
End Sub


GreetZ Renee

Anzeige
AW: Datei schreibgeschützt gesperrt von xxx ? use
18.09.2007 11:22:12
xxx
Danke vielmals.
Werde den code gleich testen.
Wenn nichts mehr kommt hat er funktioniert !
Vielen Dank nochmals An ALLE !!!
grüße Chris

AW: noch offen
18.09.2007 12:08:00
chris
Hallo Rene,
habe ein komisches ereigniss..
Wenn ich eine leere datei nehme geht der code.
Aber wenn ich den code in eine vohandene exceldatei kopiere kommt folgender fehler.
Laufzeitfehler 5
Ungültiger Prozeduraufruf oder ungültiges Argument
weißt du was das sein könnte ?

Anzeige
AW: noch offen
18.09.2007 12:14:00
Renee
Hi Chris,
Keine Ahnung, ich kenn ja Deine Datei nicht.
Vielleicht ein Konflikt mit bestehendem Code.
Hält der Debugger an einer bestimmten Stelle? An welcher ?
GreetZ Renee

AW: noch offen
18.09.2007 12:56:00
chris
der fehler kommt hier:
ThisWorkbook.CustomDocumentProperties.Add _
Name:="LastUser", _
LinkToContent:=False, _
Type:=msoPropertyTypeString, _
Value:=Environ("Username")
er sprint von hier runter und dann kommt der fehler.
ThisWorkbook.CustomDocumentProperties("LastUser") = Environ("Username")

Anzeige
AW: noch offen
18.09.2007 13:47:21
Renee
Hi Chris,
Ich weiss nicht, ob das an der Version liegt. Unter Excel 2000 getestet, funktionierts.
Mach mal folgendes,
In die bestehende Mappe:
- Menu - Datei - Eigenschaften - Anpassen:
- Name: LastUser
- Typ: Text
- Wert: xxx
Mappe speichern.
Anschliessend diesen Code in die Mappe, save - schliessen - öffnen - ausprobieren...

Private Sub Workbook_Open()
On Error Resume Next
If ThisWorkbook.ReadOnly = True Then
MsgBox "Datei wird wieder geschlossen, weil..." & vbCrLf & _
"BenutzerIn  hat die Datei geöffnet!", _
vbOKOnly + vbExclamation, _
"Lock-Check"
ThisWorkbook.Close (False)
Exit Sub
End If
ThisWorkbook.CustomDocumentProperties("LastUser") = Environ("Username")
ThisWorkbook.Save
End Sub


GreetZ Renee

Anzeige
AW: noch offen
18.09.2007 14:44:56
chris
Hallo Renee ich lass noch mal offen.
Ich glaube ich hab das Probelm ich weiß nur nicht wie ich es wegbekomme..
Auf der datei war ein Schutz. Also das workbook war geschützt.
Diesen schutz habe ich raus aber wenn ich in das menu:
Menu - Datei - Eigenschaften - Anpassen:
gehe ist der button mit hinzufügen grau hinterlegt also ich kann nichts ändern.
Was könnte das sein ?
Sonst ist soweit ich es sehe kein schutz auf der datei nur die sheets eben .. ?
Danek vielmals Renee ich mach mal zu ich denke du kannst mir da bestimmt helfen !°
Danke

Anzeige
AW: noch offen
18.09.2007 14:47:00
Renee
Hallo Chris,
Dann war das Problem der Arbeitsmappenschutz.
Lass den alten Code OHNE SCHUTZ laufen!
GreetZ Renee

AW: noch offen
18.09.2007 14:56:04
chris
Hab ich schon raus und funzt trotzdem nicht.
Jetzt komischerweiße bei keiner datei mher... :)
Ohmann naja ich mach heute nix mehr.
Danke vielmals !! bekomm ich schon hin.
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel Datei schreibgeschützt gesperrt – Lösungen und Tipps


Schritt-für-Schritt-Anleitung

Wenn Du eine Excel-Datei öffnest und die Meldung erhältst, dass die Datei "durch einen anderen Benutzer gesperrt" ist, obwohl Du die Datei nicht geöffnet hast, kannst Du folgende Schritte unternehmen:

  1. Datei schließen: Stelle sicher, dass die Datei nicht in einer anderen Excel-Instanz geöffnet ist. Schließe Excel vollständig und öffne die Datei erneut.

  2. Überprüfen der Zugriffsrechte: Stelle sicher, dass Du die richtigen Berechtigungen hast, um die Datei zu öffnen. Möglicherweise gibt es Einschränkungen im Netzwerk.

  3. VBA-Code verwenden: Du kannst den bereitgestellten VBA-Code benutzen, um herauszufinden, welcher Benutzer die Datei gesperrt hat:

    Public Function IsFileLocked(strFileName As String) As Boolean
       On Error Resume Next
       Dim fF As Integer
       fF = FreeFile
       Open strFileName For Binary Access Read Lock Read As #fF
       Close #fF
       If Err.Number Then
           Err.Clear
           IsFileLocked = True
       End If
    End Function
  4. Workbook-Eigenschaften prüfen: Überprüfe, ob die Datei schreibgeschützt ist. Du kannst dies im Menü unter "Datei" -> "Eigenschaften" überprüfen.


Häufige Fehler und Lösungen

  • Fehler: Datei gesperrt obwohl nicht geöffnet

    • Lösung: Stelle sicher, dass keine andere Instanz von Excel die Datei verwendet. Manchmal bleibt eine Sitzung im Hintergrund aktiv.
  • Fehler: Laufzeitfehler 5

    • Lösung: Dies kann durch eine nicht vorhandene Eigenschaft oder einen Konflikt mit bestehendem Code verursacht werden. Überprüfe die VBA-Umgebung auf Konflikte.
  • Fehler: Button für Anpassen ist grau hinterlegt

    • Lösung: Dies passiert oft, wenn die Arbeitsmappe geschützt ist. Deaktiviere zuerst den Schutz, um Änderungen vornehmen zu können.

Alternative Methoden

Wenn die oben genannten Schritte nicht helfen, könntest Du folgende Alternativen ausprobieren:

  1. Excel im abgesicherten Modus starten: Halte die Strg-Taste gedrückt, während Du Excel öffnest, um den abgesicherten Modus zu aktivieren. Dadurch werden Add-Ins und Makros deaktiviert, die das Problem verursachen könnten.

  2. Netzwerkordner überprüfen: Manchmal kann das Problem durch eine Netzwerkverbindung verursacht werden. Überprüfe, ob andere Benutzer auf die Datei zugreifen.

  3. Temporäre Dateien löschen: Lösche temporäre Excel-Dateien, die möglicherweise im Hintergrund aktiv sind. Diese findest Du im Verzeichnis %temp%.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du mit dem Problem umgehen kannst:

  • Wenn Du eine Datei öffnest und die Meldung erhältst, dass sie "durch mich selbst gesperrt" ist, kannst Du versuchen, den Namen des letzten Benutzers mit folgendem VBA-Code herauszufinden:

    Function LastUser(strFileName As String) As String
       Dim strText As String
       Dim fF As Integer
       fF = FreeFile()
       Open strFileName For Binary As #fF
       strText = Space(LOF(fF))
       Get #fF, , strText
       Close #fF
       LastUser = Mid(strText, InStrRev(strText, Chr(0)) + 1)
    End Function
  • Verwende den Code zur Überprüfung, ob die Datei durch einen anderen Benutzer gesperrt ist, um in einer MsgBox eine entsprechende Meldung auszugeben.


Tipps für Profis

  • Makros verwenden: Nutze VBA-Makros, um den Status von Dateien zu überprüfen und um sicherzustellen, dass Du immer die aktuellen Benutzerinformationen erhältst.

  • Versionskontrolle: Führe eine Versionskontrolle von Excel-Dateien ein, um Änderungen nachzuvollziehen und Probleme zu vermeiden.

  • Regelmäßige Backups: Sichere Deine Dateien regelmäßig, um Datenverluste zu verhindern, falls die Datei gesperrt bleibt.


FAQ: Häufige Fragen

1. Wie bekomme ich das Schreibgeschützt weg? Um das Schreibgeschützt-Problem zu lösen, schließe alle Excel-Instanzen und überprüfe, ob die Datei im Netzwerk von jemand anderem geöffnet ist.

2. Was tun, wenn die Datei gesperrt bleibt? Überprüfe die Zugriffsberechtigungen und stelle sicher, dass Du die Datei nicht in einer anderen Excel-Sitzung geöffnet hast. Eventuell kann auch das Löschen temporärer Dateien helfen.

3. Kann ich den letzten Benutzer herausfinden? Ja, mit dem richtigen VBA-Code kannst Du den letzten Benutzer ermitteln, der die Datei geöffnet hat, auch wenn sie nicht mehr aktiv ist.

4. Warum kann ich die Eigenschaften der Datei nicht ändern? Wenn die Schaltfläche zum Anpassen der Eigenschaften grau hinterlegt ist, könnte die Arbeitsmappe geschützt sein. Entferne den Schutz, bevor Du Änderungen vornimmst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige