Страницы: 1
RSS
Проверить "заблокировано ли"
 
Народ! подскажите плиз, не могу найти(есть похожие темы, но у меня задача немного другая). В общем есть диапазон ячеек, без разницы, хоть 6х6(в реале на моей форме 45х60). в этом диапазоне некоторые ячейки заблокированы для того чтоб после защиты листа, пользователь не смог их редактировать. Так вот задача: т.к. листов около десятка, то необходим макрос, при выполнении которого прошла проверка на "заблокировано" или нет, и те какие заблокированы, окрашивались, допустим в желтый цвет. Эт нужно чтоб отследить и при необходимости "заблокировать/разблокировать" ячейку. Помогите, плиз!
 
Проверить можно так:  
If iCell.Locked Then MsgBox "Ячейка " & iCell.Address(0, 0) & " защищена"
 
так отслеживать нужно до блокировки
 
{quote}{login=}{date=24.03.2011 03:13}{thema=}{post}так отслеживать нужно до блокировки{/post}{/quote}  
Это как? ДО блокировки не будет ничего заблокировано - чего проверять?
 
{quote}{login=The_Prist}{date=24.03.2011 03:25}{thema=}{post}Свойство Locked ячейки не меняется в зависимости от того защищен лист или нет. Так что получить его можно при любом состоянии листа.{/post}{/quote}  
а как подкрасить заблокированную ячейку после установки защиты?
 
Отслеживать нужно по всему диапазону а не ДО блокировки. Не могу сообразить, но смысл примерно такой:  
 
Dim Perem1 As Long, r As Range  
Massiv = Array("F:AR") 'диапазон от балды  
If Not (Intersect(Target, r) Is Nothing) Then  
For Perem1 = 0 To UBound(Massiv)    
' далее должно идти условие "если ячейка заблокирована, то окрасить ее, иначе, следующая ячейка из диапазона  
 
короче, не выходит каменный цветок...не получается...что то перехимичил...))
 
...и еще...все действо, в приципе, нужно(в смысле выполнение макроса) на незаблокированном листе...это разовая процедура, чтоб подправить "защищенные/незащищенные" ячейки в нескльких листах(формах)
 
{quote}{login=The_Prist}{date=24.03.2011 03:40}{thema=Re: }{post}{quote}{login=Miha-nikus}{date=24.03.2011 03:30}{thema=}{post}Massiv = Array("F:AR") 'диапазон от балды{/post}{/quote}Никакого диапазона тут нет. Мой Вам совет - потратьте пару дней времени на изучение азов VBA. Эта строка(процитированная) - создает одномерный массив с верхней границей - 0. Т.е. только с одним значением - "F:AR". Текстовым значением.{/post}{/quote}  
 
Ну, я ж говорю, сам себя перемудрил..:-[ СПАСИБО!!!!!
Страницы: 1
Читают тему
Наверх