[vba]Код
Private Sub Worksheet_Change(ByVal Target As Range)
u = UsedRange.Rows.Count
If Not Intersect(Target, Range("x6:ai" & u)) Is Nothing Then
a = Target.Row 'строка, в которую вносим данные
b = Range("ak" & a).Value 'статус
с = Range("bd" & a).Value 'дата / время
'если статус = "все заполнено" и дата / время не заполнено, _
тогда записываем
If b = "все заполнено" And c = "" Then Range("bd" & a) = Now
'если внести изменения в строку с уже "все заполнено" и датой / временем _
и нужно изменить время:
'If b = "все заполнено" Then Range("bd" & a) = Now
'но если данные обновятся и при этом остануться прежними - дата изменится
End If
End Sub
[/vba]
u = UsedRange.Rows.Count работает при условии, что в 1-й строке есть какое-то значение