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

Datei nur mit Exclusivzugriff öffnen

Forumthread: Datei nur mit Exclusivzugriff öffnen

Datei nur mit Exclusivzugriff öffnen
Joni
Hi,
ich öffne mit Workbooks.Open Filename:="c:\test.xls" eine Datei wenn diese nicht bereits von mir geöffnet ist. Jetzt möchte ich aber verhindern, dass die Datei geöffnet wird wenn diese jemand anderes im Netzwerk geöffnet hat. Bei mir wird die Datei in dem Fall schreibgeschützt geöffnet ohne Rückfrage. Es soll auch keine Rückfrage erfolgen sondern am besten lediglich der Hinweis wer die Datei geöffnet hat und dann das Makro beendet werden. Wenn ich die Datei von Hand ein 2. Mal öffne kommt eine Info bei der ich dann Abbrechen wählen kann.
Danke für eure Hilfe.
Gruß Joni
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Datei nur mit Exclusivzugriff öffnen
16.02.2011 10:28:20
Holger,
Hallo Joni,
öffnest du die Datei innerhalb eines Makros und willst hier das Öffnen verhinden, wenn schon offen
oder willst du allgemein, dass eine Datei nur einmal geöffnet werden kann?
Im Ersten Fall kannst du
Dim wb as workbook
for each wb in workbooks
if wb.name = "test.xls" then debnug.print "Datei schon offen"
else
Workbooks.Open Filename:="c:\test.xls"
end if
next wb

Anzeige
ReadOnly
16.02.2011 10:53:02
Tino
Hallo,
ich würde es mal so versuchen.
Sub Beispiel()
Dim strFileName As String
strFileName = "C:\Deine_Datei.xls" 'Datei angeben
With Application
.ScreenUpdating = False
.DisplayAlerts = False
.EnableEvents = False
With Workbooks.Open(strFileName)
If Not .ReadOnly Then
MsgBox "Datei kann verwendet werden!", vbInformation
'hier Dein Code
Else
.Close False
MsgBox "Datei ist Schreibgeschützt!", vbExclamation
End If
End With
.ScreenUpdating = True
.DisplayAlerts = True
.EnableEvents = True
End With
End Sub
Gruß Tino
Anzeige
genau das ist es, danke (oT)
16.02.2011 11:40:22
Joni
;
Anzeige
Anzeige

Infobox / Tutorial

Datei nur mit Exclusivzugriff öffnen


Schritt-für-Schritt-Anleitung

Um eine .xls-Datei exklusiv zu öffnen und zu verhindern, dass sie von anderen Benutzern im Netzwerk geöffnet wird, kannst du das folgende VBA-Skript verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu (Einfügen > Modul).
  3. Kopiere den folgenden Code in das Modul:
Sub DateiExklusivÖffnen()
    Dim wb As Workbook
    Dim strFileName As String
    strFileName = "C:\test.xls" 'Pfad zur Datei anpassen

    For Each wb In Workbooks
        If wb.Name = "test.xls" Then
            MsgBox "Die Datei ist bereits von " & wb.Windows(1).Caption & " geöffnet.", vbExclamation
            Exit Sub
        End If
    Next wb

    'Versuche die Datei zu öffnen
    On Error Resume Next
    Set wb = Workbooks.Open(Filename:=strFileName)
    If Err.Number <> 0 Then
        MsgBox "Die Datei kann nicht geöffnet werden.", vbCritical
    Else
        If wb.ReadOnly Then
            wb.Close False
            MsgBox "Die Datei ist schreibgeschützt!", vbExclamation
        Else
            MsgBox "Die Datei wurde erfolgreich geöffnet!", vbInformation
            'Hier kannst du deinen Code hinzufügen
        End If
    End If
    On Error GoTo 0
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus, um die Datei zu öffnen.

Häufige Fehler und Lösungen

  • Fehler: "Datei kann nicht geöffnet werden."

    • Lösung: Überprüfe den Pfad zur Datei. Stelle sicher, dass die Datei existiert und du die richtigen Berechtigungen hast.
  • Fehler: "Die Datei ist schreibgeschützt."

    • Lösung: Nutze das Makro, um den Schreibschutz aufzuheben. Stelle sicher, dass die Datei nicht von einem anderen Benutzer verwendet wird.

Alternative Methoden

Eine alternative Methode, um eine .xls-Datei exklusiv zu öffnen, ist die Verwendung der Application-Objekteigenschaften:

Sub AlternativeÖffnung()
    Dim strFileName As String
    strFileName = "C:\test.xls" 'Achte auf die richtige Datei

    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
        .EnableEvents = False
        On Error Resume Next
        Workbooks.Open strFileName
        If Err.Number <> 0 Then
            MsgBox "Datei kann nicht geöffnet werden.", vbCritical
        End If
        On Error GoTo 0
        .ScreenUpdating = True
        .DisplayAlerts = True
        .EnableEvents = True
    End With
End Sub

Diese Methode ermöglicht es, den Schreibschutz zu überprüfen und entsprechend darauf zu reagieren.


Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen, das Öffnen einer .xls-Datei zu steuern:

  1. Datei nur einmal öffnen: Verwende das oben gezeigte VBA-Skript, um sicherzustellen, dass die Datei nicht mehrfach geöffnet wird.

  2. Benachrichtigung bei exklusivem Zugriff: Das Skript gibt eine Nachricht aus, wenn die Datei bereits geöffnet ist, und zeigt an, wer die Datei geöffnet hat.


Tipps für Profis

  • Verwende Error-Handling: Stelle sicher, dass du On Error Resume Next verwendest, um Fehler zu behandeln. Dadurch wird dein Makro robuster.

  • Optimierung der Leistung: Deaktiviere ScreenUpdating, DisplayAlerts und EnableEvents, während du mit großen Dateien arbeitest, um die Leistung zu verbessern.

  • Testen in verschiedenen Excel-Versionen: Achte darauf, dass dein Makro in der Excel-Version funktioniert, die du verwendest, und teste es gründlich.


FAQ: Häufige Fragen

1. Wie öffne ich eine xls-Datei exklusiv?
Du kannst dies erreichen, indem du das VBA-Makro verwendest, das die Datei öffnet und überprüft, ob sie bereits von einem anderen Benutzer geöffnet ist.

2. Was kann ich tun, wenn die Datei schreibgeschützt ist?
Nutze das bereitgestellte Makro, um den Schreibschutz zu überprüfen und gegebenenfalls die Datei zu schließen, wenn sie schreibgeschützt geöffnet wurde.

3. Kann ich diese Methode auch für andere Dateiformate verwenden?
Ja, du kannst diese Methode anpassen, um auch andere Dateiformate (wie .xlsx) zu öffnen, indem du nur den Dateinamen und die Erweiterung änderst.

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