powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проблема с блокированием действий над листами в Excel 2007
6 сообщений из 6, страница 1 из 1
Проблема с блокированием действий над листами в Excel 2007
    #36483460
DarkNNe66
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пиплз! Если кто знает поделитесь опытом...
Имеется документ Excel 2007, необходимо заблокировать все действия над листами (добавление, удаление, переименование, перемещение/копирование), так как все обращения идут по индексам листов. Пробовал через блокирование элементов по ControlsID, в итоге получилось заблокировать только команды контексного меню. Но возможности перетаскивать листы при удержании левой кнопки мыши листов и переименование при двойном клике по листу остались. Есть ли возможность заблокировать все меню List, оставив пользователю только возможность переходить по листам (кроме защиты структуры)?
Заранее спасибо
...
Рейтинг: 0 / 0
Проблема с блокированием действий над листами в Excel 2007
    #36483600
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем не нравится защита структуры?
...
Рейтинг: 0 / 0
Проблема с блокированием действий над листами в Excel 2007
    #36483691
DarkNNe66
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня стоит задача урезать все действия пользователя, так как после нужно делать импорт в базу данных из этого шаблона. Защиту структуры я пробовал, но возникли трудности, в частности при установке защиты структуры и сохранении документа, при следующем запуске файла не работали макросы, для этого на открытие документа я ставил защиту, а на закрытие убирал. В конечном итоге при сохранении файла как шаблона с поддержкой макроса (*.xltm) возникла очень неудобная вещь: когда открываешь шаблон и не производишь никаких действий, закрываешь - предлагает сохранить документ без макросов (а на закрытие, после снятия защиты структуры я поставил сохранение). Ищу пути, как сделать проще. С защитой структуры придется итак не маленький макрос утяжелять проверкой - были ли внесены изменения.
В общем объяснять долго, поэтому небольшой фрагмент кода:

Public PasswordValue As String
Public LockEnabled As Boolean
Public ExtraDataSheet As Variant 'Массив номеров листов дополнительных данных

Private Sub Workbook_Activate()
Dim FindExtraDataSheet As Boolean
ExtraDataSheet = Array(8, 9, 10, 11, 12)
PasswordValue = "admin"
LockEnabled = True
If LockEnabled Then
For i = 1 To Application.Sheets.Count
For j = LBound(ExtraDataSheet) To UBound(ExtraDataSheet)
FindExtraDataSheet = False
If i = ExtraDataSheet(j) Then
FindExtraDataSheet = True
Exit For
End If
Next j
If FindExtraDataSheet = False Then
Application.Sheets(i).EnableSelection = xlUnlockedCells
Application.Sheets(i).Protect Password:=PasswordValue
End If
Next i
ActiveWorkbook.Protect Password:=PasswordValue, Structure:=True, Windows:=False
Else
For i = 1 To Application.Sheets.Count
Application.Sheets(i).EnableSelection = xlNoRestrictions
Application.Sheets(i).Unprotect Password:=PasswordValue
Next i
ActiveWorkbook.Unprotect Password:=PasswordValue
End If
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If LockEnabled Then
ActiveWorkbook.Unprotect Password:=PasswordValue
ActiveWorkbook.Save
End If
ActiveWorkbook.Save
End Sub
...
Рейтинг: 0 / 0
Проблема с блокированием действий над листами в Excel 2007
    #36483850
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не понял.
При создании нового документа на основе шаблона с макросами Эксель 2007 предлагает сохранить новую книгу, но уже без макросов?

А вообще, ты не в ту сторону копаешь. По хорошему - Эксель нафиг и пишешь нормального клиента к БД.
Но если хочется извращаться с Экселем, то рисуешь шаблон для данных, никаких макросов в шаблон не кладешь вообще. Разрешаешь изменять некоторые ячейки шаблона. И ставишь защиту на все.
А обрабатывать будешь потом внешней "управляющей" книгой в которой уже будет сколько угодно макросов..
...
Рейтинг: 0 / 0
Проблема с блокированием действий над листами в Excel 2007
    #36483999
DarkNNe66
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlА вообще, ты не в ту сторону копаешь. По хорошему - Эксель нафиг и пишешь нормального клиента к БД.
Идея с Экселем мне и самому не нравится, но сделать нужно. Клиента к БД уже давно написали на C# со множеством функций, который и будет проверять и обрабатывать инфу из шаблонов.
White OwlНо если хочется извращаться с Экселем, то рисуешь шаблон для данных, никаких макросов в шаблон не кладешь вообще. Разрешаешь изменять некоторые ячейки шаблона. И ставишь защиту на все.
Данный вариант в моем случае не подходит: от макросов отказать вообще я не могу, так на листах документа таблицы не статические (столбцов в каждой таблице может быть от 3 до 280), ячейки в первоначальной таблице я разрешил изменять и сделал два макроса на добавление (рисование сетки, снятие защиты с ячеек) и удаление столбцов таблицы. Для обеспечения блокирования действий над листами я защитил структуру книги, но некоторые инструкции в моих макросах не могут быть выполнены в защищенной книге, выдается соответствующее сообщение, и макросы не выполняются. Поэтому ищу способ самим заблокировать все действия над листами кроме переходов по листам.
...
Рейтинг: 0 / 0
Проблема с блокированием действий над листами в Excel 2007
    #36484629
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда в макросе делаешь что-то вроде:
Код: plaintext
1.
2.
3.
thisworkbook.unprotect password:="aaa"
thisworkbook.something
thisworkbook.something_else
thisworkbook.protect password:="aaa"
И все...
То есть снимай защиту в самом макросе только на время обработки требующей незащищенной книги, а потом сразу ставь обратно. Между запусками макроса книга будет всегда защищенной.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проблема с блокированием действий над листами в Excel 2007
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]