Страницы: 1 2 След.
RSS
Макрос, запрещающий изменять листы
 
Здравствуйте. Помогите пожалуйста новичку. В макросах можно сказать не разбираюсь =(.
Суть в том, что бы:
1) защитить изменение имени листов,
2) защитить от удаления существующие листы,
3) запретить добавление листов в книгу (этот я нашёл в инете)
Код
Private Sub workbook_newsheet(ByVal sh As Object)
    Application.DisplayAlerts = False
        MsgBox "Добавлять рабочие листы в эту книгу нельзя", vbInformation
        sh.Delete
    Application.DisplayAlerts = True
End Sub
 
С остальными проблема..
Изменено: qwer160990 - 09.01.2014 13:30:47 (уточнил тему)
 
просто защитите книгу
Живи и дай жить..
 
нужно именно программно это сделать
 
макрорекордер:
ActiveWorkbook.Protect Structure:=True, Windows:=False
Живи и дай жить..
 
 насколько я понимаю,  Ваш код защищает структуру активной книги (т.е. то же самое нежели я защиту книгу поставлю)?
Изменено: qwer160990 - 09.01.2014 15:14:56 (уточнение)
 
именно, а чем вам не нравится?
Живи и дай жить..
 
Да вроде бы всё как хотел, спасибо.  :)
 
Видимо что-то не так делаю, не работает макрос. Листы можно переименовывать, удалять, перемещать..

Код
 Sub защита()
    ActiveWorkbook.Protect Structure:=True, Windows:=False
End Sub
 
Видимо защищаете активную книгу, а листы изменяете в другой...
Либо макрос написали, но выполнить забыли   :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Что нужно сделать, что бы защитить листы от переименования, удаления в конкретной книге?
Что бы он автоматически выполнялся, как тот, что я указал в самом начале, запрещающий добавлять листы.
Изменено: qwer160990 - 11.01.2014 21:00:44 (добавил текста)
 
Цитата
Что нужно сделать, что бы защитить листы от переименования, удаления в конкретной книге?
В этой конкретной книге и напишите макрос. И вместо активной книги используйте Эта книга (Thisworkbook)
 
Зачем автоматически-то? Один раз защитили и все. Защита остается до тех пор, пока Вы сами её не снимите.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Извиняюсь если глупые вещи пишу, только начинаю интересоваться макросами.
С программированием знаком не много, было интересно раньше, сейчас понимаю что для решения некоторых не затейливых задач можно самому написать программу. Было бы здорово ещё знать какой язык используется при написании и какой-нибудь мануал для начинающих почитать.
Юрий М, спасибо, попробую применить, посмотрим что получится.

Попробовал, почему-то так же не работает..
Код
Sub защита()
    ThisWorkbook.Protect Structure:=True, Windows:=False
End Sub
 
Изменено: qwer160990 - 11.01.2014 21:53:42
 
Извиняюсь что не в тему  :)  чем отличается Sub от Private Sub?
 
Вставьте курсор в слово Private и нажмите F1.
 
Цитата
почему-то так же не работает.
Как проявляется это "не работает"?
 
Юрий М, могу переименовывать, перемещать и удалять листы в книге.
 
У меня такого не наблюдается.
 
Самое очевидное: процедуру написали но не выполнили. Поставьте курсов внутрь процедуры и нажмите F5. Процедура выполнится, книга защищена.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
поставил курсор на тексте с кодом, нажал F5 - ничего не произошло..
 
А хоть какой-нибудь макрос работает?
 
Цитата
ничего не произошло..
А ничего и не должно было произойти, кроме установки защиты.
 
Код
поставил курсор на тексте с кодом, нажал F5 - ничего не произошло
Т.е. даже после этого можете свободно добавить, удалить или переименовать любой лист в этой книге?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, да, могу менять структуру. Вот всё что по операторам VBA у меня в проджекте, может как-то поможет разъяснить ситуацию. Тут буквально "пара" строчек.
 
Выполнил Sub защита - возможность удаления листов пропала: пункты меню неактивны.
А зачем Вы все макросы разместили в модуле книги?
 
Юрий М, видимо ещё не разобрался что и где нужно писать. Скажите пожалуйста, как Вы его выполнили.
 
См. #19. Другой вариант: Alt+F8
 
А Вы выложили файл, где защита НЕ была установлена, хотя, Вы писали (#20), что ВЫПОЛНИЛИ...
 
Юрий М, сказали установить курсор и нажать Ф5 - сделал не вышло. Попробую Alt+F8
 
Цитата
сказали установить курсор и нажать Ф5
И куда Вы установили курсор? Нужно в любое место той процедуры, которую собираетесь выполнить.
Страницы: 1 2 След.
Наверх