Michael
Michael
Function func_IsBookOpen(FileName As String) As Boolean
'eine Funktion, die Prüft ob eine Datei schon geöffnet ist.
Dim s As String
On Error GoTo Nonexistent
s = Workbooks(FileName).Name
func_IsBookOpen = True
Exit Function
Nonexistent:
func_IsBookOpen = False
End Function
Sub Eingabeformular()
Dim Datei, Dateiname As String
Dateiname = "Eingabeformular.xls"
Datei = Cells(43, 2).Value & Dateiname
If func_IsBookOpen(Dateiname) = False Then
'Prüfung, ob eine Datei mit diesem Namen schon geöffnet ist?
'Wenn nicht (=False) dann öffne Datei inkl. Pfadname
Workbooks.Open FileName:=Datei
Else: Workbooks(Dateiname).Activate
End If
End Sub
Namen und Pfad musst Du natürlich anpassen.
VG,
Alex
Michael
Alex
Um in Excel VBA zu prüfen, ob eine Datei geöffnet ist und sie gegebenenfalls zu öffnen, kannst du folgende Schritte ausführen:
Öffne den VBA-Editor:
ALT + F11
, um den VBA-Editor zu öffnen.Erstelle ein neues Modul:
VBAProject (DeineDatei.xls)
und wähle Einfügen
> Modul
.Füge den folgenden Code ein:
Function func_IsBookOpen(FileName As String) As Boolean
' Funktion, die prüft, ob eine Datei bereits geöffnet ist.
Dim s As String
On Error GoTo Nonexistent
s = Workbooks(FileName).Name
func_IsBookOpen = True
Exit Function
Nonexistent:
func_IsBookOpen = False
End Function
Sub Eingabeformular()
Dim Datei, Dateiname As String
Dateiname = "Eingabeformular.xls"
Datei = Cells(43, 2).Value & Dateiname
If func_IsBookOpen(Dateiname) = False Then
' Prüfung, ob eine Datei mit diesem Namen bereits geöffnet ist?
' Wenn nicht (=False), dann öffne die Datei inkl. Pfadname
Workbooks.Open FileName:=Datei
Else
Workbooks(Dateiname).Activate
End If
End Sub
Passe den Dateinamen und den Pfad an:
Cells(43, 2).Value
korrekt sind.Führe das Makro aus:
Eingabeformular
über das Menü Ausführen
oder durch Drücken von F5
im VBA-Editor ausführen.Fehler: "Datei nicht gefunden"
Cells(43, 2).Value
korrekt ist und die Datei tatsächlich existiert.Fehler: "Die Datei ist bereits geöffnet"
excel vba prüfen ob datei von anderem benutzer geöffnet
verwenden, um den Status zu überprüfen.Eine alternative Methode besteht darin, den Workbook_Open
Event zu verwenden, um die Datei beim Öffnen der Arbeitsmappe zu überprüfen. Hier ist ein Beispiel:
Private Sub Workbook_Open()
If Not func_IsBookOpen("Eingabeformular.xls") Then
Workbooks.Open "C:\daten\excel\Eingabeformular.xls"
End If
End Sub
Diese Methode stellt sicher, dass die Datei beim Öffnen der Arbeitsmappe automatisch geöffnet wird, wenn sie nicht bereits geöffnet ist.
Angenommen, du möchtest eine Datei namens Bericht.xls
prüfen und öffnen. Stelle sicher, dass der Pfad in Cells(43, 2).Value
korrekt auf den Speicherort zeigt. Der Code würde dann wie folgt aussehen:
Dateiname = "Bericht.xls"
Datei = Cells(43, 2).Value & Dateiname
Wenn die Datei nicht geöffnet ist, wird sie geöffnet. Ansonsten wird sie aktiviert.
Verwende Fehlerbehandlung: Implementiere On Error Resume Next
in deinem Code, um Fehler zu ignorieren, die auftreten könnten, wenn die Datei nicht gefunden wird.
Dokumentation: Halte deinen Code gut dokumentiert, damit du die Logik später leichter nachvollziehen kannst.
Nutze Variablen: Verwende Variablen für die Dateipfade, um den Code leichter wartbar zu machen.
1. Wie kann ich prüfen, ob eine Datei von einem anderen Benutzer geöffnet ist?
Du kannst die Funktion func_IsBookOpen
verwenden, um zu überprüfen, ob die Datei bereits geöffnet ist. Bei Bedarf kannst du auch spezifische Fehlerbehandlungsmechanismen implementieren, um den Status zu überprüfen.
2. Was mache ich, wenn die Datei nicht gefunden wird?
Stelle sicher, dass der Pfad in Cells(43, 2).Value
korrekt ist und dass die Datei an dem angegebenen Speicherort vorhanden ist. Prüfe auch auf Tippfehler im Dateinamen.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen