Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Как в эксель сделать накопительную таблицу изменений ячейки?

Есть ячейка с данными "в работе" и "в резерве" необходимо фиксировать дату каждого изменения ячейки на "в резерве" в соседнем листе.

Компьютерная грамотностьЭксель+1
Ильнур Тишабаев
  ·   · 7,9 K
увлекаюсь компьютерами и природой. люблю точность...  · 17 окт 2020  · office-study.ru

Предположим, что лист с изменяемыми данными это лист 1, данные заносятся в колонку "D", а запись о дате изменения делаем на листе Лист 2.

Щелкаем на корешке листа 1 внизу правой кнопкой и выбираем команду ПРОСМОТРЕТЬ КОД.

image.png

Откроется окно модуля листа в редакторе VBA. Выбираем у него в верхней части объект Worksheets и событие Change

image.png

В процедуру вставляем следующий код, не забывая что столбец В по счету четвертый, то есть его номер 4

If Target.Column = 4 Then

i = 1

While Sheets("Лист2").Cells(i, 1).Value <> ""

i = i + 1

Wend

Sheets("Лист2").Cells(i, 1).Value = Date

End If

image.png

Вот и все. Не забудьте сохранить файл как книгу с поддержкой макросов с расширением xlsm или как двоичную книгу Excel с расширением xlsb? а так же разрешать макросы при ее открытии. Теперь при каждом изменении в колонке D на листе 1 в столбце А на листе 2 будет добавлена дата изменения. Кстати, если в коде поменять Date на Now, то запишется не только дата изменения, но и время. А еще можно записать рядом логин пользователя, выполнившего изменение

If Target.Column = 4 Then

i = 1

While Sheets("Лист2").Cells(i, 1).Value <> ""

i = i + 1

Wend

Sheets("Лист2").Cells(i, 1).Value = Now

Sheets("Лист2").Cells(i, 2).Value = Environ("UserName")

End If

наконец, следующий код позволит записать дату и время изменения в колонку А, и логин пользователя в колонку В на листе справа от листа, где нужно отследить изменение в колонке D, независимо от названий самих листов.

If Target.Column = 4 Then

j = ActiveSheet.Index

j = j + 1

i = 1

While Sheets(j).Cells(i, 1).Value <> ""

i = i + 1

Wend

Sheets(j).Cells(i, 1).Value = Now

Sheets(j).Cells(i, 2).Value = Environ("UserName")

End If

В общем, вариантов много, выбирайте по вкусу ))). Желаю успеха!

https://office-study.xyz

Успеха Вам. С уважением, СергейПерейти на office-study.ru
Как вместо UserName сделать так чтобы подставлялось новое содержание ячейки?