Всем здравствуйте. Первым делом поискал похожие темы на форуме. нашёл подходящую, ну почти : Дата: Вторник, 23.11.2021, 12:12 Блокировка ячеек по условиям (Формулы/Formulas), только мне необходимо сначала внести значения, а уж потом заблокировать ячейки. по умолчанию ячейка пуста, после внесения данных необходимо чтоб ячейка блокировалась (нельзя было изменить данные, в т.ч. нажать Delete)
Всем здравствуйте. Первым делом поискал похожие темы на форуме. нашёл подходящую, ну почти : Дата: Вторник, 23.11.2021, 12:12 Блокировка ячеек по условиям (Формулы/Formulas), только мне необходимо сначала внести значения, а уж потом заблокировать ячейки. по умолчанию ячейка пуста, после внесения данных необходимо чтоб ячейка блокировалась (нельзя было изменить данные, в т.ч. нажать Delete)astashov_michail@tutby
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Cells(1, "AA") = 1 Then Exit Sub Set d_ = Intersect(Target, Range("A1,A3,A6")) If Not d_ Is Nothing Then For Each dd_ In d_ If dd_ <> "" Then dd_.Offset(, 1).Select Exit Sub End If Next dd_ End If End Sub
[/vba] Если в АА1 написать 1, то код пропустит выделение нужных ячеек
В модуль листа положите [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Cells(1, "AA") = 1 Then Exit Sub Set d_ = Intersect(Target, Range("A1,A3,A6")) If Not d_ Is Nothing Then For Each dd_ In d_ If dd_ <> "" Then dd_.Offset(, 1).Select Exit Sub End If Next dd_ End If End Sub
[/vba] Если в АА1 написать 1, то код пропустит выделение нужных ячеек_Boroda_
_Boroda_, Здравствуйте. как оказалось , что при Ctrl+Z откатывает назад и свободно можно изменять данные . А это не есть ХОРОШО. :(. можно ли заблокировать «откат на шаг назад»
_Boroda_, Здравствуйте. как оказалось , что при Ctrl+Z откатывает назад и свободно можно изменять данные . А это не есть ХОРОШО. :(. можно ли заблокировать «откат на шаг назад»astashov_michail@tutby
Private Sub Worksheet_Change(ByVal Target As Range) Set d_ = Intersect(Target, Range("A1,A3,A6")) If Not d_ Is Nothing Then Application.EnableEvents = 0 For Each dd_ In d_ If dd_ <> "" Then dd_.Value = dd_.Value End If Next dd_ Application.EnableEvents = 1 End If End Sub
[/vba]
Тоже в модуль листа положите [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Set d_ = Intersect(Target, Range("A1,A3,A6")) If Not d_ Is Nothing Then Application.EnableEvents = 0 For Each dd_ In d_ If dd_ <> "" Then dd_.Value = dd_.Value End If Next dd_ Application.EnableEvents = 1 End If End Sub