Страницы: 1
RSS
Дать/снять общий доступ программно, Есть ли возможность убрать диалоговые окна?
 
Уважаемые форумчане, пытаюсь прописать код для снятия и восстановления общего доступа к книге программно.Коды нашел

Код
'снять общий доступа
ActiveWorkbook.ExclusiveAccess 
'расшарить книгу
ActiveWorkbook.SaveAs AccessMode:=xlShared
Вот только при их выполнении у меня возникают диалоговые окна касательно того "Данная операция приведет к сохрананию книги" и "Общий доступ не даст возможности просматривать макросы". Можно ли сделать что бы по умолчания я был на все согласен?
Когда испробованы все варианты, я начинаю плясать с бубном. Как правило — помогает.
 
Код
Aplication.DisplayAlerts = false


Не забудьте после выполнения кода их включить обратно.
 
Dima S, спасибо огромное, помогли. Все работает как надо
Когда испробованы все варианты, я начинаю плясать с бубном. Как правило — помогает.
 
Не забудьте вернуть параметр обратно.
Более подробно расписывал в этой статье: Как запретить сообщения?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
А тогда подскажите:
Я в User_Form сделал Флаг на быстрое переключение Общего доступа
Код
'Действие при установки/снятии флажка "Включить общий доступ к книге"
Private Sub ExclusiveAccess_CheckBox_Click()
Application.DisplayAlerts = False
    If ActiveWorkbook.MultiUserEditing Then
        ActiveWorkbook.ExclusiveAccess = True
    Else
        Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs AccessMode:=xlShared
        Application.DisplayAlerts = True
    End If
End Sub
И суть проблемы в том, что при выполнении
Код
ActiveWorkbook.SaveAs AccessMode:=xlShared
происходит сохранение файла в директорию по умолчанию (к примеру: C:\User\Documents) а не в тоже место, откуда был изначально открыт файл. Хоть с локального диска открытие файла, хоть с сетевого расположения.

Помогите решить вопрос!
 
Разобрался)
Код
'Действие при установки/снятии флажка "Включить общий доступ к книге"
Private Sub ExclusiveAccess_CheckBox_Click()
    Dim MyPath$, MyName$    MyPath = ThisWorkbook.Path
    MyName = ThisWorkbook.Name
Application.DisplayAlerts = False
    If ActiveWorkbook.MultiUserEditing Then
        ActiveWorkbook.ExclusiveAccess = True
    Else
        Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs MyPath & "\" & MyName, AccessMode:=xlShared
        Application.DisplayAlerts = True
    End If
End Sub
 

Все же макрос работает на совсем корректно. Без профессиональной помощи не разберусь

На странице кнопка вызова определенного Меню

Код
Private Sub Admin_Menu_Click()
Admin_Menu_Initialize
Load Window_Menu
Window_Menu.Show vbModeless
End Sub

В меню только 1 Флаг "Общий доступ у книге"
При инициализации меню "Admin_Menu_Initialize" я проверяю в каком состоянии сейчас "Доступ книге", чтобы Флаг корректно отображался
1 - при Общем доступе
0 - при отсутствии

Код
Private Sub Admin_Menu_Initialize()
If ActiveWorkbook.MultiUserEditing = True Then
Window_Menu.ExclusiveAccess_CheckBox.Value = True
Else
Window_Menu.ExclusiveAccess_CheckBox.Value = False
End If
End Sub


При манипуляциях с Флагом (включить/выключить), код работает корректно (общий доступ работает, сохраняет в нужную директорию! !Но при условии, если прописано On Error Resume Next

'Действие при установки/снятии флажка "Включить общий доступ к книге"

Код
Private Sub ExclusiveAccess_CheckBox_Click()
Dim MyPath$, MyName$
MyPath = ThisWorkbook.Path
MyName = ThisWorkbook.Name
On Error Resume Next
If ExclusiveAccess_CheckBox.Value = False Then
Application.DisplayAlerts = False
ActiveWorkbook.ExclusiveAccess
Application.DisplayAlerts = True
Else
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs MyPath & "\" & MyName, AccessMode:=xlShared
Application.DisplayAlerts = True
End If
End Sub

Иначе ругается Method 'ExclusiveAccess' of Object '_Workbook' failed

Конечно все работает с On Error Resume Next, но хочется понимать, можно ли иначе, так сказать по правильному

Изменено: slesarok - 08.04.2022 09:31:58
 
Не могу найти правила загрузки файлов. Не грузятся
Какой формат нужен?
https://disk.yandex.ru/i/S8GrI_tdp7_r9g
Изменено: slesarok - 08.04.2022 09:37:38
Страницы: 1
Наверх