Страницы: 1
RSS
Заблокировать строку при условии, что в столбце F будет прописано "передано"
 
Идея состоит в том, что бы заблокировать строку в таблице, при условии что в столбце F будет прописано "передано". Простыми словами, если передано, то заблокируем строку, для того что бы ее нельзя было больше редактировать

Прошу помочь, т.к. сам вообще не могу даже представить как такое можно сделать)
 
Как вариант, не давать выбрать эту строку.
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then
        Application.EnableEvents = False
        Target.Cells(1).Select
        Application.EnableEvents = True
    End If
    If Cells(Target.Row, [F1].Column) = "передано" Then
        Target.Cells(2, 1).Select
    End If
End Sub
 
как вариант, предварительно с листа снять защиту ячеек, - Формат ячеек - Защита - снять галку.
и макрос
Код
Private Sub Worksheet_Change(ByVal Target As Range)
i = Target.Row
If Range("F" & i).Value <> "передано" Then Exit Sub
ActiveSheet.Unprotect
Range("C" & i & ":H" & i).Locked = True
ActiveSheet.Protect
End Sub
 
Или так - сперва снять со всех ячеек листа свойство "защищаемая".
Затем пишите макрос на событие изменения ячейки (можно воспользоваться любым уже написанным :) ), который вызывает например такой:
Код
Sub Prot(r As Long)
ActiveSheet.Unprotect
Rows(r).Locked = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Страницы: 1
Наверх