Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Защита листа средствами VBA Добавлено: 16.08.06 12:11  

Автор вопроса:  AIS
Привет, народ!
Помогите найти решение!
Не могу разобраться как правильно защитить лист.
Дело в том, что при установке защиты листа и содержимого защищаемых ячеек ИЗ МЕНЮ Excel указываю "Разрешить всем пользователям этого листа" только один параметр: "выделение НЕзаБЛОКИРОВАННЫХ ячеек".
Т.е., все остальные параметры отключены.
При таком включении защиты недоступны для позиционирования курсора защищенные ячейки, к чему я и стремлюсь.
Однако, если в VBA использовать метод Protect с его параметрами изменяется параметр "выделение ЗАБЛОКИРОВАННЫХ ячеек". При этом, конечно, пропадает удовольствие работы с таким листом, т.к. ячейки хоть и защищены, но видны, содержащиеся в них громоздкие формулы, загромождающие большую часть экрана.

Итак, после такого вступления ВОПРОС: кто знает как в VBA установить параметр "выделение ЗАБЛОКИРОВАННЫХ ячеек"?

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Незнайка



Вопросов: 7
Ответов: 188
 Профиль | | #1 Добавлено: 20.08.06 21:55
У тебя видимо версия старше чем 2000. Посмотри в Object Browser параметры метода Protect и все станет ясно (у меня просто 2000 и посмотреть параметры твоей задачи негде).
А на вскидку не отображать формулы в ячейках - это стандартно:
ТвойДиапазон.FormulaHidden = True

Ответить

Номер ответа: 2
Автор ответа:
 DrugON



ICQ: nospam 

Вопросов: 10
Ответов: 53
 Профиль | | #2 Добавлено: 25.03.07 07:40
Не стал создавать новую тему - эта по смыслу подходит. В общем трабл вот в чем. На листе Excel есть ячейки для ввода данных и расчетные, т.е. с формулами. Нужно защитить от изменения ячейки с формулами. Но не весь лист. В общем, сделал сначала так. В книге:
В книге:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Locked = True Then
        Me.Protect password:="3037"
    Else
        Me.Unprotect password:="3037"
    End If
End Sub


И нужные ячейки зделал защищенными. При выделении защищенной ячейки лист блокируется, с остальными можно делать все, что угодно. Те, против которых это делалось :) догадались обходить эту защиту тупым выделением всех ячеек (CTRL+A) и снятием защиты с них.
Какой бы способ внедрить поизощреннее? Помогите, плиз.

Ответить

Номер ответа: 3
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #3
Добавлено: 25.03.07 13:52
expression.Protect(Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables)

expression Required. An expression that returns a Worksheet object.

Password Optional Variant. A string that specifies a case-sensitive password for the worksheet or workbook. If this argument is omitted, you can unprotect the worksheet or workbook without using a password. Otherwise, you must specify the password to unprotect the worksheet or workbook. If you forget the password, you cannot unprotect the worksheet or workbook. It's a good idea to keep a list of your passwords and their corresponding document names in a safe place.

DrawingObjects Optional Variant. True to protect shapes. The default value is False.

Contents Optional Variant. True to protect contents. For a chart, this protects the entire chart. For a worksheet, this protects the locked cells. The default value is True.

Scenarios Optional Variant. True to protect scenarios. This argument is valid only for worksheets. The default value is True.

UserInterfaceOnly Optional Variant. True to protect the user interface, but not macros. If this argument is omitted, protection applies both to macros and to the user interface.

AllowFormattingCells Optional Variant. True allows the user to format any cell on a protected worksheet. The default value is False.

AllowFormattingColumns Optional Variant. True allows the user to format any column on a protected worksheet. The default value is False.

AllowFormattingRows Optional Variant. True allows the user to format any row on a protected. The default value is False.

AllowInsertingColumns Optional Variant. True allows the user to insert columns on the protected worksheet. The default value is False.

AllowInsertingRows Optional Variant. True allows the user to insert rows on the protected worksheet. The default value is False.

AllowInsertingHyperlinks Optional Variant. True allows the user to insert hyperlinks on the worksheet. The default value is False.

AllowDeletingColumns Optional Variant. True allows the user to delete columns on the protected worksheet, where every cell in the column to be deleted is unlocked. The default value is False.

AllowDeletingRows Optional Variant. True allows the user to delete rows on the protected worksheet, where every cell in the row to be deleted is unlocked. The default value is False.

AllowSorting Optional Variant. True allows the user to sort on the protected worksheet. Every cell in the sort range must be unlocked or unprotected. The default value is False.

AllowFiltering Optional Variant. True allows the user to set filters on the protected worksheet. Users can change filter criteria but can not enable or disable an auto filter. Users can set filters on an existing auto filter. The default value is False.

AllowUsingPivotTables Optional Variant. True allows the user to use pivot table reports on the protected worksheet. The default value is False.

____ Тут есть всё, что необходимо и доступно вручную. А простое иcпользование .Protect устанавливает всё "по умолчанию".

Ответить

Номер ответа: 4
Автор ответа:
 DrugON



ICQ: nospam 

Вопросов: 10
Ответов: 53
 Профиль | | #4 Добавлено: 25.03.07 14:14
Спасибо. Думаю, что придется так и сделать - наставить нужных атрибутов. Как-то раньше и не задумывался о них...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам