Страницы: 1
RSS
Проблема - ГруппировкаСтрок+ЗащитаЛитста+Макрос+ОбщийДоступ, Проблема - ГруппировкаСтрок+ЗащитаЛитста+Макрос+ОбщийДоступ
 
Буду очень благодарен. Ооооочень надо.

Для работоспособности функции Группировка на защищенном листе, прописан код
[Private Sub Workbook_Open()
      Protect_and_Structure Me.Sheets("Лист1")
End Sub

Sub Protect_and_Structure(wsSh As Object)
      wsSh.Unprotect "Password123"
      wsSh.EnableOutlining = True
      wsSh.Protect Password:="Password123", Contents:=True, Scenarios:=True, UserinterfaceOnly:=True
End Sub

Группировка заработала. Но при Включении общего доступа к файлу вываливается ошибка при открытии:
Run-time Error '1004'
Application-defined object-deffined error
 
А у Вас без общего доступа это работало?
Попробуйте так:
Код
Private Sub Workbook_Open()
Call Protect_and_Structure(Sheets("Лист1"))
End Sub
Изменено: sva - 26.12.2012 14:00:56
 
Добрый день. Да, работало до общего доступа. Убираю общий доступ  - работает.
 
Для книг в общем доступе есть ряд ограничений, среди которых невозможность изменить имеющиеся параметры защиты документа. А Вы пытаетесь менять эти параметры при каждом открытии книги.
Как вариант при открытии книги делать её монопольной, менять защиту и заново давать общий доступ.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Выдает ошибку Compile error in hidden module ЭтаКнига
 
The_Prist, была такая мысль, логически понимаю, но как реализовать эту тему? Я чайник ;)
 
При общем доступе среди прочего есть ограничение на группировку или структурирование данных.
 
Я сделал выключение защиты, включение группировки, включение защиты. Группировка заработала. Проблема - при общем доступе ошибка.
 
Вот список ограничений для книги с общим доступом (см. файл), который дал ZVI.
 
А так можно? При открытии файла:

1. сохранить данные
2. снять общий доступ
3. снять защиту
4. включить группировку
5. включить защиту
6. сохранить данные
7. дать общий доступ

Если можно, то какие коды использовать для сохранения, выкл/вк. общего доступа?
Благодарю.
 
http://yandex.ru/yandsearch?lr=22&msid=22899.14122.1356520138.09684&oprnd=7585213995&text=excel+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%­D0%BD%D0%BE+%D0%B4%D0%B0%D1%82%D1%8C+%D0%BE%D0%B1%D1%89%D0%B­8%D0%B9+%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF
[/QUOTE]
 
Если файл в общем доступе, то сделать доступ монопольным:

If ActiveWorkbook.MultiUserEditing Then
   ActiveWorkbook.ExclusiveAccess
   End If

Как наоборот - Если файл в монопольном, предоставить общий?
 
ActiveWorkbook.SaveAs AccessMode:=xlShared
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, подскажите пожалуйста.
Включил Указанную строчку ниже всего кода. При Открытии файла говорит, что файл уже существует в данном месте.Заменить? -Да-Нет--Отмена-. Если говорю да, то внесенные изменения не сохранились. Если другой - выводится ошибка Run-time Error 1004 Ругается на эту строчку. Что делать? Голову уже сломал. Еще в понедельник кроме табличек в ёкселе ничего не знал. :) Сейчас уже слово макрос знаю.
 
Коллеги, что делать? Почему Файл при открытии вопросы задает на счет замены и ничего не сохраняет? Может сохранение перед ActiveWorkbook.SaveAs AccessMode:=xlShared Вставить? А что с пользователями будут, которые висят в файле, когда другой откроет файл?
Мне пипец:(
 
Вставил - Application.DisplayAlerts = False Все работает, ошибки исчезли. Но все равно не сохраняет. В чем проблема?
 
Проблема в особенностях метода SaveAs - без явного указания пути книга будет сохраняться в папку, заданную по умолчанию. В Вашем случае попробуйте задавать сохранение явно:
Код
ActiveWorkbook.SaveAs ActiveWorkbook.FullName, AccessMode:=xlShared
Страницы: 1
Наверх