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

Forumthread: Datei durch einen anderen Benutzer gesperrt

Datei durch einen anderen Benutzer gesperrt
Pepi
Hallo zusammen
Kann mir jemand sagen, wie ich prüfen kann, ob eine Datei bereits durch einen anderen Benutzer (Netzwerk) geöffnet ist (evt. mit .readonly).
Habe nur sehr alte Beispiele gefunden - vielleicht geht es mit Excel 2007 eleganter
vielen Dank
Pepi
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Datei durch einen anderen Benutzer gesperrt
20.05.2011 12:19:28
Pepi
Hallo Michael
Leider funktioniert diese Funktion nur bei einer Prüfung, sobald ich sie in eine Schlaufe einbaue, bricht sie nach dem ersten Durchgang ab.
brauche leider noch weiteren Support
mfg
Pepi
Anzeige
AW: Datei durch einen anderen Benutzer gesperrt
20.05.2011 12:47:51
Rudi
Hallo,
sobald ich sie in eine Schlaufe einbaue

kommt drauf an, wie.
Sub CheckFiles()
Dim arrFiles, myFile
arrFiles = Array("c:\test\test.xls", "Datei2.xls", "Datei3.xls")
For Each myFile In arrFiles
Select Case TestOpen(myFile)
Case 0: MsgBox myFile & " steht zur Verfügung."
Case 1: MsgBox myFile & " ist geöffnet."
Case 2: MsgBox myFile & " gibt es nicht."
End Select
Next
End Sub
Function TestOpen(ByVal sFile As String) As Integer
If Dir(sFile) = "" Then
TestOpen = 2
Else
On Error GoTo ERRORHANDLER
Open sFile For Random Access Read Lock Read Write As #99
Close #99
End If
ERRORHANDLER:
If Err = 70 Then TestOpen = 1
End Function
Gruß
Rudi
P.S.:Schleife, nicht Schlaufe
Anzeige
AW: Datei durch einen anderen Benutzer gesperrt
22.05.2011 11:44:44
Peter
Hallo Rudi
Konnte das Makro erst jetzt testen - musste noch etwas schrauben, weil ich anders rum einlese - doch jetzt funktioniert es - ich hab es so gemacht -vielen dank ond en schöne Sunntig :-)
Sub CheckFiles_While_For()
Dim sFil As String, xA As Variant, myFile As Object, j As Integer
ChDir ThisWorkbook.Path  'Wichtig!
sFil = Dir("Makro-F*.xls*")
ReDim xA(0)
Do Until sFil = ""
ReDim Preserve xA(j)
xA(j) = sFil
j = j + 1
sFil = Dir
Loop
For j = 0 To UBound(xA)
Select Case TestOpen(xA(j)) 'myFile)
Case 0: MsgBox xA(j) & " steht zur Verfügung."
Case 1: MsgBox xA(j) & " ist geöffnet."
Case 2: MsgBox xA(j) & " gibt es nicht."
End Select
Next j
End Sub

Function TestOpen(ByVal sFile As String) As Integer
If Dir(sFile) = "" Then
TestOpen = 2
Else
On Error GoTo ERRORHANDLER
Open sFile For Random Access Read Lock Read Write As #99
Close #99
End If
ERRORHANDLER:
If Err = 70 Then TestOpen = 1
End Function

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel-Datei durch anderen Benutzer gesperrt? So prüfst du es!


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob eine Excel-Datei durch einen anderen Benutzer gesperrt ist, kannst du ein einfaches VBA-Makro verwenden. Hier ein Beispiel:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf „Einfügen“ und dann auf „Modul“, um ein neues Modul hinzuzufügen.
  3. Füge den folgenden Code ein:
Sub CheckFiles()
    Dim arrFiles, myFile
    arrFiles = Array("c:\test\test.xls", "Datei2.xls", "Datei3.xls")
    For Each myFile In arrFiles
        Select Case TestOpen(myFile)
            Case 0: MsgBox myFile & " steht zur Verfügung."
            Case 1: MsgBox myFile & " ist geöffnet."
            Case 2: MsgBox myFile & " gibt es nicht."
        End Select
    Next
End Sub

Function TestOpen(ByVal sFile As String) As Integer
    If Dir(sFile) = "" Then
        TestOpen = 2
    Else
        On Error GoTo ERRORHANDLER
        Open sFile For Random Access Read Lock Read Write As #99
        Close #99
    End If
ERRORHANDLER:
    If Err = 70 Then TestOpen = 1
End Function
  1. Ändere die Dateipfade in arrFiles entsprechend deinen Anforderungen.
  2. Führe das Makro aus, um zu prüfen, ob die Excel-Datei geöffnet ist.

Häufige Fehler und Lösungen

  • Fehler: „Die Excel-Datei ist gesperrt.“

    • Lösung: Überprüfe, ob die Datei tatsächlich von einem anderen Benutzer geöffnet ist. Das Makro gibt dir die Information zurück.
  • Fehler: „Datei nicht gefunden.“

    • Lösung: Stelle sicher, dass der Dateipfad korrekt ist und die Datei existiert.
  • Problem: „Excel durch mich selbst gesperrt.“

    • Lösung: Manchmal kann es passieren, dass du die Datei in einem anderen Fenster geöffnet hast. Schließe alle Instanzen von Excel und versuche es erneut.

Alternative Methoden

Falls du keine VBA-Makros verwenden möchtest, kannst du die folgenden Schritte ausprobieren:

  1. Öffne den Windows Task-Manager und suche nach Excel-Prozessen, die möglicherweise noch aktiv sind.
  2. Verwende die Eingabeaufforderung: Gib net file ein, um herauszufinden, ob andere Benutzer die Datei verwenden.

Praktische Beispiele

Angenommen, du hast eine Excel-Datei namens „Projekt.xlsx“, die du regelmäßig mit Kollegen teilst. Du kannst das oben genannte Makro nutzen, um zu prüfen, ob jemand anderes die Datei geöffnet hat, bevor du Änderungen vornimmst.

Eine andere Möglichkeit wäre, wenn du eine Liste von Dateien in einem Ordner hast, kannst du sie alle in einer Schleife prüfen, ob sie von einem anderen Benutzer gesperrt sind.


Tipps für Profis

  • Wenn du ein Makro schreibst, das Dateien in einer Schleife prüft, stelle sicher, dass du die richtigen Fehlerbehandlungsroutinen implementierst, um unerwartete Abstürze zu vermeiden.
  • Nutze Application.DisplayAlerts = False, um Popups zu unterdrücken, wenn du mehrere Dateien prüfst.
  • Du kannst auch die Option „Schreibgeschützt“ verwenden, um deine eigene Excel-Datei zu schützen, während du diese prüfst.

FAQ: Häufige Fragen

1. Wie kann ich prüfen, ob die Excel-Datei durch einen anderen Benutzer geöffnet ist? Verwende das oben angegebene VBA-Makro, um herauszufinden, ob die Datei bereits von jemand anderem verwendet wird.

2. Was kann ich tun, wenn die Datei gesperrt ist? Falls die Excel-Datei durch einen anderen Benutzer gesperrt ist, kannst du entweder warten, bis sie verfügbar ist, oder dich an den Benutzer wenden, um die Datei zu schließen.

3. Wie hebe ich die Sperrung auf, wenn die Datei durch mich selbst gesperrt wurde? Schließe alle offenen Instanzen von Excel, um sicherzustellen, dass keine Excel-Datei mehr im Hintergrund läuft.

4. Warum wird mir angezeigt, dass die Excel-Datei gesperrt ist, obwohl ich sie nicht geöffnet habe? Das kann passieren, wenn die Datei in einem anderen Programm oder einer anderen Excel-Instanz geöffnet ist. Überprüfe alle Programme und Fenster.

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