Есть "форма отчета" с общим доступом для заполнения значениями из выпадающих списков. Сейчас каждый пользователь, заполнивший строку, выбирает свою фамилию из списка. Ести риск подмены фамилий/ошибки выбора. Можно ли как-то задать идентификацию этих изменений? Ну типа по аналогии с текущей датой (=ТДАТА()), только чтоб было "текущий пользователь", и чтоб эту ячейку нельзя было изменить...
Есть "форма отчета" с общим доступом для заполнения значениями из выпадающих списков. Сейчас каждый пользователь, заполнивший строку, выбирает свою фамилию из списка. Ести риск подмены фамилий/ошибки выбора. Можно ли как-то задать идентификацию этих изменений? Ну типа по аналогии с текущей датой (=ТДАТА()), только чтоб было "текущий пользователь", и чтоб эту ячейку нельзя было изменить...ilistra
Вобщем я наверное не умею формулировать свои мысли. Попробую перефразировать: есть форма с общим доступом, каждый пользователь, входящий в windows под своим логином, заполняет ячейки либо в произвольной форме, либо выбирает значение из списка. В столбце A прописана формула с условиями заполнения ячеек. Куча столбцов с выпадающими списками замедляет работу и увеличивает объем файла. Мне бы хотелось усовершенствовать ее и облегчить работу сотрудникам (меньше действий, производимых вручную), а именно: 1. Чтобы в столбце H автоматически прописывался логин пользователя, внесшего изменения в столбце G 2. Аналогично со столбцом I - отображалось время внесение записи в столбец G 3. По возможности, чтоб данные из столбца H невозможно было изменить бесследно (чтоб не подтасовывали результаты), но и чтобы остальные пользователи не могли удалить историю изменений как, например, в журнале изменений. 4. Я не являюсь опытным пользователем, с макросами не имела дела никогда. Буду рада любой помощи, но желательно с пошаговыми инструкциями. P.S. Ну а если кто-то поможет мне упростить формулу - это будет для меня полным восторгом и пределом мечтаний. Спасибо.
Вобщем я наверное не умею формулировать свои мысли. Попробую перефразировать: есть форма с общим доступом, каждый пользователь, входящий в windows под своим логином, заполняет ячейки либо в произвольной форме, либо выбирает значение из списка. В столбце A прописана формула с условиями заполнения ячеек. Куча столбцов с выпадающими списками замедляет работу и увеличивает объем файла. Мне бы хотелось усовершенствовать ее и облегчить работу сотрудникам (меньше действий, производимых вручную), а именно: 1. Чтобы в столбце H автоматически прописывался логин пользователя, внесшего изменения в столбце G 2. Аналогично со столбцом I - отображалось время внесение записи в столбец G 3. По возможности, чтоб данные из столбца H невозможно было изменить бесследно (чтоб не подтасовывали результаты), но и чтобы остальные пользователи не могли удалить историю изменений как, например, в журнале изменений. 4. Я не являюсь опытным пользователем, с макросами не имела дела никогда. Буду рада любой помощи, но желательно с пошаговыми инструкциями. P.S. Ну а если кто-то поможет мне упростить формулу - это будет для меня полным восторгом и пределом мечтаний. Спасибо.ilistra
вдруг кому пригодится: при изменении конкретной ячейки автоматически выставляется время и логин в windows (слепила из того, что нашла на разных форумах, так что скорей всего это не идеальный вариант)
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("E:E")) Is Nothing Then With Target(1, 3) .Value = Now '.Value = Date '.EntireColumn.AutoFit End With 'Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") 'strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer" 'strValueName = "Logon User Name" 'oReg.GetExpandedStringValue &H80000001, strKeyPath, strValueName, strValue '[d4] = strValue Target.Offset(, 1).Value = Application.UserName '[d1] = Application.UserName End If End Sub
вдруг кому пригодится: при изменении конкретной ячейки автоматически выставляется время и логин в windows (слепила из того, что нашла на разных форумах, так что скорей всего это не идеальный вариант)
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("E:E")) Is Nothing Then With Target(1, 3) .Value = Now '.Value = Date '.EntireColumn.AutoFit End With 'Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") 'strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer" 'strValueName = "Logon User Name" 'oReg.GetExpandedStringValue &H80000001, strKeyPath, strValueName, strValue '[d4] = strValue Target.Offset(, 1).Value = Application.UserName '[d1] = Application.UserName End If End Subilistra