Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Benachrichtung wenn Datei verwendet wird

Forumthread: Benachrichtung wenn Datei verwendet wird

Benachrichtung wenn Datei verwendet wird
17.02.2015 15:24:25
Maren
Hallo,
ich weiß einfach nicht mehr weiter und brauche eure Hilfe!
Eine Datei (Angebote_2015.xlsm) liegt in einem Ordner (Test) und wird mittels VB-Script geöffnet. Da die Datei von mehreren Bearbeitern verwendet wird, soll eine Meldung ausgegeben werden, wenn die Datei bereits geöffnet ist.
Folgende Codes habe ich mir anhand von Beiträgen in Foren zusammengestellt:

Variante I

Public Function Datei_in_Benutzung(Dateiname As String) As Boolean
On Error Resume Next
Close #1
Open Dateiname For Random Access Read Lock Read Write As #1
Datei_in_Benutzung = Err.Number  0
Close #1
End Function
Public Sub Testen()
MsgBox "Die Angebotsliste wird gerade von einem anderen Bearbeiter benutzt!
Datei_in_Benutzung ("c:\Test\Angebote_2015.xlsm")
End Sub

Variante II

Public Function DokumentGeoeffnet(Name As String) As Boolean
On Error Resume Next
DokumentGeoeffnet = Not CBool(Name  Application.Workbooks(Name).Name)
End Function
Public Sub Test()
If DokumentGeoeffnet("Angebote_2015.xlsm") Then
Else
End If
End Sub
Beide Varianten funktionieren nur beim Kompilieren - aber nicht, wenn die Datei geöffnet wird, obwohl diese von einem anderen Benutzer bearbeitet wird.
Was mache ich falsch?

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Benachrichtung wenn Datei verwendet wird
17.02.2015 15:34:24
Roger
Probier es mal damit
Public Sub starte_Datei()
ActiveWindow.WindowState = xlMinimized
Dim cb As Workbook
Dim strDatei As String, strUsername, test
Set cb = ActiveWorkbook
strDatei = cb.Path & "\user.txt"
If cb.ReadOnly = True Then
Open strDatei For Input As #1
Line Input #1, strUsername
MsgBox "Aus Gründen des Datenverlustes wird die Datei geschlossen!" & Chr(13) & "Bitte  _
warten Sie bis " & _
"Benutzer/in " & _
strUsername _
& " die Datei geschlossen hat!", _
vbOKOnly + vbInformation, _
"Hinweis:"
cb.Close (False)
Exit Sub
'MsgBox "Datei wird gerade bearbeitet von " & strUsername, vbCritical, "Bitte beachten"
Else
ActiveWindow.WindowState = xlMaximized
Close #1
Open strDatei For Output As #1
Print #1, Environ("Username")
End If
Close #1
End Sub

Gruss
Roger
Anzeige
;

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