Добрый день. Есть таблица (во вложении). Каким образом можно осуществить проверку ячеек в столбцах (A и С) с текстовым значением, равным "Алгоритм по ТК" или "Не знает процесс", и при совпадении выводить в смежную ячейку справа (Алгоритм) текст "Введите данные" таким образом, чтобы после ввода своих данных в столбец "Алгоритм" текст замещался на пользовательский.
"ФИО сотрудника" и "ФИО КК". Откуда там возьмутся "Алгоритм по ТК" или "Не знает процесс" мне не понятно. Смежные ячейки - слева, справа, сверху и снизу, а что Вы имеете ввиду - непонятно, т.к. смежные ячейки для столбца А - это ячейки столбца В, а смежные ячейки столбца С - ячейки столбцов В и D. Но там нет никаких "алгоритмов". Можете задачу более детальней и понятней описать?
Формула массива (ФМ) вводится Ctrl+Shift+Enter Memento mori
написал: "ФИО сотрудника" и "ФИО КК". Откуда там возьмутся "Алгоритм по ТК" или "Не знает процесс" мне не понятно.Смежные ячейки - слева, справа, сверху и снизу, а что Вы имеете ввиду - непонятно, т.к. смежные ячейки для столбца А - это ячейки столбца В, а смежные ячейки столбца С - ячейки столбцов В и D. Но там нет никаких "алгоритмов".Можете задачу более детальней и понятней описать?
Столбцы от A до F заполняются другими формулами (думал вырезал лишнее, когда отправлял пример, но они там остались). Мы берем сейчас столбцы G:J. Справа от столбца "Обоснованные паузы" столбец "Алгоритм", аналогично и у "Необоснованные паузы". Смежной ячейкой является ячейка справа. Делается это для того, чтобы сотрудники, заполняющие таблицу, не забывали заполнить столбцы с наименованием алгоритма, если выбирают "Алгоритм по ТК" или "Не знает процесс", по этому и требуется "подсветить" эти ячейки.
На всякий случай загружу файл без лишних столбцов, оставил только 4 рабочих области
Private Sub Worksheet_Change(ByVal Target As Range)
Const s_A_PAUSES_ALG As String = "Алгоритм по ТК/СУЗ"
Const s_C_PAUSES_DNP As String = "Не знает процесс"
Const s_TEXT_INPUT_DATA As String = "Введите данные"
If Target.Count = 1 Then
With Target.Offset(0, 1)
If Len(.Value) = 0 Then
Application.EnableEvents = False
Select Case True
Case Target.Column = 1 And StrComp(Target, s_A_PAUSES_ALG, vbTextCompare) = 0:
.Value = s_TEXT_INPUT_DATA
Case Target.Column = 3 And StrComp(Target, s_C_PAUSES_DNP, vbTextCompare) = 0:
.Value = s_TEXT_INPUT_DATA
End Select
Application.EnableEvents = True
End If
End With
End If
End Sub
Формула массива (ФМ) вводится Ctrl+Shift+Enter Memento mori
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 Then
If Not Intersect(Target, ActiveSheet.UsedRange) Is Nothing Then
Select Case Target.Column
Case 7, 9
If Not IsError(Target.Value) Then
Select Case Target.Value
Case "Алгоритм по ТК/СУЗ", "Не знает процесс"
Application.EnableEvents = False
Target.Cells(1, 2).Value = "Введите данные"
Application.EnableEvents = True
End Select
End If
End Select
End If
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 Then
If Not Intersect(Target, ActiveSheet.UsedRange) Is Nothing Then
Select Case Target.Column
Case 7, 9
If Not IsError(Target.Value) Then
Select Case Target.Value
Case "Алгоритм по ТК/СУЗ", "Не знает процесс"
Application.EnableEvents = False
Target.Cells(1, 2).Value = "Введите данные"
Application.EnableEvents = True
Case Else
With Target.Cells(1, 2)
If Not IsError(.Value) Then
If .Value = "Введите данные" Then
Application.EnableEvents = False
.Value = Empty
Application.EnableEvents = True
End If
End If
End With
End Select
End If
End Select
End If
End If
End Sub