Ребята, сразу прошу прощения за кросспост с Планетой, но просто было свободное время дома( ) и я решил разобраться с одним интересным, но не важным вопросом. Спросил на Планете, а там что-то народ ничего не отвечает... Короче: Лежал у меня на рабочем столе файлик, в котором я отрабатывал всякие процедурки для коротких ответов на форумах... Я примерно вспоминаю, что экспериментировал с книгой на предмет запрета открывания её вторым пользователем на расшаренном ресурсе, когда она уже открыта кем-либо ранее Именно для этого в процедуре [vba]
Код
Public Sub Auto_Open() With Application: .DisplayAlerts = False: ThisWorkbook.SaveAs Password:="12345": .DisplayAlerts = True: End With End Sub
[/vba]книга при открытии сразу же пересохраняется с паролем 12345 и следующий пользователь не сможет её открыть, на зная пароля (и не отключив макросы ) а при закрытии процедурой [vba]
Код
Public Sub Auto_Close() With Application: .DisplayAlerts = False: ThisWorkbook.SaveAs Password:="": .DisplayAlerts = True: End With End Sub
[/vba]пароль сбрасывается и книгу опять можно будет открыть.
В результате получилось, что ИЗМЕНЕНИЯ В КНИГЕ НЕ СОХРАНЯЮТСЯ! При чём изменения даже в коде! Я пытался даже напрочь удалять все модули и процедуры на листах, а потом сохраняться... пофигу! При очередном открытии - как будто ничего и не изменял.
При этом с другими книгами всё О.К. А эта - заколдун какой-то! Мозги плавятся... Спасите!
Ребята, сразу прошу прощения за кросспост с Планетой, но просто было свободное время дома( ) и я решил разобраться с одним интересным, но не важным вопросом. Спросил на Планете, а там что-то народ ничего не отвечает... Короче: Лежал у меня на рабочем столе файлик, в котором я отрабатывал всякие процедурки для коротких ответов на форумах... Я примерно вспоминаю, что экспериментировал с книгой на предмет запрета открывания её вторым пользователем на расшаренном ресурсе, когда она уже открыта кем-либо ранее Именно для этого в процедуре [vba]
Код
Public Sub Auto_Open() With Application: .DisplayAlerts = False: ThisWorkbook.SaveAs Password:="12345": .DisplayAlerts = True: End With End Sub
[/vba]книга при открытии сразу же пересохраняется с паролем 12345 и следующий пользователь не сможет её открыть, на зная пароля (и не отключив макросы ) а при закрытии процедурой [vba]
Код
Public Sub Auto_Close() With Application: .DisplayAlerts = False: ThisWorkbook.SaveAs Password:="": .DisplayAlerts = True: End With End Sub
[/vba]пароль сбрасывается и книгу опять можно будет открыть.
В результате получилось, что ИЗМЕНЕНИЯ В КНИГЕ НЕ СОХРАНЯЮТСЯ! При чём изменения даже в коде! Я пытался даже напрочь удалять все модули и процедуры на листах, а потом сохраняться... пофигу! При очередном открытии - как будто ничего и не изменял.
При этом с другими книгами всё О.К. А эта - заколдун какой-то! Мозги плавятся... Спасите! Alex_ST
Всё! Въехал! Можно идти спать спокойно! Всё на самом деле очень просто оказалось. Файл лежит у меня на рабочем столе. Когда я его открываю, то в процедуре Auto_Open метод ThisWorkbook.SaveAs без указания пути сохранения сразу же пересохраняет файл в Моих документах. И далее я работаю уже с другим файлом, а не с тем, что лежит на Рабочем столе! В пересохранённом-то файле всё и сохраняется нормально. Но я же не вижу в заголовке окна, что это уже другой файл! Поэтому после закрытия для повторного открытия я опять открываю ИСХОДНЫЙ файл с рабочего стола, а он-то не изменялся!
Всё! Въехал! Можно идти спать спокойно! Всё на самом деле очень просто оказалось. Файл лежит у меня на рабочем столе. Когда я его открываю, то в процедуре Auto_Open метод ThisWorkbook.SaveAs без указания пути сохранения сразу же пересохраняет файл в Моих документах. И далее я работаю уже с другим файлом, а не с тем, что лежит на Рабочем столе! В пересохранённом-то файле всё и сохраняется нормально. Но я же не вижу в заголовке окна, что это уже другой файл! Поэтому после закрытия для повторного открытия я опять открываю ИСХОДНЫЙ файл с рабочего стола, а он-то не изменялся!Alex_ST