На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Организуем VBA-FAQ! Если у Вас есть предложения, выскажитесь здесь: Пишем FAQ, интересно Ваше мнение
Популярные разделы FAQ:    user posted image Общие вопросы    user posted image Особенности VBA-кода    user posted image Оптимизация VBA-кода    user posted image Полезные ссылки

1. Старайтесь при создании темы указывать в заголовке или теле сообщения название офисного приложения и (желательно при работе с Office 95/97/2000) его версию. Это значительно сократит количество промежуточных вопросов.
2. Формулируйте вопросы как можно конкретнее, вспоминая (хотя бы иногда) о правилах ВЕЛИКОГО И МОГУЧЕГО РУССКОГО ЯЗЫКА, и не забывая, что краткость - сестра таланта.
3. Не забывайте использовать теги [сode=vba] ...текст программы... [/code] для выделения текста программы подсветкой!
4. Темы с просьбой выполнить какую-либо работу полностью за автора здесь не обсуждаются и переносятся в раздел ПОМОЩЬ СТУДЕНТАМ.
Модераторы: Old Bat, MIF
  
> Многопользовательский доступ в Excel и VBA
    Не знаю куда еще написать, VBA здесь может и ни при чем:-)

    Есть файл в excel, в котором есть макросы (в частности в макросах снимается/защищается лист). Когда я через Сервис->Доступ к книге включаю "Разрешить совместный доступ", то вылезает сообщение что-то типа "Нельзя будет изменять и читать макросы".

    Затем при запуске макроса вылезает ошибка в месте, где я снимаю защиту с листа.
    И действительно, в меню Сервис->Защита нельзя Снять защиту листа.

    Как это обойти, может кто подскажет.

    P.S. Вообще мне нужно, чтобы был совместный доступ и при этом для некоторых пользователей была защита листа, а для некоторых - нет.
      1. При включенном совместном доступе действительно код макроса недоступен.
      2. И в меню снятие защиты также недоступно :)

      У меня была такая задача. Книга с совместным доступом, для некоторых людей лист защищается, для некоторых - нет.

      При открытии книги:
      ExpandedWrap disabled
        Private Sub Workbook_Open()
          If ActiveSheet.Name = "КА" Then
            Call ProtectSomeColumnsOnNecessarity
          End If
        End Sub


      ExpandedWrap disabled
        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, и код работает. Удачи
        Спасибо, попробую.
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0.0731 ]   [ 16 queries used ]   [ Generated: 24.05.26, 09:29 GMT ]