Суть такова, есть файл excel, он лежит на Яндекс.Диске к Яндекс.Диску имеют доступ много человек, если человек работает в файле excel и заходит другой человек с другого ПК создаётся задвоение файла.
Как быть чтобы если в файле кто то есть не пускать другого?
Файл не в общем доступе а просто лежит в облаке на ПК, и у других он также лежит на ПК в облаке!
Всем привет!
Суть такова, есть файл excel, он лежит на Яндекс.Диске к Яндекс.Диску имеют доступ много человек, если человек работает в файле excel и заходит другой человек с другого ПК создаётся задвоение файла.
Как быть чтобы если в файле кто то есть не пускать другого?
Файл не в общем доступе а просто лежит в облаке на ПК, и у других он также лежит на ПК в облаке!otpbnvem
Можно реализовать систему блокировки с помощью макроса VBA:
Когда пользователь открывает файл, создается скрытый временный файл (например, lock.txt). Если файл уже открыт, новый пользователь увидит предупреждение и не сможет редактировать документ. При закрытии Excel временный файл удаляется.
Пример VBA-кода для блокировки:
[vba]
Код
Private Sub Workbook_Open() Dim lockFile As String lockFile = ThisWorkbook.Path & "\lock.txt"
' Проверяем, существует ли файл lock.txt If Dir(lockFile) <> "" Then MsgBox "Файл уже открыт другим пользователем!", vbExclamation, "Доступ запрещен" ThisWorkbook.Close False Exit Sub End If
' Создаем lock-файл Open lockFile For Output As #1 Print #1, "Locked" Close #1 End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) ' Удаляем lock-файл при закрытии книги On Error Resume Next Kill ThisWorkbook.Path & "\lock.txt" On Error GoTo 0 End Sub
[/vba]
Можно реализовать систему блокировки с помощью макроса VBA:
Когда пользователь открывает файл, создается скрытый временный файл (например, lock.txt). Если файл уже открыт, новый пользователь увидит предупреждение и не сможет редактировать документ. При закрытии Excel временный файл удаляется.
Пример VBA-кода для блокировки:
[vba]
Код
Private Sub Workbook_Open() Dim lockFile As String lockFile = ThisWorkbook.Path & "\lock.txt"
' Проверяем, существует ли файл lock.txt If Dir(lockFile) <> "" Then MsgBox "Файл уже открыт другим пользователем!", vbExclamation, "Доступ запрещен" ThisWorkbook.Close False Exit Sub End If
' Создаем lock-файл Open lockFile For Output As #1 Print #1, "Locked" Close #1 End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) ' Удаляем lock-файл при закрытии книги On Error Resume Next Kill ThisWorkbook.Path & "\lock.txt" On Error GoTo 0 End Sub