Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2008, 21:16   #1
Legame
Пользователь
 
Регистрация: 03.02.2008
Сообщений: 32
По умолчанию Структура данных и защита листа

Доброго времени суток.

Не могу справиться со следующей ситуацией:
на листе расставлена стандартная группировка данных построчно, при этом включена защита листа от изменения данных....
и при попытке развернуть/свернуть структуру любимый эксель сообщает об ошибке("нельзя использовать данную команду на защищенном листе")

действительно ли невозможно использование такой команды???
и есть ли способ обойти это ограничение, при условии сохранения защиты всех ячеек от любого редактирования?

P.S. достаточно ли описана проблема вопроса?

Подскажите пожалуйста!
заранее спасибо..
Legame вне форума Ответить с цитированием
Старый 04.02.2008, 12:18   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно при помощи VBA.
Если вставить в модуль "Эта книга" код:
Код:
Private Sub Workbook_Open()
    Sheets("Лист1").EnableOutlining = True ' Подставьте ссылку на нужный лист
    Sheets("Лист1").Protect Contents:=True, userInterfaceOnly:=True
End Sub
то при следующем открытии книги все будет работать.
P.S. Небольшое замечание: для нормальной работы нужно сначала защитить лист, сохранить, закрыть. Потом работать как обычно. Если защита снимается, а затем устанавливается, то нужно снова закрывать, сохранять и открывать файл.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 04.02.2008 в 12:38.
SAS888 вне форума Ответить с цитированием
Старый 04.02.2008, 14:14   #3
Legame
Пользователь
 
Регистрация: 03.02.2008
Сообщений: 32
По умолчанию

спасибо огромное за совет. сделал как предложено:

Private Sub Workbook_Open()
Sheets("имя листа").EnableOutlining = True
Sheets("имя листа").Protect Contents:=True, userInterfaceOnly:=True
End Sub

при этом сразу идет запрос на введение пароля. и соответственно, если его не вводить история повторяется("нельзя использовать данную команду на защищенном листе")

просто не совсем знаком с VBA и функциями в нем.
какие неточности допустил? по helpy посмотрел, но ничего не понял.

подскажите..

Последний раз редактировалось Legame; 04.02.2008 в 14:27.
Legame вне форума Ответить с цитированием
Старый 05.02.2008, 05:38   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Если защита с паролем (я надеюсь, что пароль Вы знаете), тогда код должен быть такой:
Код:
Private Sub Workbook_Open()

    ActiveWorkbook.Unprotect Password:="abcd"
    Sheets("имя листа").EnableOutlining = True
    Sheets("имя листа").Protect Password:="abcd", Scenarios:=True, UserInterfaceOnly:=True

End Sub
где "abcd" - пароль, с которым защищен лист.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 05.02.2008, 20:42   #5
Legame
Пользователь
 
Регистрация: 03.02.2008
Сообщений: 32
По умолчанию

Спасибо еще раз.. попробовал
но вопрос то в другом!

необходимо чтобы при включенной защите работала структура данных и также оставались под защитой остальные ячейки...

может я не достачтно точно описал требуемую задачу?
попробую еще раз:
необходимо защитить инфу от редактирования стандартными способами и скрыть формулы или иные преобразования - для этого использую защиту данных паролем от редактирования(разрешение стоит только на выделение данных)
при этом на листах есть структуры подчиненности(группировки данных). и если пароль включен - то структура не работает...
файл предлагается в пользование обычным пользователям - задача которых только смотреть )
и еще автофильтр добавить туда же... он тоже не функционирует при включенной защите...
и при возможности им закрыть доступ на вход в VBA

а вообще в итоге вообще нужна полная зашита файла эксель от любого копирования и клонирования... есть какие то способы как это сделать?

реально ли все это?

Последний раз редактировалось Legame; 05.02.2008 в 21:04.
Legame вне форума Ответить с цитированием
Старый 06.02.2008, 05:48   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Все именно так. Только про автофильтр сразу ничего не было сказано.
Посмотрите вложение. Здесь на рабочем листе разрешены выделение, использование автофильтра и использование функции группировки. Чтобы изменить пароль защиты листа, снимите установленную защиту (пароль "abcd"), войдите в VBA-проект (пароль "1234") и присвойте свое значение переменной "MyPassword". Затем в свойствах проекта во вкладке "Protection" введете (в оба поля одно и то же) пароль на защиту самого VBA-проекта (вместо существующего "1234"). Сохраните файл. Ваши установки вступят в силу при следующем открытии.
Необходимо заметить, что создавать и отменять автофильтр при включенной защите невозможно. Он должен быть создан до того, а примененная защита лишь разрешает его использование.
Вложения
Тип файла: rar Защита.rar (6.4 Кб, 554 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 08.02.2008, 10:01   #7
Legame
Пользователь
 
Регистрация: 03.02.2008
Сообщений: 32
По умолчанию

Огромное спасибо!!!! сам бы вряд ли докапался бы...
примерный нагладно иллюстрирует задачу...

SAS888, могу попросить еще об одной доработке? (не знаю ответите или нет, но в любом случае спасибо)

задача:
1. имеющийся файл необходимо защитить от редакции страниц(ее параметров, колонтитулов итд)
2. защита от копирования(любого) определенных ячеек листа/листов, при возможности их выделения(защищенные и незащищенные)
Legame вне форума Ответить с цитированием
Старый 08.02.2008, 11:34   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Добавлен перехват ID нужных команд и запрет их выполнения. При закрытии файла все восстанавливается. Пароли те же.
Вложения
Тип файла: rar Защита_2.rar (11.8 Кб, 413 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 11.02.2008, 10:08   #9
Legame
Пользователь
 
Регистрация: 03.02.2008
Сообщений: 32
По умолчанию

SAS888, утро доброе!
спасибо, попробовал, пример отличный... тока у меня глюк какой-то произошел и получилось следующее...

книга открывается и отображается в полусвернутом состоянии, а хотелось бы чтобы она на весь экран разворачивалась... при этом если самому запустить макрос(возврата состояния) ничего не менятеся, кроме доступа к параметрам страницы..

не знаю как произошел данный глюк... но это факть... могу скрин оставить. поможете?
Legame вне форума Ответить с цитированием
Старый 11.02.2008, 10:59   #10
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Прикрепите Ваш файл (можно пустой) с макросами.
При запуске Excel (не сохраненной книги, а просто Excel.exe) получается развернуть на весь экран?
И еще: какой у Вас Office?
P.S. Сбой может произойти в результате неправильного выхода из Excel (сброс системы, пропадание питания, отмена задачи из диспетчера и т.п.). Но после открытия и закрытия данной книги (а следовательно автозапуска макроса восстановления стандартного функционирования Excel), все должно восстанавливаться.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 листа. 2 массива данных. Совмещение с отношением многие к одному. Jenya Microsoft Office Excel 3 13.08.2008 06:24
защита листа и снятие защиты в зависимости от логина Dorvir Microsoft Office Excel 2 30.06.2008 13:24
Защита листа, отключает работу макроса valerij Microsoft Office Excel 6 30.03.2008 22:22
Защита листа! Marsik Microsoft Office Excel 2 27.03.2008 18:19
Структура данных : сеть DesolationJam Помощь студентам 2 23.01.2008 10:41