Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: Александр Меркурьев от 11.12.2016, 16:55

Название: Дату и время предыдущих записей оставлять фиксированными
Отправлено: Александр Меркурьев от 11.12.2016, 16:55
Пытаясь автоматизировать табельный учет сотрудников, столкнулся с такой проблемой:
при вводе фамилии в какую-либо из ячеек ""именованного списка"" столбца С, в стобце D, правее этой фамилии автоматически появляется значение текущей даты и времени. При занесении следующей фамилии в стобец С правее ее, соответственно, появляется текущее время занесения следующей фамилии, а даты и время  предыдущих занесений  почему-то ТОЖЕ МЕНЯЮТСЯ!   Как добиться того, чтобы дата и время предыдущих занесений оставались фиксированными?    
Название: Re: автоматизировать табельный учет сотрудников
Отправлено: Wasilic от 11.12.2016, 17:47
Цитата: Александр Меркурьев от 11.12.2016, 16:55почему-то ТОЖЕ МЕНЯЮТСЯ!
Потому что ТДАТА() возвращает дату и время на текущий момент и обновляет показания при любом телодвижении. :)
По сему, лучше макросом.
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Count > 1 Then Exit Sub
   Application.EnableEvents = False
   If Not Application.Intersect(Range("C2:C7"), Target) Is Nothing Then
      ST = Target.Row    ' № СТРОКИ
      Cells(ST, 4) = Date + Time
   End If
   Application.EnableEvents = True
End Sub