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.