Страницы: 1
RSS
Выделение цветом одной ячейки по значению в другой
 
1.В ячейку В3 вводится текс и автоматически ячейка С3 окрашивается в красный цвет и заполняется надписью "Не начато"
2. В дальнейшем ячейка С3 должна в ручную менять цвет в зависимости от содержания.
В примере пункт 2 реализован
Как прикрутить к этому пункт 1?
 
Цитата
Сергей_АГ написал:
ячейка С3 должна в ручную менять цвет в зависимости от содержания
Это как? Сама и вручную - взаимоисключающие процессы.
Неизлечимых болезней нет, есть неизлечимые люди.
 
в модуль листа
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
    Target.Offset(0, 1).Value = "не начато"
End If
End Sub
 
Цитата
yozhik написал:
в модуль листа
Пожалуйста, покажите на примере
 
кликаете правым мышом на ярлыке листа, выбираете View Code (или Исходный текст). Вставляете код в открывшееся окно. Все. Файл сохраняете с расширением .xlsm, при открытии разрешаете макросы. При вводе чего либо во втором столбце будет в третьем появляться "не начато", а на это у Вас уже УФ сделано
 
Target.Offset(0, 1).Value = "не начато"
Добрый день, подскажите, а как можно реализовать что бы запись "не начато" появлялась не только в столбце "С",  но и в "D", "E"
Спасибо
 
Код
Target.Offset(0, 1).Resize(,3).Value = "не начато"
 
Спасибо
 
Цитата
yozhik написал:
кликаете правым мышом
Огромное спасибо! Всё работает!!!
 
Подскажите еще раз пожалуйста, а ка реализовать возможность отображения в столбцах "С",  "D", "E", "К".
Спасибо
 
Target.Offset(0,1) - сдвиг от изменяемой ячейки на 0 строк вниз и 1 столбец вправо. Напишите вместо 1 нужный Вам сдвиг.  
 
yozhik, спасибо Вам. Тогда сдвиг идет по одной ячейке, а как можно реализовать, что бы заполнение прерывалось, например  в колонках "С",  "D", "E", "К", "Z".
RAN подсказал что можно Target.Offset(0, 1).Resize(,3).Value = "не начато", но данным кодом можно заполнить С,D,E то есть неразрывные столбцы.
Спасибо.
 
Если вам не хватило 4 месяцев, для того, чтобы разобраться, как работает код, то пример для "например" вам тоже не поможет.
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 2 Then
    Range("C1:E1,K1,Z1").Offset(Target.Row - 1, 0).Value = "не начато"
  End If
End Sub
Изменено: Ігор Гончаренко - 05.03.2019 16:17:35
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, Спасибо большое!
Страницы: 1
Наверх