Здравствуйте! Нужна помощь в решении следующей задачи: Есть Excel файл (несколько листов) который будет храниться на локальном диске. Нужно дать возможность любому из пользователей редактировать его как угодно (удалять, менять, фильтровать...) но при этом не давать возможность сохранить внесенные изменения при выходе из файла. Ну, или сохранить внесенные изменения, но только в новой книге. Заранее благодарен!
Здравствуйте! Нужна помощь в решении следующей задачи: Есть Excel файл (несколько листов) который будет храниться на локальном диске. Нужно дать возможность любому из пользователей редактировать его как угодно (удалять, менять, фильтровать...) но при этом не давать возможность сохранить внесенные изменения при выходе из файла. Ну, или сохранить внесенные изменения, но только в новой книге. Заранее благодарен!migo
Я что-то не совсем понял - нужен запрет на сохранение ТОЛЬКО при закрытии? А просто сохранять, без закрытия, можно? По-моему, это несколько странно, мягко говоря. Предлагаю немного другой вариант. Разрешает сохранение (любое), если на листе "Знач" в А1 введено "112233". Если макросы при открытии не разрешены - показывает требование их включить. [vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean) Лист1.Visible = xlSheetVisible Лист2.Visible = xlSheetVeryHidden s_ = Лист2.Range("A1") = 112233 ThisWorkbook.Close savechanges:=s_ End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If Лист2.Range("A1") <> 112233 Then Cancel = 1 MsgBox "А вот не буду сохранять! Надоело!" End If End Sub
Private Sub Workbook_Open() Лист2.Visible = xlSheetVisible Лист1.Visible = xlSheetVeryHidden End Sub
[/vba] Можно еще причесать немного.
Я что-то не совсем понял - нужен запрет на сохранение ТОЛЬКО при закрытии? А просто сохранять, без закрытия, можно? По-моему, это несколько странно, мягко говоря. Предлагаю немного другой вариант. Разрешает сохранение (любое), если на листе "Знач" в А1 введено "112233". Если макросы при открытии не разрешены - показывает требование их включить. [vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean) Лист1.Visible = xlSheetVisible Лист2.Visible = xlSheetVeryHidden s_ = Лист2.Range("A1") = 112233 ThisWorkbook.Close savechanges:=s_ End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If Лист2.Range("A1") <> 112233 Then Cancel = 1 MsgBox "А вот не буду сохранять! Надоело!" End If End Sub
Private Sub Workbook_Open() Лист2.Visible = xlSheetVisible Лист1.Visible = xlSheetVeryHidden End Sub
Вы правы! Нужен запрет на сохранение любых изменений, внесенных в документ (для всех пользователей, кроме меня). т.е., люди должны иметь возможность фильтровать, делать сводные таблицы, менять форматы...но когда они закончат работу с документом, внесенные изменения не должны сохраниться (либо сохраниться в отдельном файле).
Вы правы! Нужен запрет на сохранение любых изменений, внесенных в документ (для всех пользователей, кроме меня). т.е., люди должны иметь возможность фильтровать, делать сводные таблицы, менять форматы...но когда они закончат работу с документом, внесенные изменения не должны сохраниться (либо сохраниться в отдельном файле).migo
Вы правы! Нужен запрет на сохранение любых изменений, внесенных в документ (для всех пользователей, кроме меня). т.е., люди должны иметь возможность фильтровать, делать сводные таблицы, менять форматы...но когда они закончат работу с документом, внесенные изменения не должны сохраниться (либо сохраниться в отдельном файле).
Ну так шаблон excel этот вопрос и решает. Любая попытка сохранить данные будет подразумевать сохранение новой книги.
Вы правы! Нужен запрет на сохранение любых изменений, внесенных в документ (для всех пользователей, кроме меня). т.е., люди должны иметь возможность фильтровать, делать сводные таблицы, менять форматы...но когда они закончат работу с документом, внесенные изменения не должны сохраниться (либо сохраниться в отдельном файле).
Ну так шаблон excel этот вопрос и решает. Любая попытка сохранить данные будет подразумевать сохранение новой книги.SkyPro