Страницы: 1
RSS
Отключение сообщения о том, что ячейка защищена от изменений
 
Доброе время суток УВ Форумчане!  
Подскажите пожалуйста, как отключить сообщение о том, что ячейка защищена от изменений, которое появляется при попытке изменения заблокированной ячейки на защищенном рабочем листе.  
Application.DisplayAlerts=False не помогает.  
 
Заранее благодарен!
 
Скажите, это хоть в принципе, реально сделать?  
Если нет то выхода нет, придется терпеть мучения)
 
Снимите защиту. Или файл не открывайте :)
 
)))) Понял, большое спасибо!)
 
А не проще запретить выделение заблокированных ячеек?  
Ячейку не выделить - соответственно, изменить тоже никак, = и сообщение не появится
 
не спасет.  
любой даблклик или нажатие клавиши - выскочит окошко
 
razmus  
могу предложить только защиту от изменения по даблклику.  
от клавиши не спасет, но может кому идея какая придет.  
чтобы отсечь окошко при изменении путем даблклика  
 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)  
Cancel = True  
End Sub
 
У меня не выскакивает :) или я что то не так сделал?
 
выдели a6:a8  и попробуй удалить :)
 
Sirius, хороший способ, но не в моем случае, мне выделение заблокированных нужно)  
У меня в зависимости от выделенной ячейки работает соответствующий макрос.  
Но в любом случае всем спасибо за помощь в решении проблемы.
 
Если выделение нужно, тогда можно в код макроса в начало добавить:  
ActiveSheet.Unprotect  
и в конец  
ActiveSheet.Protect, DrawingObjects:=True
 
У меня появилась идея лучше, задать ячейки для изменения, а для остальных выключить дабл клик. Решает часть проблем.  
Если строка разрешена для редактирования, то есть в 12-ом столбце 1, и жмем в ячейки которые можно редактировать, 1-я, 3-я, и 5-я то все ок. если нет то дабл клик отключен и защита работает. Проблема можно сказать решена)  
Не хватает только функции, BeforeChange)  
 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)  
   ActiveRow = Selection.Row  
   ActiveCol = Selection.Column  
   If Cells(ActiveRow, 12) = 1 And (ActiveCol = 1 Or ActiveCol = 3 Or ActiveCol = 5) Then  
       Cancel = False  
   Else  
       Cancel = True  
   End If  
End Sub
 
Кто знает, как можно передать переделать Range("F8,F14,F20,F27,F32,H28").Select  
в Range(Cells(1,1), Cells(4,1), Cells(1,5), Cells(1,8), Cells(1,9),).Select  
или Range(R1C1, R1C4, R5C1, R8C1).Select  
 
И возможно ли это?    
заранее благодарен
 
Понял как можно)  
   Range("" & "F" & "5" & "," & "l" & "7" & "," & "G" & "9" & "").Select  
 
Но появился другой вопрос. Как можно передать имя диапазона, а не его порядковый номер в эту строку, чтоб можно было удалять по имени, а не хранить номер, а потом искать, номер и удалять.  
   ActiveSheet.Protection.AllowEditRanges(1).Delete  
 
Private Sub CommandButton2_Click()  
ANS = ActiveSheet.Name  
ActiveRow = Selection.Row  
ActiveSheet.Unprotect Password:="123"  
   ActiveSheet.Protection.AllowEditRanges(1).Delete  
    Cells(ActiveRow, 8) = 1  
Worksheets(ANS).Protect Password:="123", UserinterfaceOnly:=True  
End Sub
Страницы: 1
Читают тему
Наверх
Loading...