Страницы: 1
RSS
Кто последний работал с файлом?
 
Кто-то в офисе постоянно "гадит" в файле...  
Хочется узнать ведется ли учет кто работал с файлом или хотя-бы кто последний работал?  
Excel 2003+sp3
 
Узнать кто последний (Вася или Петя) не удастся. Только по дате и времени.
 
если я правильно понимаю, то файло лежит на сервере (либо в расшаренной папке) и доступно множеству, возможно неопределенному даже, юзеров???  
афигеть  
ну или я ошибаюсь :-)  
так вот, чтоб "кто-то" не гадил в книге (а мне, как полиграфисту, это крайне неприятно), надо ...  
эээ... коллега, большая книга? ВСЕ ли поля должны в ней иметь возможность ПРАВИТЬ ВСЕ пользователи?  
 
ну так вот, надо... раздать права. как это сделал я.  
- одному отделу - ТОЛЬКО чтение всех книг в папке  
- другому - одну могут править (с условием, о чем ниже), а другие только читать.  
 
- шеф, конечно же! все может править (но только он так думает, на самом деле не всё, но это военная тайна, выпитая между мной и сисадмином)  
 
а теперь про условия второго пункта:  
можно же защитить лист и задать пароль. а пароль сообщить только некоторым. тогда и гадить ВО ВСЕЙ книге просто не получится    
:-)  
а по делу, то есть как узнать кто  гадил, увы... не помогу.
 
пароль стоит, но гадит тот кто знает пароль...очень хочу узнать кто!
 
Я как-то тоже задавался таким вопросом, мне наши айтишники выдали сетевое имя (ну и соответственно пользователя этого компьютера), который был последним редактором и который нагадил.
 
надо опросить гуру на предмет создания макроса на основе функции    
=ЯЧЕЙКА("имяфайла")  
вот если бы макрос при каждом закрытии файла сохранял копию в папку по умолчанию у каждого юзера и в скрытый лист вносил бы запись =ЯЧЕЙКА("имяфайла") и время с датой  
тогда можно будет и отследить гадюна :-)
 
{quote}{login=mazayZR}{date=15.08.2008 10:59}{thema=}{post}надо опросить гуру на предмет создания макроса на основе функции    
=ЯЧЕЙКА("имяфайла")  
вот если бы макрос при каждом закрытии файла сохранял копию в папку по умолчанию у каждого юзера и в скрытый лист вносил бы запись =ЯЧЕЙКА("имяфайла") и время с датой  
тогда можно будет и отследить гадюна :-){/post}{/quote}  
Мона что нить такого плана  
Private Sub Workbooks_open()  
   Sheets.Add  
   ActiveSheet.Cells(1, 1).FormulaR1C1 = "=CELL(""имяфайла"")&"" ""&DAY(TODAY())&""-""&MONTH(TODAY())&""-""&YEAR(TODAY())"  
   ActiveSheet.Visible = False  
   ThisWorkbook.SaveAs "C:\temp"  
End Sub
 
Были же тут на форуме макросы, один из которых фиксировал дату и время изменений в определенных ячейках, а другой фиксировал пользователя, который внёс изменения в этих ячейках.  
Найдите эти макросы, объедините. Пусть они вставляют значения в скрытые ячейки. И Вы всегда сможете узнать КТО и КОГДА вносил изменения.
 
... другое дело, если тот, кто гадит, при открытии книги отключает макросы - никак не спалишь
 
В свое время ZVI выкладывал макрос который определял не только время последних изменений, но и если просто открывали файл на просмотр!
 
а вот и нет!  
как раз если именно он и отключает, то именно его и не будет в записях :-)  
кажется так.  
может конечно что он и не пользовал книгу, но статистика покажет
 
Это макрос с этого форума. Фиксирует дату и время изменения в ячейках. При этом изначально файл запаролен (1230123), а при изменении значений в диапазоне B2:AC100 макрос распароливает книгу, добавляет дату и время, а затем снова запароливает.  
 
Private Sub Worksheet_Change(ByVal Target As Range)  
ActiveSheet.Unprotect Password:="1230123"  
If Target.Cells.Count > 1 Then Exit Sub  
If Not Intersect(Target, Range("B2:AC100")) Is Nothing Then  
With Target(1, 50)  
.Value = Now  
End With  
End If  
ActiveSheet.Protect Password:="1230123"  
End Sub  
 
Спасибо автору этого макроса (Шовкопляс Павел?), очень выручает!
 
Я бы отслеживал сохранение книги. Открытие и изменение без сохранения меня бы не волновали.  
На выбор:  
При сохранении сохраняем копию в отдельную папку:  
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)  
Application.EnableEvents = False  
Application.DisplayAlerts = False  
Application.ScreenUpdating = False  
With ThisWorkbook  
.SaveCopyAs "\\server\хитрая папка\" & .Name & "_" & CreateObject("WScript.Network").UserName & "_" & Format(Now, "dd.mmm.yy hh:mm:ss")  
End With  
Application.EnableEvents = True  
Application.DisplayAlerts = True  
Application.ScreenUpdating = True  
End Sub  
 
Или сохраняем данные о пользователе и времени на скрытом листе.  
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)  
Application.EnableEvents = False  
Application.DisplayAlerts = False  
Application.ScreenUpdating = False  
With ThisWorkbook.Sheets("Скрытый_лист")  
j = .Cells.SpecialCells(xlLastCell).Row + 1  
.Cells(j, 1).Value = CreateObject("WScript.Network").UserName  
.Cells(j, 2).Value = Now  
End With  
Application.EnableEvents = True  
Application.DisplayAlerts = True  
Application.ScreenUpdating = True  
End Sub  
 
Без макросов никак. Если только ZVI не напишет что-нить на ExcelMacro4
 
{quote}{login=КАДР}{date=15.08.2008 12:31}{thema=}{post}... другое дело, если тот, кто гадит, при открытии книги отключает макросы - никак не спалишь{/post}{/quote}Значит надо воткнут макрос в книгу, без которого она работать не будет :)
 
Лузер, а такое возможно?  
Есть примеры?
 
{quote}{login=КАДР}{date=15.08.2008 03:17}{thema=}{post}Лузер, а такое возможно?  
Есть примеры?{/post}{/quote} Не понял. Возможно что?  
Чтобы макрос воткнуть, без которого книга работать не будет?  
Я имел в виду, не какой-то злобный макрос, а просто необходимый для расчетов. Например, пользовательская функция или формирование какой-либо таблицы макросом.  
Все то, за чем сюда приходят.
 
{quote}{login=КАДР}{date=15.08.2008 03:17}{thema=}{post}Лузер, а такое возможно?  
Есть примеры?{/post}{/quote}  
Общаясь на форуме уже начинаю верить что возможно ВСЕ (в экселе). Может мы просто не догадываемся. Конечно изящный способ нужно прорабатывать, но так на вскидку - на короткий период поставить защиту на все и отключать ее только макросом. Оформить кнопочку типа -НАЧАТЬ ВВОД ДАННЫХ. Пока не нажмешь прямого доступа к ячейкам нет.  
Хоть 1 раз придется включить макрос, а дальше варианты с логами и сохранением втемную.  
ЗЫ а может кто-то и не со зла, а просто по незнанию?  
Иногда бывает такая простота, что просто диву даешься.
Страницы: 1
Наверх