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

Forumthread: prüfen, ob Datei bereits geöffnet ist

prüfen, ob Datei bereits geöffnet ist
03.09.2004 20:20:36
Mike
Hallo zusammen,
ich öffne per Makro eine Datei. U.U. ist diese Datei jedoch schon geöffnet...
Nun möchte ich dieses Ereigneis mit einer Fehlermeldung abfangen und das erneute Öffnen besagter Datei verhindern...etwa so:

Sub Öffnen()
Dim Pfad as String, DateiName As String
Pfad = "Irgendwas"
DateiName = "AuchIrgendwas"
If Workbooks(DateiName)...bereits geöffnet Then
MsgBox("Datei bereits geöffnet"): Workbooks(DateiName).Activate
Else
Workbooks.Open Filename:=Pfad & DateiName
End If
End Sub

Falls jemand helfen mag, freue ich mich sehr darüber. Ansonsten:
ein entspanntes Wochenende von
Mike
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: prüfen, ob Datei bereits geöffnet ist
Dieter
Hallo Mike
so gehts:

Function MAPPEOFFEN(MappeName As String) As Boolean
Dim stName As String
On Error GoTo Nonexistent
stName = Workbooks(MappeName).name
MAPPEOFFEN = True
Exit Function
Nonexistent:
MAPPEOFFEN = False
End Function

'Beispiel:
'If MAPPEOFFEN("bbbbb.xls") = False Then
' Workbooks.Open FileName:=ThisWorkbook.Path & "\bbbbb.xls"
PS:
Das Forum lebt auch von Rückmeldungen
Anzeige
AW: prüfen, ob Datei bereits geöffnet ist
03.09.2004 20:30:42
Mike
Hallo Dieter,
fein. Darauf wäre ich nun wirklich nicht gekommen.
Meinen Dank und schöne Wochenendswünsche hast du sicher!
Mike
AW: prüfen, ob Datei bereits geöffnet ist
03.09.2004 20:52:54
torsten
auch so ein entspanntes wochenende
;-))
torsten aus`n trittau
AW: prüfen, ob Datei bereits geöffnet ist
03.09.2004 20:54:33
Mike
Danke! Was treibst du bei Herber? Hättest ja auch mal helfen können.
Laß' mal auf Mail umschalten!
Anzeige
AW: prüfen, ob Datei bereits geöffnet ist
ypsilon
hi Mike,
so in etwa müsste das gehen:
For i = 1 To Workbooks.Count
If Workbooks(i).Name = Dateiname Then
MsgBox "Die Datei " & Dateiname & "ist bereits offen" : Exit Sub
Else
'deine anweisungen
End If
Next i
cu Micha
ja ich bin zu langsam :-(
y
*grummel*
AW: ja ich bin zu langsam :-(
Dieter
Hallo Y
schon der frühere russische Präsident (der mit dem Schuh auf das Pult geschlagen hat) sagte:
Wer zu spät kommt, den bestraft das Leben
Grüsse aus Bayern an der Donau
Dieter
Anzeige
AW: ja ich bin zu langsam :-(
y
hi Dieter,
war das nicht eher der andere russische präsident mit der hohen stirn ?
grüsse aus der hauptstadt
Micha
AW: ja ich bin zu langsam :-(
Dieter
hi Y
kann schon sein, aber ist ja völlig egal, Spass muss sein trotz VBA und Excel
Gruß Dieter
immer so?
04.09.2004 05:53:26
knot
oder?
Anzeige
AW: prüfen, ob Datei bereits geöffnet ist
03.09.2004 20:36:41
Mike
Hey Micha,
nein, bist Du nicht! Denn auch das ist eine prima Lösung (auf die übrigens auch ich bei meinem angegebenen Level hätte kommen müssen).
Somit auch Dir den Dank und das schöne Wochenende!
Mike
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Überprüfung, ob eine Excel-Datei bereits geöffnet ist


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob eine Datei in Excel geöffnet ist, kannst Du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).

  3. Kopiere und füge den folgenden Code ein:

    Function MAPPEOFFEN(MappeName As String) As Boolean
       Dim stName As String
       On Error GoTo Nonexistent
       stName = Workbooks(MappeName).Name
       MAPPEOFFEN = True
       Exit Function
    Nonexistent:
       MAPPEOFFEN = False
    End Function
  4. Um die Funktion zu verwenden, kannst Du diese Zeile in Deinem Makro hinzufügen:

    If MAPPEOFFEN("DeineDatei.xlsx") = False Then
       Workbooks.Open FileName:="Pfad\Zu\DeineDatei.xlsx"
    End If

Häufige Fehler und Lösungen

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

    • Lösung: Stelle sicher, dass der Dateiname korrekt ist und die Datei nicht von einem anderen Benutzer geöffnet wurde.
  2. Fehler: "Laufzeitfehler 9: Index außerhalb des zulässigen Bereichs."

    • Lösung: Überprüfe, ob der Dateiname exakt mit dem geöffneten Workbook übereinstimmt.
  3. Fehler: "Zugriff verweigert."

    • Lösung: Dies kann auftreten, wenn die Datei von einem anderen Benutzer geöffnet ist. In diesem Fall musst Du sicherstellen, dass Du die Datei nicht gleichzeitig bearbeitest.

Alternative Methoden

Eine andere Möglichkeit, um zu prüfen, ob eine Datei geöffnet ist, besteht darin, eine Schleife zu verwenden, um alle geöffneten Arbeitsmappen zu durchlaufen. Hier ist ein Beispiel:

Sub CheckIfWorkbookIsOpen()
    Dim DateiName As String
    DateiName = "DeineDatei.xlsx"

    Dim i As Integer
    For i = 1 To Workbooks.Count
        If Workbooks(i).Name = DateiName Then
            MsgBox "Die Datei " & DateiName & " ist bereits geöffnet."
            Exit Sub
        End If
    Next i
    MsgBox "Die Datei ist nicht geöffnet."
End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du den VBA-Code anwenden kannst:

  • Beispiel 1: Öffnen einer Datei nur, wenn sie nicht bereits geöffnet ist.

    Sub ÖffneDatei()
       Dim DateiName As String
       DateiName = "Daten.xlsx"
    
       If Not MAPPEOFFEN(DateiName) Then
           Workbooks.Open Filename:="C:\Pfad\Zu\" & DateiName
       Else
           MsgBox "Die Datei " & DateiName & " ist bereits geöffnet."
       End If
    End Sub
  • Beispiel 2: Überprüfen und eine Aktion durchführen, wenn die Datei geöffnet ist.

    Sub AktionWennGeöffnet()
       If MAPPEOFFEN("Bericht.xlsx") Then
           MsgBox "Bericht wird bearbeitet."
       Else
           MsgBox "Bericht ist nicht geöffnet."
       End If
    End Sub

Tipps für Profis

  • Verwende On Error Resume Next, um Laufzeitfehler zu vermeiden, die beim Zugriff auf nicht geöffnete Workbooks auftreten können.
  • Denke daran, den Code gut zu kommentieren, damit Du oder andere Benutzer später verstehen, was jeder Teil macht.
  • Teste Deinen Code gründlich, insbesondere wenn Du mit Dateien arbeitest, die von mehreren Benutzern verwendet werden.

FAQ: Häufige Fragen

1. Wie kann ich prüfen, ob eine Datei von einem anderen Benutzer geöffnet ist? Um zu überprüfen, ob eine Datei von einem anderen Benutzer geöffnet ist, kannst Du die oben beschriebenen Methoden verwenden. VBA hat jedoch keine direkte Möglichkeit, zu erkennen, ob eine Datei von einem anderen Benutzer gesperrt ist, es sei denn, Du erhältst eine Fehlermeldung beim Öffnen.

2. Was mache ich, wenn ich die Datei nicht öffnen kann, weil sie in Benutzung ist? In diesem Fall kannst Du entweder warten, bis der Benutzer die Datei schließt, oder Du kannst eine Kopie der Datei an einem anderen Ort erstellen und dort deine Änderungen vornehmen.

3. Wie kann ich meine Datei sperren, wenn ich sie öffne? Du kannst die Datei im exklusiven Modus öffnen, indem Du den folgenden Code verwendest:

Workbooks.Open Filename:="C:\Pfad\Zu\DeineDatei.xlsx", ReadOnly:=False

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