Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как правильно защитить лист - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как правильно защитить лист (защита листа с макросами)
Как правильно защитить лист
Rusel Дата: Вторник, 14.02.2012, 08:50 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

В приложении форма заказа, составленная с помощью Alex_ST, за что ему огромное спасибо. Но теперь эту форму нужно отправить клиенту, чтобы он сам мог ее предварительно заполнить и отправить нам уже готовый заказ. При этом хотелось бы обезопасить файл от намеренных либо случайных нежелательных изменений. Но когда я защищаю лист, при выборе "Обработки торцов" выходит ошибка. Что я делаю не так? Как правильно защитить лист, чтобы макрос работал?

Пароль 123
К сообщению приложен файл: ____-14.02.12-.xlsm (25.1 Kb)


Сообщение отредактировал Rusel - Вторник, 14.02.2012, 09:32
 
Ответить
СообщениеВ приложении форма заказа, составленная с помощью Alex_ST, за что ему огромное спасибо. Но теперь эту форму нужно отправить клиенту, чтобы он сам мог ее предварительно заполнить и отправить нам уже готовый заказ. При этом хотелось бы обезопасить файл от намеренных либо случайных нежелательных изменений. Но когда я защищаю лист, при выборе "Обработки торцов" выходит ошибка. Что я делаю не так? Как правильно защитить лист, чтобы макрос работал?

Пароль 123

Автор - Rusel
Дата добавления - 14.02.2012 в 08:50
Jhonson Дата: Вторник, 14.02.2012, 09:29 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

В модуль книги:
[vba]
Code
Sub Auto_Open()
     Worksheets("Заявка").Protect Password:="1234", UserInterfaceOnly:=True
     Worksheets("Цена МДФ кв.м.").Protect Password:="1234", UserInterfaceOnly:=True
     Worksheets("Инструкция").Protect Password:="1234", UserInterfaceOnly:=True
End Sub
[/vba]


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
СообщениеВ модуль книги:
[vba]
Code
Sub Auto_Open()
     Worksheets("Заявка").Protect Password:="1234", UserInterfaceOnly:=True
     Worksheets("Цена МДФ кв.м.").Protect Password:="1234", UserInterfaceOnly:=True
     Worksheets("Инструкция").Protect Password:="1234", UserInterfaceOnly:=True
End Sub
[/vba]

Автор - Jhonson
Дата добавления - 14.02.2012 в 09:29
Rusel Дата: Вторник, 14.02.2012, 09:34 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Jhonson, что это значит? поподробнее пожалуйста. я с макросами только пару дней назад столкнулся.
 
Ответить
СообщениеJhonson, что это значит? поподробнее пожалуйста. я с макросами только пару дней назад столкнулся.

Автор - Rusel
Дата добавления - 14.02.2012 в 09:34
Jhonson Дата: Вторник, 14.02.2012, 09:42 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

При открытии файла все 3 листа будут защищаться с паролем 1234 при этом макросы будут работать.
К сообщению приложен файл: -14.02.12-.xlsm (24.3 Kb)


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
СообщениеПри открытии файла все 3 листа будут защищаться с паролем 1234 при этом макросы будут работать.

Автор - Jhonson
Дата добавления - 14.02.2012 в 09:42
Rusel Дата: Вторник, 14.02.2012, 12:44 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Jhonson, а почему позволяется изменять ячейки "Наименование" как в первой так и во второй таблице? подразумевалось, что можно менять только зеленые ячейки.
 
Ответить
СообщениеJhonson, а почему позволяется изменять ячейки "Наименование" как в первой так и во второй таблице? подразумевалось, что можно менять только зеленые ячейки.

Автор - Rusel
Дата добавления - 14.02.2012 в 12:44
Jhonson Дата: Вторник, 14.02.2012, 13:23 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Тогда так, в модуль ЭтаКнига:

[vba]
Code
Private Sub Workbook_Open()
     Dim Sh As Object
     For Each Sh In Me.Sheets
         Protect_for_User Sh
     Next
End Sub
Sub Protect_for_User(Sh As Object)
     Sh.Protect Password:="1234", UserInterfaceOnly:=True
End Sub
[/vba]
К сообщению приложен файл: 5303642.xlsm (28.1 Kb)


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
СообщениеТогда так, в модуль ЭтаКнига:

[vba]
Code
Private Sub Workbook_Open()
     Dim Sh As Object
     For Each Sh In Me.Sheets
         Protect_for_User Sh
     Next
End Sub
Sub Protect_for_User(Sh As Object)
     Sh.Protect Password:="1234", UserInterfaceOnly:=True
End Sub
[/vba]

Автор - Jhonson
Дата добавления - 14.02.2012 в 13:23
Rusel Дата: Вторник, 14.02.2012, 13:51 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Jhonson, Вот эта работает нормально. А если мне надо поменять пароль, тогда я меняю в Модуле вот это выражение Protect Password:="1234" для каждого листа?
 
Ответить
СообщениеJhonson, Вот эта работает нормально. А если мне надо поменять пароль, тогда я меняю в Модуле вот это выражение Protect Password:="1234" для каждого листа?

Автор - Rusel
Дата добавления - 14.02.2012 в 13:51
Jhonson Дата: Вторник, 14.02.2012, 13:54 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Пароль будет для всех листов один. Вместо 1234 можно вписать любой пароль!


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
СообщениеПароль будет для всех листов один. Вместо 1234 можно вписать любой пароль!

Автор - Jhonson
Дата добавления - 14.02.2012 в 13:54
Rusel Дата: Вторник, 14.02.2012, 13:55 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Jhonson, Спасибо!!!
 
Ответить
СообщениеJhonson, Спасибо!!!

Автор - Rusel
Дата добавления - 14.02.2012 в 13:55
Jhonson Дата: Вторник, 14.02.2012, 14:02 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Только учтите, что меняя пароль, Вам перед сохранением нужно будут снять защиту со всех листов (со старым паролем!), иначе при открытии возможно будет вылезать ошибка!


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Вторник, 14.02.2012, 14:04
 
Ответить
СообщениеТолько учтите, что меняя пароль, Вам перед сохранением нужно будут снять защиту со всех листов (со старым паролем!), иначе при открытии возможно будет вылезать ошибка!

Автор - Jhonson
Дата добавления - 14.02.2012 в 14:02
Rusel Дата: Вторник, 14.02.2012, 14:07 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Jhonson, ОК, учту
 
Ответить
СообщениеJhonson, ОК, учту

Автор - Rusel
Дата добавления - 14.02.2012 в 14:07
RAN Дата: Вторник, 14.02.2012, 14:14 | Сообщение № 12
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Обратите внимание на диапазон, доступный для редактирования в вашем файле.
К сообщению приложен файл: 2395528.jpg (39.0 Kb)


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Вторник, 14.02.2012, 14:17
 
Ответить
СообщениеОбратите внимание на диапазон, доступный для редактирования в вашем файле.

Автор - RAN
Дата добавления - 14.02.2012 в 14:14
Alex_ST Дата: Среда, 15.02.2012, 10:17 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3208
Репутация: 609 ±
Замечаний: 0% ±

2003
Rusel,
кроме защиты листов книги не плохо было бы спрятать лист-справочник "Цена МДФ кв.м."
Посмотрите топик Надстройка "Управление видимостью листов"
Там я выложил надстройку, которую я сам достаточно часто использую когда нужно какой-то лист спрятать.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Среда, 15.02.2012, 10:17
 
Ответить
СообщениеRusel,
кроме защиты листов книги не плохо было бы спрятать лист-справочник "Цена МДФ кв.м."
Посмотрите топик Надстройка "Управление видимостью листов"
Там я выложил надстройку, которую я сам достаточно часто использую когда нужно какой-то лист спрятать.

Автор - Alex_ST
Дата добавления - 15.02.2012 в 10:17
Rusel Дата: Среда, 15.02.2012, 12:15 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Alex_ST, спрятал. как теперь его опять увидеть?
 
Ответить
СообщениеAlex_ST, спрятал. как теперь его опять увидеть?

Автор - Rusel
Дата добавления - 15.02.2012 в 12:15
Alex_ST Дата: Среда, 15.02.2012, 13:41 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3208
Репутация: 609 ±
Замечаний: 0% ±

2003
Quote (Rusel)
спрятал. как теперь его опять увидеть?
Руслан, надеюсь, вы надстройку установили у себя на компе, раз умудрились лист спрятать?
А тогда опять ПКМ на оставшемся видимым листе нажать не слабо?
И там уж выбрать пункт "Управление видимостью..."
Откроется форма со всеми имеющимися в книге листами. Как видимыми, так и скрытыми, и даже шибко заныканными smile



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Среда, 15.02.2012, 13:44
 
Ответить
Сообщение
Quote (Rusel)
спрятал. как теперь его опять увидеть?
Руслан, надеюсь, вы надстройку установили у себя на компе, раз умудрились лист спрятать?
А тогда опять ПКМ на оставшемся видимым листе нажать не слабо?
И там уж выбрать пункт "Управление видимостью..."
Откроется форма со всеми имеющимися в книге листами. Как видимыми, так и скрытыми, и даже шибко заныканными smile

Автор - Alex_ST
Дата добавления - 15.02.2012 в 13:41
qshin1980 Дата: Вторник, 12.11.2013, 21:08 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 60% ±

Excel 2010
Добрый вечер,

Нашел в данном топике сразу 2 свои проблемы.
Еле создал некий проект, состит он из 49 листов с кучей таблиц. Мне необходимо теперь защитить его от субъектов и скрыть ряд вкладок (хорошо скрыть). Но возникла проблема.
1. Листы, которые скрываю через xlSheetVeryHidden, после сохранения и открытия файла почему-то становятся просто скрытыми и их можно открыть через "Вывод на экран скрытого листа". Кто-нить может подсказать, почему?

2. Использую данный код
[vba]
Код
Private Sub Workbook_Open()
     Dim Sh As Object
     For Each Sh In Me.Sheets
         Protect_for_User Sh
     Next
End Sub
Sub Protect_for_User(Sh As Object)
     Sh.Protect Password:="1234", UserInterfaceOnly:=True
End Sub
[/vba]

Защищается все отлично, макросы работают...но, я пытаюсь установить определенные параметры защиты листа, в т.ч. даю разрешение на форматирование строк и изменение объектов (т.к. нужна возможность проставлять примечания).
После сохранения и открытия файла, параметры доступа стираются и остается только выделение заблокированных и незаблокированных ячеек.
Подскажите где ошибка!?

Спасибо!
 
Ответить
СообщениеДобрый вечер,

Нашел в данном топике сразу 2 свои проблемы.
Еле создал некий проект, состит он из 49 листов с кучей таблиц. Мне необходимо теперь защитить его от субъектов и скрыть ряд вкладок (хорошо скрыть). Но возникла проблема.
1. Листы, которые скрываю через xlSheetVeryHidden, после сохранения и открытия файла почему-то становятся просто скрытыми и их можно открыть через "Вывод на экран скрытого листа". Кто-нить может подсказать, почему?

2. Использую данный код
[vba]
Код
Private Sub Workbook_Open()
     Dim Sh As Object
     For Each Sh In Me.Sheets
         Protect_for_User Sh
     Next
End Sub
Sub Protect_for_User(Sh As Object)
     Sh.Protect Password:="1234", UserInterfaceOnly:=True
End Sub
[/vba]

Защищается все отлично, макросы работают...но, я пытаюсь установить определенные параметры защиты листа, в т.ч. даю разрешение на форматирование строк и изменение объектов (т.к. нужна возможность проставлять примечания).
После сохранения и открытия файла, параметры доступа стираются и остается только выделение заблокированных и незаблокированных ячеек.
Подскажите где ошибка!?

Спасибо!

Автор - qshin1980
Дата добавления - 12.11.2013 в 21:08
Serge_007 Дата: Вторник, 12.11.2013, 21:11 | Сообщение № 17
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
где ошибка?
В файле

qshin1980, Вам мало двух предупреждений, обязательно надо банить? Или всё-таки соблаговолите прочитать правила форума?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
где ошибка?
В файле

qshin1980, Вам мало двух предупреждений, обязательно надо банить? Или всё-таки соблаговолите прочитать правила форума?

Автор - Serge_007
Дата добавления - 12.11.2013 в 21:11
Alex_ST Дата: Вторник, 12.11.2013, 22:20 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3208
Репутация: 609 ±
Замечаний: 0% ±

2003
Подскажите где ошибка!?

Скорее всего в Auto_Open / Workbook_Open / Auto_Close / Workbook_BeforeClose
Но без файла более точно предсказать нельзя.
Так что правильно сказал Серж:
В файле



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 12.11.2013, 22:20
 
Ответить
Сообщение
Подскажите где ошибка!?

Скорее всего в Auto_Open / Workbook_Open / Auto_Close / Workbook_BeforeClose
Но без файла более точно предсказать нельзя.
Так что правильно сказал Серж:
В файле

Автор - Alex_ST
Дата добавления - 12.11.2013 в 22:20
qshin1980 Дата: Среда, 13.11.2013, 09:35 | Сообщение № 19
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 60% ±

Excel 2010
Serge_007, добрый день
По всей видимости я нарушил правило о прикреплении файла.
У меня действительно нет возможности выкладывать файлы. Работаю в банке доступы закрыты. Слава богу вообще форум этот не в стоп листе, а то вообще бы не знал что делать. Прошу о снисхождеии, если это действительно это нарушение.

Alex_ST,
Что касается данных процедур Auto_Open / Workbook_Open / Auto_Close / Workbook_BeforeClose. Первое что пришло в голову -заменил Workbook_Open на Auto_Open. Теперь, если скрывать листы xlSheetVeryHidden - "ок", блокировать листы данный макрос:

[vba]
Код
Private Sub Auto_Open ()
      Dim Sh As Object
      For Each Sh In Me.Sheets
          Protect_for_User Sh
      Next
End Sub
Sub Protect_for_User(Sh As Object)
      Sh.Protect Password:="1234", UserInterfaceOnly:=True
End Sub
[/vba]

перестал. Но если блокировать листы вручную с назначением нужного редактирования - ок. Трудоемко, но результат есть. Возможно подскажите, ошибку? Пока потестирую, но в любом случае Alex_ST, огромное Спасибо!!!


Сообщение отредактировал qshin1980 - Среда, 13.11.2013, 09:36
 
Ответить
СообщениеSerge_007, добрый день
По всей видимости я нарушил правило о прикреплении файла.
У меня действительно нет возможности выкладывать файлы. Работаю в банке доступы закрыты. Слава богу вообще форум этот не в стоп листе, а то вообще бы не знал что делать. Прошу о снисхождеии, если это действительно это нарушение.

Alex_ST,
Что касается данных процедур Auto_Open / Workbook_Open / Auto_Close / Workbook_BeforeClose. Первое что пришло в голову -заменил Workbook_Open на Auto_Open. Теперь, если скрывать листы xlSheetVeryHidden - "ок", блокировать листы данный макрос:

[vba]
Код
Private Sub Auto_Open ()
      Dim Sh As Object
      For Each Sh In Me.Sheets
          Protect_for_User Sh
      Next
End Sub
Sub Protect_for_User(Sh As Object)
      Sh.Protect Password:="1234", UserInterfaceOnly:=True
End Sub
[/vba]

перестал. Но если блокировать листы вручную с назначением нужного редактирования - ок. Трудоемко, но результат есть. Возможно подскажите, ошибку? Пока потестирую, но в любом случае Alex_ST, огромное Спасибо!!!

Автор - qshin1980
Дата добавления - 13.11.2013 в 09:35
Poltava Дата: Среда, 13.11.2013, 14:58 | Сообщение № 20
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

Замените Me на ThisWorkbook.Sheets
 
Ответить
СообщениеЗамените Me на ThisWorkbook.Sheets

Автор - Poltava
Дата добавления - 13.11.2013 в 14:58
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как правильно защитить лист (защита листа с макросами)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!