Как автоматически заполнять дату в ячейке, когда соседняя ячейка обновляется в Excel?
Автоматическое обновление даты в ячейке при изменении значения другой ячейки (рассчитывается по формуле)
Допустим, у меня есть формула в C2 =A2+B2 . Когда значение (фактическое значение, а не формула) в C2 изменяется, я хотел бы, чтобы текущая дата и время обновлялись в D2.
Многие коды и приемы VBA не работали, когда формула вводится в C2; ни один из них не работает. В C2 дата и время автоматически корректируются, если я ввожу значение вручную. Это связано с тем, что вводится/изменяется фактическое значение, а формула остается неизменной.
Есть ли у меня возможность создать код VBA (или другое решение), который обновляет D2 при изменении C2?
В идеальном мире я бы хотел, чтобы это было активно в ячейках C2:C30 (плюс D2:D30 — дата и время).
Использование программы Excel 2010
Ответов (4) 4
В зависимую ячейку (D2) можно вставить определяемую пользователем функцию (макрофункцию), которая принимает значение ячейки C2 в качестве входного параметра и возвращает текущую дату в качестве выходного.
Наличие C2 в качестве входного параметра для UDF в D2 говорит Excel, что он должен заново оценить D2 при каждом изменении C2 (т.е. если для рабочей книги включен автоматический расчет формул).
РЕДАКТИРОВАТЬ:
Важно указать формат даты и времени D2-Cell, иначе он будет отображать значение даты в виде числового значения.
И вы можете расширить формулу до нужного диапазона, перетащив ее, если вы сохраните ссылку C2 в относительной формуле D2.
Примечание: Это решение может быть не идеальным, так как дата в D2 сбрасывается на текущее значение каждый раз, когда Excel пересчитывает книгу. Для того чтобы D2 отражал только последнее изменение C2, необходимо отслеживать предыдущие значения C2. Это можно реализовать, например, в UDF, указывая адрес в дополнение к значению входного параметра, сохраняя входные параметры на скрытом листе и сравнивая их с предыдущими значениями при каждом вызове UDF.
Дополнение
В этом примере мы отслеживаем изменения значений ячеек и возвращаем дату и время, когда наблюдалось последнее изменение. При его использовании следует помнить, что:
Использование FROM такое же, как описано выше.
D F работает только с диапазонами ввода, которые содержат одну ячейку.
В свойствах документа для книги хранится последнее значение ячейки, а также время и дата, когда было обнаружено изменение. Размер файла может значительно увеличиться, если формула используется с большими наборами данных, поскольку объем памяти (значение последней ячейки + дата последнего изменения) увеличивается для каждой ячейки, отслеживаемой формулой. Excel также может испытывать трудности с обработкой большого количества свойств документа, и код в конечном итоге может замедлиться.
При изменении имени рабочего листа вся информация об отслеживании содержащихся в нем ячеек теряется.
Код может быть медленным для значений ячеек, для которых преобразование в строку не детерминировано.
Приведенный ниже код не был протестирован и должен рассматриваться только в качестве пробного варианта. Используйте его на свой страх и риск.
Автоматическое фиксирование даты при изменении данных в ячейке с выпадающим списком
Помогите с решением следующей задачи:
В таблице есть несколько столбцов, расположенных в разных местах таблицы (не по порядку) В них ежедневно собираются данные по выработке работников. Нужно фиксировать каждую дату изменения стадии работы с клиентом (столбца I) в соответствующую ячейку с названием статуса (U/V/W/X/Y/Z/AA). Информация по статусам на Листе 2
Важно не корректировать значение ячейки с отметкой времени и не удалять дату. Возможно, есть другое решение
Описания решений в сети либо не работают, либо не подходят к моей ситуации. Я только читаю о макросах, поэтому надеюсь на четкий ответ или предложение. ЦЕЛЬ: Мне нужно понять, сколько времени прошло от одного состояния клиента до другого. Сколько времени ушло на завершение продажи клиенту.
Этот файл прикреплен.
Anexos (на английском языке)
Копия ОП_№2_Воронка.xlsx (96.7 Кб, 34 просмотров) |
Автоматическое изменение цвета при изменении числового значения в соседней ячейке
Здравствуйте. если с темой повторился, дайте пожалуйста ссылку где прочитать.. вообщем суть.
Автоматическое проставление даты и времени при изменении ячейки
В ячейке забита формула "=ЕСЛИ(RC="";"";ТДАТА())" соответственно как только ячейка RC1 перестает.
Как сделать автоматическое копирование данных при их изменении?
Я не люблю C++, но вынужден программировать на нем. До этого я пользовался языком, в котором нет.
Firebird 2.5 Автоматическое обновление содержимого DataGridView при изменении данных
Всем доброго времени суток подскажите как обновлять автоматически Datagridview при добавлении.
Попробуйте изменить дату в столбцах U, V, W, X, Y, Z и AA
Ячейки с введенной датой нельзя сделать активной без снятии защиты. Снять защиту можно вводом в ячейку А1 Lelikas. Шрифт в этой ячейке белый, поэтому слово снятия защиты не будет видно.
В столбце I "Стадия работы с клиентом" у вас выпадающие списки в которых вы выбираете статус в зависимости от количества введенных дат. Эту работу можно поручить формуле
Прикрепления
Копия ОП_№2_Воронка_01.rar (48.0 Кб, 16 просмотров) |
AlexM , спасибо огромное. Дело еще в том, что мне необходимо, когда меняешь "Стадию работы с клиентом", проставлялась автоматически текущая дата в соотв. ячейке "Дата внесения изменений статуса 1,2,3,4,5,6,7 т.е. в дальнейшем можно было увидеть, на каком стадии завис клиент, и сколько прошло времени до перехода на другой статус. Возможно это только в моих фантазиях получится воплотить, но если с последней даты прошло более 5 дней, последняя дата подсвечивается желтым, более 10 дней, то красным цветом.
Еще раз спасибо.
Вложения
Копия ОП_№2_Воронка_02.rar (50.0 Кб, 24 просмотров) |
Это потрясающе. Ты гений.
А когда вы вводите клиента в колонку E, вы можете автоматически подтянуть текущую дату в колонку T.
А что касается моей фантазии, то если от даты последнего статуса U, V, W, X, Y, Z прошло более 5 дней по отношению к текущей дате, то она выделяется желтым цветом, более 10 дней — красным.
Сообщение было отмечено Lelikas123 как решение
Решение
Вложения
Копия ОП_№2_Воронка_03.rar (50.1 Кб, 24 просмотров) |
Почти точно то, что нам нужно. Единственный нюанс, цветом выделяется только последняя дата, то есть если даты уже установлены в ячейках U, V, то их выделять не нужно, выделяется только последняя заполненная датой ячейка, то есть ячейка W по отношению к текущей дате.
Не знаю, ясно ли я выразилась.
Добавлено через 11 минут
В столбец S вставить последнюю дату изменения ячейки F, т.е. при изменении ячейки F, автоматически меняется дата в ячейке S
Сообщение было отмечено Lelikas123 как решение
Решение
Объявления
Копия ОП_№2_Воронка_04.rar (50.0 Кб, 6 просмотров) |
AlexM, мне очень неудобно. На запрос Вы отреагировали очень быстро, что было неожиданно. Я не в первый раз формулировал запрос, поэтому не учел этот момент. Это моя последняя просьба. Я буду иметь в виду.
Правильный файл прилагается
Прикрепленные файлы
Копия ОП_№2_Воронка_05.rar (80.9 Кб, 4 просмотров) |
Сообщение было отмечено Lelikas123 как решение
Решение
Прикрепления
Копия ОП_№2_Воронка_06.rar (49.2 Кб, 25 просмотров) |
На форуме есть специальные инструменты для выражения благодарности и БОЛЬШОГО СПАСИБО.
Меню пользователя @ AlexM |
AlexM, доброе утро, вы можете помочь мне снова? Поскольку этапы изменились и были добавлены новые параметры, можете ли вы посмотреть макрос?
Первоначальные требования выполнены, изменено количество статусов, порядок в ячейках. МАЙ СПИСОК
Текущая дата автоматически извлекалась из столбца V всякий раз, когда клиент вводился в столбец E
Необходимо, когда меняешь "Стадию работы с клиентом", проставлялась автоматически текущая дата в соотв. ячейке "Дата внесения изменений статуса X.Y.Z.AA т.е. в дальнейшем можно было увидеть, на каком стадии завис клиент, и сколько прошло времени до перехода на другой статус. Если с последней даты статуса X.Y.Z.AA прошло более 5 дней по отношению к текущей дате, то она дата подсвечивается желтым, более 10 дней, то красным цветом, если даты уже проставлены в ячейках X, Y, то их выделять не нужно, выделяется только последняя заполненная с датой ячейкой т.е. ячейка Z относительно текущей даты.
В столбце W вставьте последнюю дату, когда ячейка F была изменена, т.е. когда изменяется ячейка F, автоматически изменяется дата в ячейке W
В ячейке с датой очень важно, чтобы значение не изменялось, а дата не удалялась.
Вложения
Воронка.rar (40.0 Кб, 6 просмотров) |
Вложения
Воронка_01.rar (32.1 Кб, 15 просмотров) |
AlexM, здравствуйте, мне снова нужна ваша помощь, не могли бы вы взглянуть на макрос?
Порядок, в котором расположены ячейки, был добавлен в качестве статуса состояния. МАЙСКИЙ СПИСОК
Необходимо, когда меняешь "Стадию работы с клиентом", проставлялась автоматически текущая дата в соотв. ячейке "Дата внесения изменений статуса Y.Z.AA.AB.AC т.е. в дальнейшем можно было увидеть, на каком стадии завис клиент, и сколько прошло времени до перехода на другой статус. Если с последней даты статуса Y.Z.AA.AB.AC прошло более 5 дней по отношению к текущей дате, то она дата подсвечивается желтым, более 10 дней, то красным цветом, если даты уже проставлены в ячейках Y, Z, то их выделять не нужно, выделяется только последняя заполненная с датой ячейкой т.е. ячейка AA относительно текущей даты.
В столбце W введите дату заполнения ячейки Е.
В столбце X вставьте последнюю дату, когда ячейка F была изменена, т.е. когда ячейка F будет изменена, дата в ячейке X будет изменена автоматически.
Внимание: Ячейки, содержащие введенные даты, нельзя сделать активными без снятия защиты. Ячейку A1 можно разблокировать, введя Lelikas.
Важно, чтобы значение в ячейке с введенной датой не корректировалось и не удалялось.