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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2009, 10:58   #11
inessochka
 
Регистрация: 24.03.2009
Сообщений: 3
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Зачем мы будем гадать? Прикрепите Ваш "проблемный" файл - разберемся.
Ок, прикрепляю
Вложения
Тип файла: rar Пример группировки и защиты.rar (6.7 Кб, 105 просмотров)
inessochka вне форума Ответить с цитированием
Старый 24.03.2009, 12:52   #12
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Макрос "Защитить" должен находиться не в модуле конкретного листа, а в общем программном модуле (см. вложение).
Обратите внимание, что код макроса применяется для активного листа при открытии книги. Если же данные действия нужно применить к нескольким (или ко всем) листам - организуйте соответствующий цикл.
Вложения
Тип файла: rar Пример группировки и защиты_2.rar (5.2 Кб, 382 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 24.03.2009, 15:03   #13
inessochka
 
Регистрация: 24.03.2009
Сообщений: 3
Радость

Понятно, теперь получилось , только возник следующий вопрос: можно ли как то скрыть пароль в макросе?
inessochka вне форума Ответить с цитированием
Старый 25.03.2009, 04:42   #14
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
можно ли как то скрыть пароль в макросе?
Нет. Нельзя. Но можно защитить паролем сам макрос.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 20.05.2009, 11:49   #15
tuktuk
 
Регистрация: 19.05.2009
Сообщений: 3
По умолчанию

Цитата:
можно ли как то скрыть пароль в макросе?

Нет. Нельзя. Но можно защитить паролем сам макрос.
как это можно сделать?
Поясню - проблема таже - есть excel-евский файл со сложной структурой допусков юзеров к тем или иным ячейкам - работает все это естественно если включена защита листа.
Таблица большая и активно задействована группировка - которая не работает с защитой листа.
Сделал все как здесь указано - через макрос, однако если его текст не защитить (точнее не скрыть пароль защиты листа который в нем есть) нафиг вся эта защита нужна - если пароль на защиту будеть лежать в открытом виде в макросе? можно ли как нибудь скрыть пароль или запретить просмотр макросов?

Сразу скажу что юзеры не хакеры - не надо защиту как для пентагона.

Еще как вариант если дать файлу общий доступ и защитить книгу - просмотреть макрос будет нельзя, но и сам он не запускается (по крайней мере не запускается тот код, который представлен в этой теме) выходит ошибка:
Run-time error '1004':
Application-defined or object-defined error
http://www.u-tube.ru/ - Видеохостинг
tuktuk вне форума Ответить с цитированием
Старый 20.05.2009, 12:05   #16
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Самое простое - откройте файл, затем удерживая Alt, последовательно нажмите F11, T, E. в появившемся окне открыть вкладку "Protection" и установить пароль на VBA проект.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 20.05.2009 в 12:07.
SAS888 вне форума Ответить с цитированием
Старый 20.05.2009, 15:58   #17
tuktuk
 
Регистрация: 19.05.2009
Сообщений: 3
Вопрос

сенькс.

Однако возникла еще одна проблема, которую как то не увидел сразу:

защищая лист я оставляю галочки для возможности форматирования ячеек - т.е. ДО запуска макроса можно сдвигать-раздвигать строки (в зависимости от содержимого)

но стоит сохранить файл, открыть его заного - разрешаем запуск макросов - он запускается - вуаля: все робит, а форматирование теперь нет!!! До запуска макроса на защищенном листе форматирование возможно.
т.е. макрос защищая лист дает ему какието обрезанные права.

Это как то правиться?
http://www.u-tube.ru/ - Видеохостинг
tuktuk вне форума Ответить с цитированием
Старый 21.05.2009, 04:55   #18
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
макрос защищая лист дает ему какието обрезанные права.
Не "обркзанные", а те, которые прописаны в опциях и заданы параметрами.
В любом случае, когда защиту листа устанавливает макрос, нужно во-первых, прописать все, что Вам требуется, во-вторых, это не сохраняется при закрытии файла. Чтобы решить все Ваши проблемы, нужно:
1. Включите макрорекордер, установите защиту листа вручную, с выбором всех необходимых опций (выделение, копирование, форматирование и т.п.), затем, отключите запись макроса, войдите в VBE и посмотрите полученный код. Для того, чтобы макросы, в отличии от пользователей, могли вносить изменения на защищенном листе не снимая и вновь устанавливая каждый раз защиту, добавьте опцию UserInterfaceOnly:=True. Этот код и используйте в макросе, устанавливающем защиту.
2. Многие опции защиты, установленные макросом, не сохраняются при сохранении файла. Поэтому, по событию открытия книги нужно снять сохраненную защиту и установить требуемую. Именно так и сделано в моем примере выше. При открытии файла запускаем макрос "Защитить", который делает все, что нужно.
Код:
Private Sub Workbook_Open(): Защитить: End Sub
Этот код должен быть расположен в модуле "Эта книга", а макрос "Защитить" - в общем программном модуле.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 21.05.2009, 09:21   #19
tuktuk
 
Регистрация: 19.05.2009
Сообщений: 3
По умолчанию

Спасибо!
Теперь разобрался, все заработало!

А кто нибудь знает, почему макросы не работают (конкретно - который в этой теме) если книгу защитить и дать ей общий доступ? - вылазит ошибка о которой я писал выше?
http://www.u-tube.ru/ - Видеохостинг
tuktuk вне форума Ответить с цитированием
Старый 30.10.2009, 18:12   #20
amilaxvari
Новичок
Джуниор
 
Регистрация: 30.10.2009
Сообщений: 1
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Макрос "Защитить" должен находиться не в модуле конкретного листа, а в общем программном модуле (см. вложение).
Обратите внимание, что код макроса применяется для активного листа при открытии книги. Если же данные действия нужно применить к нескольким (или ко всем) листам - организуйте соответствующий цикл.
Здравствуйте, мне нужно так чтобы когда открою книгу уже на всех листах работал группировка . Подскажите, пожалуйста как можно это сделать

Последний раз редактировалось amilaxvari; 31.10.2009 в 01:36.
amilaxvari вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как заставить работать макрос при защите листа qwertyuzer Microsoft Office Excel 4 11.02.2009 15:20
Формирование листа при множественом выборе файлов Руслантус Общие вопросы C/C++ 2 09.08.2008 23:16
Добрый день и снова вопрос по защите) Wasily Microsoft Office Excel 17 18.06.2008 10:26
При закрытии листа, стираются данные Romuald Microsoft Office Excel 2 20.12.2007 13:24
Удалить строку листа Excel при выполнении условия Gennady Microsoft Office Excel 14 18.12.2007 13:54