Избавиться от сообщений в режиме только для чтения

Автор Poltava, 19.11.2012, 14:56

« назад - далее »

Poltava

1) Есть ли возможность при открытии файла пользователем (в проводнике) Как то избавиться от сообщения из первого скрина выбрав вариант только для чтения
2) Глушу попытки сохранения в режиме только для чтения таким макросом
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Application.DisplayAlerts = False
    If Me.ReadOnly Then
        SaveAsUI = False
        Cancel = True
    End If
    Application.DisplayAlerts = True
End sub



но сообщение из второго скрина все равно выскакивает, можно ли как то от него избавиться
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

kuklp

#1
Poltava, попробуйте без Workbook_BeforeSave(это код к прошлой теме):
With ActiveWorkbook
.Saved = True
.ChangeFileAccess xlReadOnly
End With

Только следует помнить, что изменения не сохранятся. Строка:
.Saved = True
помечает книгу, как уже сохраненную.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Poltava

KuklP спасибо за подсказку, я уверен пригодиться я не знал что книгу можно пометить как сохраненную не сохранив ее! Но это решало бы проблему если бы сообщение возникало при закрытии книги! Но я от него уже избавился записав в обработчик BeforeClose такой код
    If ThisWorkbook.ReadOnly Then
        ThisWorkbook.Close False
        Exit Sub
    End If

Сообщения возникают при открытии книги и при попытке сохранения. Я так понимаю от них нельзя избавиться. а можно ли заглушить нажатие на кнопку сохранить?
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

kuklp

#3
Это вряд ли. При попытке сохранения защищенной ReadOnly книги событие Workbook_BeforeSave не происходит. Можно запустить бесконечный цикл с АПИ findwindow при открытии с поиском окна, но это будет совсем уж идиотское решение. Такой цикл под завязку загрузит процессор и хорошо, если не свалит систему:)
P.S. Или вы имеете ввиду сделать кнопку сохранения неактивной? Можно в 2003 вообще убрать весь командный интерфейс. Но я бы этого не делал. Геморроя много а результат пустяковый.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Poltava

#4
ЦитироватьПри попытке сохранения защищенной ReadOnly книги событие Workbook_BeforeSave не происходит
Еще как происходит! но только после нажатия на ok или сохранить как иначе код из первого сообщения не работал бы, а я как раз им и глушу попытки сохранить книгу но дурацкое окно с кнопочкой ok все равно выскакивает!
ЦитироватьИли вы имеете ввиду сделать кнопку сохранения неактивной?
Да именно это я и имел в виду в последнем сообщении, просто я так понимаю что альтернатив этому способу нет!
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

kuklp

#5
Смотрите пример. Где-то на форумах взято.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Poltava

Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.