Добрый день Имею примерно следующую таблицу, в ней перечислены проекты с датой начала и окончания. Справа идут даты, где период выполнения проекта закрашен черным цветом. Вопрос в том, как сделать, что бы при закрашивании/осветлении квадратов менялась дата и окончания проекта в ячейках B, C автоматически, без нажатия каких-либо кнопок. Строчек будет не более 50.
Кнопку Enter на клавиатуре нажать придется после закрашивания/осветления квадратов В модуль листа
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("D2:R7")) Is Nothing Then
Application.EnableEvents = False
Dim i As Long
Dim j As Long
For i = 2 To 6
For j = 4 To 19
If Cells(i, j).Interior.ColorIndex = 1 And Cells(i, j + 1).Interior.ColorIndex = 1 Then
Cells(i, 2) = Cells(1, j)
Do
j = j + 1
Loop While Cells(i, j).Interior.ColorIndex = 1
Cells(i, 3) = Cells(1, j - 1)
Exit For
End If
Next
Next
End If
Application.EnableEvents = True
End Sub
Здравствуйте! Ставить вычисления в зависимость от цвета ячейки - не очень хорошая идея. Можно макросом, но тоже возникнет много вопросов, т.к. расцветка может быть разной в разных версиях. К тому же
Лучше наоборот - закрашивать в зависимости от введенных значений. Один из вариантов решения Вашей задачи - в примере. Обратите внимание на формулы в желтых и оранжевых ячейках, они различаются.
Добрый вечерочек! Опередили меня, остается только развить мысли предыдущих ораторов. Аналог предложения в посте №2 - в первом вложении (Копия Пример). Там пользовательские функции. Нужны включенные макросы. Хоть и сделал их "летучими", но у меня при перекрашивании ячеек все-таки не пересчитываются. При копировании форматов - да, все четко. Чтобы пересчитались либо любое изменение ячеек нужно, либо нажать "F9" - ручная команда пересчитать формулы.
Аналог предложения в посте №3 - во втором вложении (Копия Пример-1_1). Не намерен отнимать пальму первенства - взял файл от _Igor_61. Убрал зависимость от дополнительного листа и переделал, чтобы без разницы было что вводить. Если хоть что-то введено - красится и участвует в определении периода, если пусто или строка нулевой длины (бывает такое), то не красится и не участвует в определении периода.
Следствие из третьего закона Чизхолма: "Даже если ясность изложения исключает неверное толкование, все равно найдется кто-то, кто поймет Вас неправильно."
Ага, вот оно! Все никак не мог придумать, как записать наибольший и наименьший без доп. строк (столбцов), потому и доп.лист пришлось сделать. Знал, что наибольший через ПРОСМОТР можно, но сам еще этот финт не освоил. PerfectVam, классное решение - связка ЗНАК и ДЛСТР, со ЗНАК вообще раньше не сталкивался, теперь буду знать, что это такое, спасибо за пример!