Есть большая табличка с данными. Необходимо фиксировать дату, время, имя или логин пользователя, вносящего изменения / новую запись в отдельной ячейке в этой же таблице.
Я пробовал через макрос
[vba]
Код
Public Function ИМЯПОЛЬЗОВАТЕЛЯ() As String ИМЯПОЛЬЗОВАТЕЛЯ = Environ("UserName") End Function
[/vba]
Но по какой-о причине он не всегда срабатывает. Да и при вставке такой формулы в таблицу, меняет все записи в столбце на имя текущего пользователя (который зашел в книгу. [moder]Код макроса нужно обтегивать кнопочкой #. Поправил за Вас.
Добрый день!
Есть большая табличка с данными. Необходимо фиксировать дату, время, имя или логин пользователя, вносящего изменения / новую запись в отдельной ячейке в этой же таблице.
Я пробовал через макрос
[vba]
Код
Public Function ИМЯПОЛЬЗОВАТЕЛЯ() As String ИМЯПОЛЬЗОВАТЕЛЯ = Environ("UserName") End Function
[/vba]
Но по какой-о причине он не всегда срабатывает. Да и при вставке такой формулы в таблицу, меняет все записи в столбце на имя текущего пользователя (который зашел в книгу. [moder]Код макроса нужно обтегивать кнопочкой #. Поправил за Вас.Excel_User
Сообщение отредактировал _Boroda_ - Вторник, 08.09.2015, 10:55
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 5 Then Exit Sub Dim c&, r&: r = Target.Row If r < 3 Then Exit Sub c = 1 If Len(Cells(r, c).Value) Then c = 3 Cells(r, c) = Environ$("UserName") Cells(r, c + 1) = Now End Sub
[/vba] (попробуйте поменять значения в ячейках столбца Е)
Добрый день! Как вариант [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 5 Then Exit Sub Dim c&, r&: r = Target.Row If r < 3 Then Exit Sub c = 1 If Len(Cells(r, c).Value) Then c = 3 Cells(r, c) = Environ$("UserName") Cells(r, c + 1) = Now End Sub
[/vba] (попробуйте поменять значения в ячейках столбца Е)KSV