Страницы: 1
RSS
Возврат сетевого имени
 
Здравствуйте. Помогите, пожалуйста, разобраться в таком вопросе.

В Excel надо каким-то образом организовать, чтоб человек, открывающий файл, видел кем и когда этот файл был в последний раз сохранен. С датой и временем я нашел информацию как разобраться. А вот с именем никак. При чем имя нужно сетевое!!!

Суть: файл лежит в сети. Его открывают разные люди, но чаще всего начальник. Он должен увидеть, кто последний сохранил документ, чтобы можно было отслеживать к кому обращаться за разъяснениями.  
 
Я вот таким пользуюсь где то на форуме тут нашел )
Когда изменения происходят на одном ПК или в локальной сети всё отображает.
Код
Private Sub Workbook_Open()
MsgBox prompt:="Последние изменения в файле были сделаны пользователем " & _
    ThisWorkbook.BuiltinDocumentProperties("Last Author") & _
    Format(ThisWorkbook.BuiltinDocumentProperties("Last save time"), " DD.MM.YYYY \в hh.mm") & ".", Title:="Информация"
End Sub


Но если файл находится на сетевой шаре то вот так....пользователь не указывается (


P.S. название темы "Как вывести msgbox с последним изменившим файл, датой, и временем, если файл на сетевом диске"
Изменено: Wild.Godlike - 10.04.2019 17:21:42
 
Спасибо, изучу!
 
Цитата
bobka4081 написал:
А вот с именем никак. При чем имя нужно сетевое!!!
при такой постановке задачи именно никак.  Last Author - это то значение что занесено в настройках excel при первой инициализации и может быть изменено  пользователем на самой превой закладке настроек, конечно если политиками это не управляется и не закрыто. Для идентификации по учетной записи под которой работает пользователь надо смотреть аудиторский след, который долен быть включен на файловом сервере …..
По вопросам из тем форума, личку не читаю.
 
Не то. Здесь "Author" - это имя учетной записи пользователя на его компьютере. А это в основном USER. Мне же надо выдернуть именно сетевое имя, то есть имя компьютера в сети!
 
Могу предложить такой вариант. Можно сделать лист, в который будет падать информация каждый раз при сохранении
 
Цитата
bobka4081 написал:
то есть имя компьютера в сети!
уууу - тогда все еще хуже. Принцип авторизации - это авторизация пользователя, а не ПК, но в аудите это как правило есть, правда разбор этого лога будет не самым занятным, не для этого он предназначен. Придется искать последнее действие по определенному файлу и из этой записи извлекать. Тогда уж проще скриптец написать, который будет перед записью в укромное место писать протокол, кто сейчас работает. Накопительно или … неважно. В сам файл или в отдельный текстовый - тоже. Имя компа выясняется элементарно из переменой окружения environ("computername") остальное на вкус.
По вопросам из тем форума, личку не читаю.
 
Цитата
magistor8 написал:
Могу предложить такой вариант. Можно сделать лист, в который будет падать информация каждый раз при сохранении
Как ты это сделал? Я просто не шарю. Вижу текст VBA (Modul 1). А как мне это встроить в свой документ??? Я создал такой же модуль, скопировал туда текст. Но как сделать чтобы это работало на определенной странице?
 
Там есть еще один макрос в модуле книги:
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    lr = Sheets("Info").Cells(Rows.Count, 1).End(xlUp).Row + 1
    Sheets("Info").Cells(lr, 1) = Now
    Sheets("Info").Cells(lr, 2) = Environ("USERNAME")
    Sheets("Info").Cells(lr, 3) = GetMachineName
End Sub
В нем в Sheets("Info") - заменить имя листа
 
Спасибо большое. Не знал, что надо на книгу дважды щелкнуть. Теперь всё работает, хоть ничего и непонятно))))
Страницы: 1
Наверх