|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
03.12.2008, 11:13 | #1 |
Регистрация: 03.12.2008
Сообщений: 7
|
Марокс для excel по защите строк
Никто не подскажет, как сделать макрос, чтобы автоматически протектились ячейки определенного цвета? Желательно написать по-подробнее... буду очень благодарен!
|
03.12.2008, 12:01 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Тема: макрос по защите строк, а спрашиваете как защитить ячейки.
Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
03.12.2008, 12:39 | #3 |
Регистрация: 03.12.2008
Сообщений: 7
|
Очень благодарен за идеальный ответ но, возникла одна проблемка, после данного кода excel полностью виснет не подскажите, в чем может быть причина?
|
03.12.2008, 12:48 | #4 |
Регистрация: 03.12.2008
Сообщений: 7
|
Если это происходит из-за мощности компьютера (эксель долго обрабытывает каждую ячейку), то можно ли как-нибудь облегчить данный цикл? И хотел бы точно удостовериться, что правильно понимаю код:
Sub Protect() On Error Resume Next ActiveSheet.Unprotect For Each c In Cells c.Locked = c.Interior.ColorIndex = 6 Next ActiveSheet.Protect End Sub --> он будет лочить все ячейки желтого цвета (ColorIndex = 6), правильно ведь? |
03.12.2008, 12:58 | #5 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Попробуйте такой вариант:
Код:
По сути, всё то же самое, что и в примере от IgorGO, только вместо перебора всех ячеек листа (For Each c In Cells) происходит перебор ячеек в используемой области листа - ActiveSheet.UsedRange.Cells Возможно, разница в одном слове - UsedRange - значительно увеличит скорость обработки.
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 03.12.2008 в 13:01. |
04.12.2008, 09:58 | #6 |
Регистрация: 03.12.2008
Сообщений: 7
|
Всем большущие спасибо!!!
|
04.12.2008, 10:00 | #7 |
Регистрация: 03.12.2008
Сообщений: 7
|
Только еще один маленький вопрос: как можно это сделать на большее количество цветов, а то я как не пытаюсь через if сделать или простым дублированием - ничего не помогает
|
04.12.2008, 11:07 | #8 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
так даже правильнее будет: предыдущий код присваивал статус "защищаемая"/"незащищаемая" всем ячейкам. Ячейки которые не имели нужного цвета - становились "беззащитными"..., теперь их просто "не трогают".
For Each c In Cells if c.Interior.Color = xx then c.Locked = True: Exit sub end if if c.Interior.Color = yy then c.Locked = True: Exit sub end if .... и так по всем цветам Next
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
04.12.2008, 12:00 | #9 |
Регистрация: 03.12.2008
Сообщений: 7
|
IgorGO,
к сожаленю, после и этого Вашего кода, мой эксель-файлик просто, намертво, виснет есть ли какой-нибудь более облегченный вариант? |
04.12.2008, 12:07 | #10 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Попробуйте так:
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Добрый день и снова вопрос по защите) | Wasily | Microsoft Office Excel | 17 | 18.06.2008 10:26 |
Excel max 256 строк VS user надо 300 строк | Exo | Microsoft Office Excel | 3 | 10.01.2008 17:14 |
HELP!Си - программа для работы со строками + сумма строк в матрице! | DUPLET | Помощь студентам | 1 | 20.12.2007 21:16 |
подписать столбцы в компоненте StringGrid и убрать поля для надписи строк? | фЁдОр | Помощь студентам | 35 | 12.09.2007 14:13 |
Совмещение строк по ячейкам в Excel | asfa | Microsoft Office Excel | 6 | 16.03.2007 01:13 |