Многопользовательский доступ в Excel и VBA
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.217.58] |
|
|
Организуем VBA-FAQ! Если у Вас есть предложения, выскажитесь здесь: Пишем FAQ, интересно Ваше мнение
Общие вопросы
Особенности VBA-кода
Оптимизация VBA-кода
Полезные ссылки
Многопользовательский доступ в Excel и VBA
|
Сообщ.
#1
,
|
|
|
|
Не знаю куда еще написать, VBA здесь может и ни при чем:-)
Есть файл в excel, в котором есть макросы (в частности в макросах снимается/защищается лист). Когда я через Сервис->Доступ к книге включаю "Разрешить совместный доступ", то вылезает сообщение что-то типа "Нельзя будет изменять и читать макросы". Затем при запуске макроса вылезает ошибка в месте, где я снимаю защиту с листа. И действительно, в меню Сервис->Защита нельзя Снять защиту листа. Как это обойти, может кто подскажет. P.S. Вообще мне нужно, чтобы был совместный доступ и при этом для некоторых пользователей была защита листа, а для некоторых - нет. |
|
Сообщ.
#2
,
|
|
|
|
1. При включенном совместном доступе действительно код макроса недоступен.
2. И в меню снятие защиты также недоступно У меня была такая задача. Книга с совместным доступом, для некоторых людей лист защищается, для некоторых - нет. При открытии книги: ![]() ![]() Private Sub Workbook_Open() If ActiveSheet.Name = "КА" Then Call ProtectSomeColumnsOnNecessarity End If End Sub ![]() ![]() Public Sub ProtectSomeColumnsOnNecessarity() PswdToProtect = "M@ke_protect@ble" Dim KA_Sh As Worksheet Set KA_Sh = ActiveSheet ManagerName = Environ("USERNAME") If ManagerName <> "User1" And ManagerName <> "User2" Then ' блокируем столбец "Предоставление документов" - для этого делается следующее: ' 1. предварительно в других столбцах при форматировании ячеек на вкладке Protection снимается св-во Locked ' 2. лист блокируется, при этом можно выполнять все операции, и лишь столбец блокированных ячеек будет защищен On Error GoTo FinishSubHndl KA_Sh.Protect Password:=PswdToProtect, _ AllowFormattingCells:=True, _ AllowFormattingColumns:=True, _ AllowFormattingRows:=True, _ AllowInsertingColumns:=True, _ AllowInsertingRows:=True, _ AllowInsertingHyperlinks:=True, _ AllowDeletingRows:=True, _ AllowSorting:=True, _ AllowFiltering:=True, _ AllowUsingPivotTables:=True Else ' Для User1 и User2 ограничений на ввод информации нет KA_Sh.Unprotect Password:=PswdToProtect End If FinishSubHndl: Exit Sub End Sub У меня Excel2003, и код работает. Удачи |
|
Сообщ.
#3
,
|
|
|
|
Спасибо, попробую.
|