
I have Excel 2010. I am experiencing situations where people leave work for the day and leave an Excel workbook on a shared file server open exclusively; as a result, other users are unable to edit the workbook. How can I mitigate this problem?
Antwort1
The recommended solution to your problem is to allow multiple users to edit the Excel spreadsheet at the same time. See About shared workbooks in the Excel help for details. The crux of this approach is to go to the Review tab in Excel's Ribbon, then click the "Share Workbook" button under the "Changes" section.
Versuchen Sie unbedingt, die Funktion „Shared Workbooks“ als primäre Lösung zu verwenden. Lesen Sie nur weiter, wenn Sie Shared Workbooks bereits ausprobiert haben und es Ihren Anforderungen nicht gerecht wird.
Wenn das in Ihrer Situation aus irgendeinem Grund nicht funktioniert (bestimmte Arbeitsmappenfunktionen sind nicht mit freigegebenen Arbeitsmappen kompatibel), versuchen Sie FolgendesVBA-Lösung:
Aus Gründen der Sicherheit Ihrer Daten ist dies meiner Meinung nach äußerst unklug.
Stellen Sie sich das Szenario vor, in dem ein Benutzer versehentlich eine Menge Daten gelöscht hat und sich nun fragt, was er tun und wann er es gestehen soll. Wir alle wissen, dass Sie die Arbeitsmappe einfach schließen können, ohne die Änderungen zu speichern, und dann sind wir aus dem Schlamassel raus, aber wenn Sie den nächsten Schritt in Betracht ziehen, wird dieser Code ausgeführt und Sie werden einen sehr schlechten Tag haben. Versuchen Sie also Folgendes:
ALT+F11, um den VB-Editor zu öffnen. Doppelklicken Sie auf „ThisWorkbook“ und fügen Sie die ersten beiden Module rechts ein.
Private Sub Workbook_Open()
StartTimer
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
StartTimer
End Sub
Klicken Sie nun mit der rechten Maustaste auf das Modul „ThisWorkbook“ und fügen Sie diesen Code ein. Speichern Sie, schließen Sie die Arbeitsmappe und öffnen Sie sie erneut. Nach 15 Minuten Leerlauf wird sie automatisch gespeichert und geschlossen.
Const idleTime = 900 'seconds
Dim Start
Sub StartTimer()
Start = Timer
Do While Timer < Start + idleTime
DoEvents
Loop
Application.DisplayAlerts = False
ActiveWorkbook.Close SaveChanges:=True
Application.DisplayAlerts = True
End Sub