Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как узнать кто работает с файлом с общим доступом? - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как узнать кто работает с файлом с общим доступом? (Макросы/Sub)
Как узнать кто работает с файлом с общим доступом?
Michael_S Дата: Понедельник, 31.10.2016, 19:16 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1687
Репутация: 327 ±
Замечаний: 0% ±

Excel2016
Всем Привет!
По сути весь вопрос в названии.
Имеем файл в общем доступе - Вася, Петя, Катя, Маша...
Как можно узнать, кто именно правит файл в данный момент? В этом же файле.


ЯД: 41001136675053
WM: R389613894253
 
Ответить
СообщениеВсем Привет!
По сути весь вопрос в названии.
Имеем файл в общем доступе - Вася, Петя, Катя, Маша...
Как можно узнать, кто именно правит файл в данный момент? В этом же файле.

Автор - Michael_S
Дата добавления - 31.10.2016 в 19:16
krosav4ig Дата: Понедельник, 31.10.2016, 20:04 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel 2007, 2013
Здравствуйте
наверно как-то так
[vba]
Код
Sub dd()
    Dim wb As Workbook, uSt(), i&
    Set wb = Application.Workbooks("shared.xlsx")
    uSt = wb.UserStatus
    If UBound(uSt) < 2 Then Exit Sub
    For i = 1 To UBound(uSt)
        If uSt(i, 1) <> Application.UserName Then
            Debug.Print "пользователь " & uSt(i, 1) & " открыл книгу " & Format(uSt(i, 2), "dd.MM.yyyy hh:mm")
        End If
    Next
End Sub
[/vba]


(_)Õvõ(_)
 
Ответить
СообщениеЗдравствуйте
наверно как-то так
[vba]
Код
Sub dd()
    Dim wb As Workbook, uSt(), i&
    Set wb = Application.Workbooks("shared.xlsx")
    uSt = wb.UserStatus
    If UBound(uSt) < 2 Then Exit Sub
    For i = 1 To UBound(uSt)
        If uSt(i, 1) <> Application.UserName Then
            Debug.Print "пользователь " & uSt(i, 1) & " открыл книгу " & Format(uSt(i, 2), "dd.MM.yyyy hh:mm")
        End If
    Next
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 31.10.2016 в 20:04
Michael_S Дата: Понедельник, 31.10.2016, 21:03 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1687
Репутация: 327 ±
Замечаний: 0% ±

Excel2016
Спасибо, но ошибка на строчке [vba]
Код
Set wb = Application.Workbooks("shared.xlsx")
[/vba]
shared.xlsx - это что за книга?


ЯД: 41001136675053
WM: R389613894253


Сообщение отредактировал Michael_S - Понедельник, 31.10.2016, 21:06
 
Ответить
СообщениеСпасибо, но ошибка на строчке [vba]
Код
Set wb = Application.Workbooks("shared.xlsx")
[/vba]
shared.xlsx - это что за книга?

Автор - Michael_S
Дата добавления - 31.10.2016 в 21:03
Roman777 Дата: Понедельник, 31.10.2016, 21:34 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 700
Репутация: 75 ±
Замечаний: 20% ±

Excel 2007, Excel 2013
Michael_S, вероятно, расшаренная (с общим доступом).


Много чего не знаю!!!!
 
Ответить
СообщениеMichael_S, вероятно, расшаренная (с общим доступом).

Автор - Roman777
Дата добавления - 31.10.2016 в 21:34
krosav4ig Дата: Понедельник, 31.10.2016, 21:52 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel 2007, 2013
shared.xlsx - это что за книга

это имя открытой книги с общим доступом, для которой нужно получить список активных пользователей


(_)Õvõ(_)

Сообщение отредактировал krosav4ig - Понедельник, 31.10.2016, 21:53
 
Ответить
Сообщение
shared.xlsx - это что за книга

это имя открытой книги с общим доступом, для которой нужно получить список активных пользователей

Автор - krosav4ig
Дата добавления - 31.10.2016 в 21:52
Michael_S Дата: Вторник, 01.11.2016, 11:29 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1687
Репутация: 327 ±
Замечаний: 0% ±

Excel2016
Что я делаю не так?
По нажатию кнопки в А1 должно быть имя пользователя
К сообщению приложен файл: 5347863.xlsm(23Kb)


ЯД: 41001136675053
WM: R389613894253
 
Ответить
СообщениеЧто я делаю не так?
По нажатию кнопки в А1 должно быть имя пользователя

Автор - Michael_S
Дата добавления - 01.11.2016 в 11:29
Manyasha Дата: Вторник, 01.11.2016, 12:32 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 1582
Репутация: 659 ±
Замечаний: 0% ±

Excel 2007, 2010
Michael_S, здравствуйте. Макрос рассчитан на то, чтобы выводить пользователей, кроме текущего, т.е. всех, кроме Вас.
Попробуйте закомментировать строчки с проверкой на количество пользователей и на имя пользователя:
[vba]
Код
Sub dd()
' Узнать имя пользователя
    Dim wb As Workbook, uSt(), i&
    Set wb = ThisWorkbook
    uSt = wb.UserStatus
'    If UBound(uSt) < 2 Then Exit Sub
    For i = 1 To UBound(uSt)
'        If uSt(i, 1) <> Application.UserName Then
            Cells(i, 1) = "пользователь " & uSt(i, 1) & " открыл книгу " & Format(uSt(i, 2), "dd.MM.yyyy hh:mm")
'        End If
    Next
End Sub
[/vba]
К сообщению приложен файл: 7262383.xlsm(22Kb)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеMichael_S, здравствуйте. Макрос рассчитан на то, чтобы выводить пользователей, кроме текущего, т.е. всех, кроме Вас.
Попробуйте закомментировать строчки с проверкой на количество пользователей и на имя пользователя:
[vba]
Код
Sub dd()
' Узнать имя пользователя
    Dim wb As Workbook, uSt(), i&
    Set wb = ThisWorkbook
    uSt = wb.UserStatus
'    If UBound(uSt) < 2 Then Exit Sub
    For i = 1 To UBound(uSt)
'        If uSt(i, 1) <> Application.UserName Then
            Cells(i, 1) = "пользователь " & uSt(i, 1) & " открыл книгу " & Format(uSt(i, 2), "dd.MM.yyyy hh:mm")
'        End If
    Next
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 01.11.2016 в 12:32
Michael_S Дата: Вторник, 01.11.2016, 12:50 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1687
Репутация: 327 ±
Замечаний: 0% ±

Excel2016
Manyasha, Спасибо! hands

[p.s.]А как вам удалось сохранить изменения в VВA?
У меня не сохраняет, приходится каждый раз создавать новую книгу
Разобрался
[/p.s.]


ЯД: 41001136675053
WM: R389613894253


Сообщение отредактировал Michael_S - Вторник, 01.11.2016, 13:38
 
Ответить
СообщениеManyasha, Спасибо! hands

[p.s.]А как вам удалось сохранить изменения в VВA?
У меня не сохраняет, приходится каждый раз создавать новую книгу
Разобрался
[/p.s.]

Автор - Michael_S
Дата добавления - 01.11.2016 в 12:50
Alex_ST Дата: Среда, 02.11.2016, 09:46 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 2877
Репутация: 503 ±
Замечаний: 0% ±

2003
Михаил, к сожалению это не решит проблему идентификации пользователей книги, размещённой в общем доступе.
Ведь получаете Вы не уникальные в Вашей LAN имена компьютеров, а имена пользователей Офиса, задаваемые при его установке. А они вовсе никак не связаны с именами компьютеров и могут быть любыми.
У нас IT-шники вообще не парятся с этим и всем дают имена User.
А потом кто хочет и может сам это имя сменить на какое угодно.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеМихаил, к сожалению это не решит проблему идентификации пользователей книги, размещённой в общем доступе.
Ведь получаете Вы не уникальные в Вашей LAN имена компьютеров, а имена пользователей Офиса, задаваемые при его установке. А они вовсе никак не связаны с именами компьютеров и могут быть любыми.
У нас IT-шники вообще не парятся с этим и всем дают имена User.
А потом кто хочет и может сам это имя сменить на какое угодно.

Автор - Alex_ST
Дата добавления - 02.11.2016 в 09:46
Michael_S Дата: Среда, 02.11.2016, 10:23 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1687
Репутация: 327 ±
Замечаний: 0% ±

Excel2016
Леш, это уже проблемы пользователя. Ему надо отметить, кто сделал запись - пусть сам думает, как их различать.


ЯД: 41001136675053
WM: R389613894253
 
Ответить
СообщениеЛеш, это уже проблемы пользователя. Ему надо отметить, кто сделал запись - пусть сам думает, как их различать.

Автор - Michael_S
Дата добавления - 02.11.2016 в 10:23
Alex_ST Дата: Среда, 02.11.2016, 21:51 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 2877
Репутация: 503 ±
Замечаний: 0% ±

2003
Ну так по сетевому-то имени можно однозначно комп в домене вычислить, а по имени пользователя Офиса - нет.
А получить сетевое имя ничуть не сложнее:[vba]
Код
Private Sub Net_UserName()
Debug.Print CreateObject("Wscript.Network").UserName
End Sub
[/vba]



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеНу так по сетевому-то имени можно однозначно комп в домене вычислить, а по имени пользователя Офиса - нет.
А получить сетевое имя ничуть не сложнее:[vba]
Код
Private Sub Net_UserName()
Debug.Print CreateObject("Wscript.Network").UserName
End Sub
[/vba]

Автор - Alex_ST
Дата добавления - 02.11.2016 в 21:51
Michael_S Дата: Среда, 02.11.2016, 21:55 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1687
Репутация: 327 ±
Замечаний: 0% ±

Excel2016
Спасибо, в следующий раз буду иметь ввиду. Кстати, а что там на выходе примерно получается?
В решаемой задаче я другим путем пошел - пароль при открытии файла и соответственное определение пользователя.
Не важно, с чьего компа.


ЯД: 41001136675053
WM: R389613894253
 
Ответить
СообщениеСпасибо, в следующий раз буду иметь ввиду. Кстати, а что там на выходе примерно получается?
В решаемой задаче я другим путем пошел - пароль при открытии файла и соответственное определение пользователя.
Не важно, с чьего компа.

Автор - Michael_S
Дата добавления - 02.11.2016 в 21:55
Alex_ST Дата: Среда, 02.11.2016, 22:03 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 2877
Репутация: 503 ±
Замечаний: 0% ±

2003
На выходе - это где?
В моём примере сетевое имя юзверга просто выводится для наглядности в окно Immediate
:'(
Ой, блин!
Я же совсем оплошал. На компе ты сможешь только своё сетевое имя узнать, а не имена тех, кто в сети юзает файл.
Прошу прощения. Действительно, только через .UserStatus можно узнать то, что тебе нужно.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеНа выходе - это где?
В моём примере сетевое имя юзверга просто выводится для наглядности в окно Immediate
:'(
Ой, блин!
Я же совсем оплошал. На компе ты сможешь только своё сетевое имя узнать, а не имена тех, кто в сети юзает файл.
Прошу прощения. Действительно, только через .UserStatus можно узнать то, что тебе нужно.

Автор - Alex_ST
Дата добавления - 02.11.2016 в 22:03
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как узнать кто работает с файлом с общим доступом? (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!