MyTetra Share
Делитесь знаниями!
Как поставить защиту на сводную таблицу
Время создания: 12.10.2019 20:26
Раздел: Разные закладки - VBA - Excel - Сводные
Запись: xintrea/mytetra_db_adgaver_new/master/base/1570884098c5z7x7d0fx/text.html на raw.githubusercontent.com

Как поставить защиту на сводную таблицу

Автор Дмитрий Якушев На чтение3 мин. Просмотров68

Что делает макрос: Мы часто посылаем сводные таблицы клиентам, сотрудникам, менеджерам и другим группам людей. Макрос, изложенный в данном разделе демонстрирует, как поставить защиту на сводную таблицу через VBA.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как этот код работает
  4. Как использовать

Как макрос работает

Объект PivotTable предоставляет несколько свойств, которые позволяют ограничить различные функции и компоненты сводной таблицы:

  • EnableWizard: Установка этого свойства в значение False отключает PivotTable Tools, контекстное меню, которое обычно активизируется при щелчке внутри сводной таблицы. В Excel 2003, этот параметр отключает мастер диаграмм и сводных таблиц Pivot.
  • EnableDrilldown: Установка этого свойства в  False, предотвращает пользователей от получения подробных данных, дважды щелкнув поле.
  • EnableFieldList: Установка этого свойства в False препятствует активации списка полей или перемещения сводных полей.
  • EnableFieldDialog: Установка этого свойства в значение False отключает способность пользователей изменять поле сводной с помощью диалогового окна Параметры Значение поля.
  • PivotCache.EnableRefresh: Установка этого свойства в значение False отключает возможность обновления сводной таблицы

Вы можете установить любой или все из этих свойств независимо друг от друга. В этом макросе, мы применяем все ограничения на целевую сводную таблицу.

Код макроса


Sub ZaschitaSvodnoiTablici()

'Шаг 1: Объявляем переменные

Dim pt As PivotTable

'Шаг 2: Курсор на активной ячейке в сводной таблице

On Error Resume Next

Set pt = ActiveSheet.PivotTables(ActiveCell.PivotTable.Name)

'Шаг 3: Выход, если активная ячейка не в сводной таблице

If pt Is Nothing Then

MsgBox "Вы должны поместить курсор в сводную таблицу."

Exit Sub

End If

'Шаг 4: Наложить ограничения для полей сводной

With pt

.EnableWizard = False

.EnableDrilldown = False

.EnableFieldList = False

.EnableFieldDialog = False

.PivotCache.EnableRefresh = False

End With

End Sub

Как этот код работает

  1. Шаг 1 объявляет две переменные объекта, используя Pt в качестве контейнера памяти для сводной таблицы и Pf в качестве контейнера для памяти наших полей данных. Это позволяет макросу перебрать все поля данных в сводной таблице.
  2. На шаге 2 мы устанавливаем переменную Pt на имя сводной таблицы, на которой найдена активная ячейка. Мы делаем это, используя свойство ActiveCell.PivotTable.Name, чтобы получить имя целевой сводной.
  3. Шаг 3 проверяет, заполнена ли переменная PT сводной таблицы объекта.
  4. На последнем этапе макроса, мы применяем все PivotTable ограничения..
Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования