Страницы: 1
RSS
Защита ячеек
 
Еще раз всем добрый день. Помогите пожалуйста. Есть макрос на защиту листа от изменений, но он без пароля:  
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _  
False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _  
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _  
:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _  
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _  
AllowUsingPivotTables:=True  
 
Как сюда забить пароль, чтобы он был в макросе и при его срабатывании автоматически ставил защиту листа под паролем.  
 
Есть такой же макрос на снятие защиты:  
ActiveSheet.Unprotect  
 
Но он тоже без пароля, нужно чтобы при срабатывании этого макроса пароль вбивался сам и защита листа снималась.  
Спасибо!!!
 
Вот что нам говорит справка по слову Protect  
 
Protect method as it applies to the Worksheet object.  
 
expression.Protect(Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables)  
 
Находим слово пароль - password, делаем выводы и пишем  
 
 
Sub Макрос1()  
   ActiveSheet.Protect Password:=3, DrawingObjects:=False, Contents:=True, Scenarios:= _  
   False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _  
   AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _  
   :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _  
   AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _  
   AllowUsingPivotTables:=True  
End Sub  
 
Sub Макрос2()  
   ActiveSheet.Unprotect (3)  
End Sub  
 
Мне кажется вам надо больше читать справку. Т.е. ставите курсор на незнакомое слово, например, Protect и нажимаете F1
 
Я вот так сделал. Вроди работает :)  
Sub 1()  
Worksheets("12").Protect Password:="123", UserInterfaceOnly:=True  
Worksheets("12").EnableOutlining = True  
End Sub  
Sub 3()  
ActiveSheet.Unprotect Password:="123"  
 
End Sub  
 
Всем большое спасибо!!!
 
А я бы написал бы так  
 
Sub Макрос1()  
   With Worksheets("12")  
       .Protect , UserInterfaceOnly:=True  
       .EnableOutlining = True  
   End With  
End Sub  
 
Sub Макрос3()  
   Worksheets("12").Unprotect  
End Sub  
 
 
Понимаете, для Excel 2003 не обязательно указывать пароль в макросе. Макрос и без пароля хорошо работает. Единственное что,    
 
UserInterfaceOnly:=True  
 
надо ставить каждый раз при открытии книги.    
Кстати, если кто не знает что такое UserInterfaceOnly:=True, то этот аргумент если стоит в True - запрещает работать пользователю на листе, а макрос может делать всё что хотите на листе (удалять строки, вводить информацию в ячейки и т.д.)
 
Да это так, но эту защиту можно снять через Сервис-Защита листа!!!
Страницы: 1
Читают тему
Наверх