Страницы: 1
RSS
Определение даты по закрашеным ячейкам
 
Добрый день
Имею примерно следующую таблицу, в ней перечислены проекты с датой начала и окончания. Справа идут даты, где период выполнения проекта закрашен черным цветом.
Вопрос в том, как сделать, что бы при закрашивании/осветлении квадратов менялась дата и окончания проекта в ячейках B, C автоматически, без нажатия каких-либо кнопок.
Строчек будет не более 50.
Изменено: Nutik - 17.10.2017 16:00:24
 
Цитата
без нажатия каких-либо кнопок
Кнопку 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
 
Здравствуйте! Ставить вычисления в зависимость от цвета ячейки - не очень хорошая идея. Можно макросом, но тоже возникнет много вопросов, т.к. расцветка может быть разной в разных версиях. К тому же
Цитата
Nutik написал:
без нажатия каких-либо кнопок

Лучше наоборот - закрашивать в зависимости от введенных значений. Один из вариантов решения Вашей задачи - в примере. Обратите внимание на формулы в желтых и оранжевых ячейках, они различаются.
 
Добрый вечерочек! Опередили меня, остается только развить мысли предыдущих ораторов.
Аналог предложения в посте №2 - в первом вложении (Копия Пример). Там пользовательские функции. Нужны включенные макросы. Хоть и сделал их "летучими", но у меня при перекрашивании ячеек все-таки не пересчитываются. При копировании форматов - да, все четко. Чтобы пересчитались либо любое изменение ячеек нужно, либо нажать "F9" - ручная команда пересчитать формулы.

Аналог предложения в посте №3 - во втором вложении (Копия Пример-1_1). Не намерен отнимать пальму первенства - взял файл от _Igor_61. Убрал зависимость от дополнительного листа и переделал, чтобы без разницы было что вводить. Если хоть что-то введено - красится и участвует в определении периода, если пусто или строка нулевой длины (бывает такое), то не красится и не участвует в определении периода.
Изменено: PerfectVam - 17.10.2017 17:52:09
Следствие из третьего закона Чизхолма:
"Даже если ясность изложения исключает неверное толкование, все равно найдется кто-то, кто поймет Вас неправильно."
 
Ага, вот оно!  :)   Все никак не мог придумать, как записать наибольший и наименьший без доп. строк (столбцов), потому и доп.лист пришлось сделать. Знал, что наибольший через ПРОСМОТР можно, но сам еще этот финт не освоил.  PerfectVam, классное решение - связка ЗНАК и ДЛСТР, со ЗНАК вообще раньше не сталкивался, теперь буду знать, что это такое, спасибо за пример!
 
Спасибо за варианты решения, очень помогли!
Страницы: 1
Наверх