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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2010, 15:23   #1
dzv
Пользователь
 
Аватар для dzv
 
Регистрация: 15.01.2010
Сообщений: 55
Вопрос Снять/защитить диапазон с учетом добавления строк

Добрый день уважаемые участники клуба!

Помогите решить задачу.

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

Код:
Private Sub Workbook_Open()
    '// Снять защиту диапазона ячеек и строк.
    Worksheets(1).Unprotect Password:="пароль"
    Worksheets(1).Range("$D$3,$I$2:$N$2,$V$7,$F$14:$I$14,$N$14:$R$14,$B$16:$D$16,$B$17:$D$17").Name = "РабочаяОбласть"
    Range("РабочаяОбласть").Locked = False
    Range("РабочаяОбласть").FormulaHidden = False
    Rows(10).Locked = False
    Rows(10).FormulaHidden = False
    Worksheets(1).Range("$D$3").Select
    Worksheets(1).Protect Password:="пароль", AllowSorting:=True, AllowFiltering:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    '// Возобновить защиту диапазона строк.
    Worksheets(1).Unprotect Password:="пароль"
    Worksheets(1).Rows("1:4000").Locked = True
    Worksheets(1).Rows("1:4000").FormulaHidden = True
    Worksheets(1).Protect Password:="пароль"
End Sub
Жду с нетерпением Ваши ответы и предложения!

С уважением, Дмитрий.
Вложения
Тип файла: rar Dobavut.rar (10.5 Кб, 29 просмотров)
dzv вне форума Ответить с цитированием
Старый 04.02.2010, 18:13   #2
dzv
Пользователь
 
Аватар для dzv
 
Регистрация: 15.01.2010
Сообщений: 55
Печаль

Я так понимаю со словом "Уважаемые" я погорячился...

Просмотров много, но ответов ноль...

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

Или возможно я неправильно задал и изложил свой вопрос?!
dzv вне форума Ответить с цитированием
Старый 04.02.2010, 19:05   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Ниже приведен код, в котором это необходимо реализовать (я так понимаю добавить определенный алгоритм)
А какое отношение имеет Ваш код к прикреплённому файлу?

Вы уверены, что это - тот самый файл?
Именованный диапазон "РабочаяОбласть" с адресом "$D$3,$I$2:$N$2,$V$7,$F$14:$I$14,$N $14:$R$14,$B$16:$D$16,$B$17:$D$17"
мягко говоря, не очень-то совпадает с диапазоном данных на листе...

Цитата:
они (строки) каким-то образом считались, чтобы при новом открытии эти строки были не защищены.
Что и где считать, и какие строки надо защищать, я вообще не понял...
EducatedFool вне форума Ответить с цитированием
Старый 05.02.2010, 12:33   #4
dzv
Пользователь
 
Аватар для dzv
 
Регистрация: 15.01.2010
Сообщений: 55
По умолчанию

EducatedFool, спасибо что откликнулись!

"РабочаяОбласть + Rows(10)" - это начальный диапазон.
Возможно я не правильно выражаюсь, простите, не программист и даже не любитель, скорее начинающий чайник.

Код не вставил в файл, потому что он не доработанный. С помощью кнопок, которые в файле, будут добавляться/удаляться строки после строки №10 ("Rows(10)").
Вот и сам вопрос:

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

Мой файл при открытии вызывает первую часть кода и при этом снимает с "РабочаяОбласть + Rows(10)" защиту ячеек. А когда я его закрываю, защищает строки с 1:4000 и автоматически его сохраняет, чтобы при открытии файла без макросов, в нем ничего невозможно было изменять.
dzv вне форума Ответить с цитированием
Старый 05.02.2010, 13:36   #5
0mega
Форумчанин
 
Регистрация: 12.09.2009
Сообщений: 232
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Что и где считать, и какие строки надо защищать, я вообще не понял...
Похоже, что автор желает "закрыть" на пароль первые 10 строк, а остальные сделать общедоступными
0mega вне форума Ответить с цитированием
Старый 05.02.2010, 13:43   #6
dzv
Пользователь
 
Аватар для dzv
 
Регистрация: 15.01.2010
Сообщений: 55
Сообщение Уточнение...

0mega, немножко не так.

Вот что открытым:
1. "$D$3,$I$2:$N$2,$V$7,$F$14:$I$1 4,$N $14:$R$14,$B$16:$D$16,$B$17:$D$17" = РабочаяОбласть
2. И строка №10, а также все ново-добавленные строки после №10.
№10,11,12,13,...,4000 - только добавленные!
dzv вне форума Ответить с цитированием
Старый 05.02.2010, 17:31   #7
0mega
Форумчанин
 
Регистрация: 12.09.2009
Сообщений: 232
Сообщение

к сожалению, я не смогу здесь помочь...
а вот EducatedFool, если еще раз зайдет на эту тему, то наверняка предоставит Вам все на "блюдечко с голубой кайомочкой"
P.S.
Могу лишь подбросить идейку.
А что если все ( что не должно быть общедоступным) разместить на новом листе, а лист закрыть паролем.

Последний раз редактировалось 0mega; 05.02.2010 в 17:37.
0mega вне форума Ответить с цитированием
Старый 05.02.2010, 17:38   #8
0mega
Форумчанин
 
Регистрация: 12.09.2009
Сообщений: 232
Сообщение

по непонятной причине мой пост продублировался 2 раза и поэтому вместо 2-го дубля написано это оправдание

Последний раз редактировалось 0mega; 05.02.2010 в 17:41.
0mega вне форума Ответить с цитированием
Старый 08.02.2010, 10:29   #9
dzv
Пользователь
 
Аватар для dzv
 
Регистрация: 15.01.2010
Сообщений: 55
Радость

0mega, спасибо Вам!
Я так и сделал, пока что это единственный способ, благо еще тема появилась про защиту файла паролем, где EducatedFool как всегда на высоте.

Думаю, смысла больше нет отвечать в этой теме, разве, что будут конкретные идеи.

Буду дальше бороться со своим файлом, всем удачи!
dzv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод каталога с учетом иерархии из MySQL eurobax SQL, базы данных 7 17.08.2012 16:05
Поиск файла FileSystemObject, с учетом даты Rossoman Microsoft Office Excel 3 10.11.2009 06:14
составить запрос с учетом времени sinj SQL, базы данных 9 09.06.2009 13:41
Как написать в коде чтобы диапазон А копировался как значение в диапазон В. Dorvir Microsoft Office Excel 12 23.05.2008 22:11
Запись файлов в *.тхт с учетом повторяющихся значений Arteom Общие вопросы Delphi 3 03.04.2008 17:26