Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2009, 20:38   #1
d_alexej
 
Регистрация: 12.08.2009
Сообщений: 8
По умолчанию Совместный доступ

Доброго времени!
Подскажите, как припомощи макроса отследить время последнего изменения ячейки и имя компьютера, который ее изменил? Сохранение в лог...
Заранее спасибо.
d_alexej вне форума Ответить с цитированием
Старый 10.10.2009, 13:45   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте d_alexej.
подобный код, размещенный в модуле книги поможет зарегистрировать "время последнего изменения ячейки ..."
Код:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim s$, i%
If Not Sh.Index = 1 Then ' or - If Not Sh.Name = "Лист1" Then
ElseIf Target.Address = "$A$1" Then
    s = Environ("COMPUTERNAME") + Chr(9) + Environ("UserNAME") + Chr(9) & Now
    i = FreeFile
    Open "C:\FileLog.txt" For Append As #i
        Print #i, s
    Close #i
End If
End Sub
возможно в MS Excel существуют свои способы регистрации изменений, но они мне не знакомы.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 10.10.2009, 20:41   #3
d_alexej
 
Регистрация: 12.08.2009
Сообщений: 8
По умолчанию

Спасибо!
Изменения будут в диапазоне ячеек, т.е. в столбце,
сам доделаю....
d_alexej вне форума Ответить с цитированием
Старый 10.10.2009, 21:08   #4
d_alexej
 
Регистрация: 12.08.2009
Сообщений: 8
По умолчанию

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim s$, i%: Dim VRange As Range
If Not Sh.Index = 1 Then ' or - If Not Sh.Name = "Ëèñò1" Then
'ElseIf Target.Address = "$A$1" Then
Else
Set VRange = Range("A1:A20")

If Not Intersect(Target, VRange) Is Nothing Then
s = Target.Text & "-> " & Environ("COMPUTERNAME") + Chr(9) + Environ("UserNAME") + Chr(9) & Now
'Target.Offset(RowOffset:=0, ColumnOffset:=3).Value = s
i = FreeFile
Open "C:\FileLog.txt" For Append As #i
Print #i, s
Close #i
End If: End If

End Sub

Вот что получилось....Спасибо за идею...
d_alexej вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Убрать совместный доступ к книге analyst Microsoft Office Excel 4 01.10.2009 15:25
Совместный доступ к книге alekzzandr Microsoft Office Excel 0 22.06.2009 23:00
Кто умеет рисовать и моделировать: Пердлагаю совместный проект Maksitron Фриланс 5 14.02.2009 18:31
Закрыть доступ! anton14 Свободное общение 10 23.01.2009 21:40
Доступ к переменным RealSHELS Общие вопросы Delphi 4 15.06.2008 13:14