Страницы: 1
RSS
Проверка смежной ячейки (VBA), Проверка значения ячейки и ввод данных в смежную
 
Добрый день.
Есть таблица (во вложении).
Каким образом можно осуществить проверку ячеек в столбцах (A и С) с текстовым значением, равным "Алгоритм по ТК" или "Не знает процесс", и при совпадении выводить в смежную ячейку справа (Алгоритм) текст "Введите данные" таким образом, чтобы после ввода своих данных в столбец "Алгоритм" текст замещался на пользовательский.
Изменено: Andrey Chigarev - 18.04.2022 11:53:34
 
Цитата
Andrey Chigarev написал: в столбцах (A и С)
"ФИО сотрудника" и "ФИО КК". Откуда там возьмутся "Алгоритм по ТК" или "Не знает процесс" мне не понятно.
Смежные ячейки - слева, справа, сверху и снизу, а что Вы имеете ввиду - непонятно, т.к. смежные ячейки для столбца А - это ячейки столбца В, а смежные ячейки столбца С - ячейки столбцов В и D. Но там нет никаких "алгоритмов".
Можете задачу более детальней и понятней описать?

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
написал:
"ФИО сотрудника" и "ФИО КК". Откуда там возьмутся "Алгоритм по ТК" или "Не знает процесс" мне не понятно.Смежные ячейки - слева, справа, сверху и снизу, а что Вы имеете ввиду - непонятно, т.к. смежные ячейки для столбца А - это ячейки столбца В, а смежные ячейки столбца С - ячейки столбцов В и D. Но там нет никаких "алгоритмов".Можете задачу более детальней и понятней описать?
Столбцы от A до F заполняются другими формулами (думал вырезал лишнее, когда отправлял пример, но они там остались). Мы берем сейчас столбцы G:J. Справа от столбца "Обоснованные паузы" столбец "Алгоритм", аналогично и у "Необоснованные паузы". Смежной ячейкой является ячейка справа.
Делается это для того, чтобы сотрудники, заполняющие таблицу, не забывали заполнить столбцы с наименованием алгоритма, если выбирают "Алгоритм по ТК" или "Не знает процесс", по этому и требуется "подсветить" эти ячейки.

На всякий случай загружу файл без лишних столбцов, оставил только 4 рабочих области
 
Через условное форматирование
Код
=И(H2="";ИЛИ(G2="Алгоритм по ТК/СУЗ";G2="Не знает процесс"))
 
в модуль листа добавьте

Формула массива (ФМ) вводится 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
Изменено: МатросНаЗебре - 18.04.2022 12:21:44
 
Цитата
написал:
И ещё вариант макросом.
Цитата
написал:
в модуль листа добавьте
Большое спасибо вам за отзывчивость, буду проверять.
 
Цитата
написал:
И ещё вариант макросом.
А можно это реализовать в режиме постоянной проверки? Например если я удалю из ячейки  "Не знает процесс" - пропадет надпись "Введите данные"
 
Код
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
Страницы: 1
Наверх