Защита в excel группировать

Хитрости »

1 Май 2011              197639 просмотров


Как оставить возможность работать с группировкой/структурой на защищенном листе?

Наверняка многие уже сталкивались с ситуацией, когда необходимо защитить лист от внесения изменений в ячейки(Рецензирование(Review)Защитить лист(Protect Sheet) — читать подробнее про защиту листа), на котором уже имеются сгруппированные в структуру данные. И при установке такой защиты теряется возможность работы с этой самой группировкой/структурой. Если не знаете, что такое структура(еще её называют группировка): это такие плюсики левее строк/выше столбцов, при нажатии на которые раскрываются скрытые строки/столбцы:
Структура по строкам
Но что делать, если нужна и защита и возможность структурой пользоваться? Т.е. чтобы пользователь мог просмотреть все в удобной форме, но не смог ничего изменить. Одновременно и просто и не очень.
Если вы не знакомы с макросами и VBA, то обязательно пройдите по ссылкам из инструкции ниже — эти знания потребуются, чтобы сделать все правильно и получить корректный результат. Итак, чтобы разрешить использовать структуру на защищенном листе необходимо:

  1. создать в книге стандартный модуль(Alt+F11 —InsertModule)
  2. разместить в нем нижеприведенный код:
    Sub ProtectShWithOutline()
        ActiveSheet.EnableOutlining = True
        ActiveSheet.Protect Contents:=True, Scenarios:=True, UserinterfaceOnly:=True
    End Sub
  3. Выполнить данный код(Alt+F8 -Protect_And_Structure)

Код сам устанавливает защиту на лист(не надо перед его выполнением устанавливать защиту вручную!), но при этом разрешает использовать группировку.
Основную роль здесь играет параметр UserInterfaceOnly, который говорит Excel-ю, что коды VBA могут выполнять определенные действия, не снимая защиты методом Unprotect. А второй важный пункт — EnableOutlining = True. Он как раз и включает возможность использования группировки. Как ни странно, но без UserInterfaceOnly он не работает. Поэтому важно применять их оба.
Код выше устанавливает такую защиту только на активный лист книги. Но можно указать лист явно(например установить защиту на лист с именем Лист1 в активной книге):

Sub ProtectShWithOutline()
    Sheets("Лист1").EnableOutlining = True
    Sheets("Лист1").Protect Password:="1111", UserInterfaceOnly:=True
End Sub

Так же приведенный код можно еще чуть модернизировать и разрешить пользователю помимо изменения ячеек еще и использовать автофильтр:

Sub ProtectShWithOutline()
    'на лист "Лист1" поставим защиту и разрешим пользоваться фильтром
    Sheets("Лист1").EnableOutlining = True 'разрешаем группировку
    Sheets("Лист1").Protect Password:="1111", AllowFiltering:=True, UserInterfaceOnly:=True
End Sub

Можно разрешить и иные действия(выделение незащищенных ячеек, выделение защищенных ячеек, форматирование ячеек, вставку строк, вставку столбцов и т.д. Чуть подробнее про доступные параметры можно узнать в статье Защита листов и ячеек в MS Excel). А как будет выглядеть строка кода с разрешенными параметрами можно узнать, записав макрорекордером установку защиты листа с нужными параметрами:

После этого получится строка вроде такой:

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowFiltering:=True

здесь я разрешил использовать автофильтр(AllowFiltering:=True), вставлять строки(AllowInsertingRows:=True) и столбцы(AllowInsertingColumns:=True).Чтобы добавить возможность изменять данные ячеек только через код VBA, останется добавить параметр UserInterfaceOnly:=True и установить EnableOutlining = True:

ActiveSheet.EnableOutlining = True 'разрешаем группировку
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowFiltering:=True, UserInterfaceOnly:=True

и так же неплохо бы добавить и пароль для снятия защиты, т.к. запись макрорекордером не записывает пароль:

ActiveSheet.EnableOutlining = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowFiltering:=True, UserInterfaceOnly:=True, Password:="1111"

Самая большая ложка дегтя заключается в том, что параметр UserInterfaceOnly сбрасывается сразу после закрытия книги. Т.е. если установить таким образом защиту на лист и закрыть книгу, то при следующем открытии этой защиты уже не будет — останется лишь стандартная защита, а группировка работать не будет. Что ставит под сомнение полезность подобного подхода, потому как обычно такое применяется для других пользователей, которые как правило далеки от макросов и даже слушать не станут, что мы там будем им предлагать выполнить. Поэтому, если необходимо такую защиту видеть постоянно и не только у себя на компьютере, то данный макрос лучше всего прописывать на событие открытия книги(модуль ЭтаКнига(ThisWorkbook)). Т.е. приведенный ниже код в обязательном порядке должен быть именно в модуле ЭтаКнига(ThisWorkbook) на событие Workbook_Open. Это заставит код установки защиты на лист выполняться автоматически при открытии книги. Т.е. конечному пользователю не надо будет ничего нажимать для его запуска: открыл книгу — код сам запустился, все работает.
Собственно, сам код защиты, срабатывающий при открытии книги:

Private Sub Workbook_Open()
    Sheets("Лист1").EnableOutlining = True
    Sheets("Лист1").Protect Password:="1111", UserInterfaceOnly:=True
End Sub

Правда куда чаще необходимо устанавливать одинаковую защиту на все листы книги. Сделать это можно кодом ниже, который так же должен быть размещен в модуле ЭтаКнига(ThisWorkbook):

Private Sub Workbook_Open()
    Dim wsSh As Object
    For Each wsSh In Me.Sheets
        ProtectShWithOutline wsSh
    Next wsSh
End Sub
Sub ProtectShWithOutline(wsSh As Worksheet)
    'Password:="1111" - это пароль на лист - 1111
    wsSh.Protect Password:="1111", UserInterfaceOnly:=True
End Sub

Плюс во избежание ошибок лучше перед установкой защиты снимать ранее установленную(если она была):

Sub ProtectShWithOutline(wsSh As Worksheet)
    wsSh.Unprotect "1111" 'снимаем прежнюю защиту
    wsSh.EnableOutlining = True 'разрешаем группировку
    wsSh.Protect Password:="1111", UserInterfaceOnly:=True 'защищаем лист с паролем "1111"
End Sub

Если же защиту необходимо установить только на конкретные листы, имена которых заранее известны, то можно использовать чуть иной подход — использовать массивы:

Private Sub Workbook_Open()
    Dim arr, sSh
    arr = Array("Январь", "Февраль", "Март")
    For Each sSh in arr
        ProtectShWithOutline Me.Sheets(sSh)
    Next
End Sub
Sub ProtectShWithOutline(wsSh As Worksheet)
    wsSh.EnableOutlining = True
    wsSh.Protect Password:="1111", AllowFiltering:=True, UserInterfaceOnly:=True
End Sub

Для применения этого кода в своих книгах необходимо будет лишь изменить(добавить, удалить, вписать другие имена) имена листов в этой строке: Array(«Январь», «Февраль», «Март»). Записывать обязательно в кавычках.

Примечание: Описанный метод защиты имеет одно существенное ограничение: его невозможно использовать в книге с общим доступом(Рецензирование -Доступ к книге), т.к. при общем доступе существуют ограничения, среди которых и такое, которое запрещает изменять параметры защиты для книги в общем доступе.

Также см.:
Как защитить лист от пользователя, но не от макроса?
Защита листов и ячеек в MS Excel
Защита листов/снятие защиты
Снять защиту с листа(без пароля)


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

работа с группировкой строк/столбцов на защищенном листе

NeWru

Дата: Вторник, 29.08.2017, 19:21 |
Сообщение № 1

Группа: Пользователи

Ранг: Участник

Сообщений: 63


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Здравствуйте! Прошу подсказку, как на защищенном листе оставить возможность работы с показом/скрытием сгруппированных столбцов или строк. В таблице ячейки без защиты и могут редактироваться, но иногда требуется для печати скрывать строки или столбцы, которые сгруппированы. Не могу подобрать условия для их скрытия при включенной защите листа, при выключенной конечно все работает.

 

Ответить

buchlotnik

Дата: Вторник, 29.08.2017, 19:33 |
Сообщение № 2

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

NeWru, разве что программно : [vba]

Код

Private Sub Workbook_Open()
    Sheets(«Лист1»).EnableOutlining = True
    Sheets(«Лист1″).Protect Password:=»12345», UserInterfaceOnly:=True
End Sub

[/vba]

К сообщению приложен файл:

9544809.xlsm
(13.5 Kb)

 

Ответить

NeWru

Дата: Вторник, 29.08.2017, 19:44 |
Сообщение № 3

Группа: Пользователи

Ранг: Участник

Сообщений: 63


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Работает, думаю подойдет! Спасибо Вам! Если кроме кода вариантов нет, то так и сделаю!

 

Ответить

finiamino

Дата: Пятница, 04.03.2022, 18:49 |
Сообщение № 4

Группа: Пользователи

Ранг: Прохожий

Сообщений: 1


Репутация:

0

±

Замечаний:
0% ±


Доброго дня.
А как сделать чтобы работало на все листы в книге?

 

Ответить

Serge_007

Дата: Пятница, 04.03.2022, 22:49 |
Сообщение № 5

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Пропишите все листы в коде:[vba]

Код

Sheets(«Лист1″).Protect Password:=»12345», UserInterfaceOnly:=True
Sheets(«Лист2″).Protect Password:=»54321», UserInterfaceOnly:=True
Sheets(«Лист3″).Protect Password:=»*****», UserInterfaceOnly:=True

[/vba]


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Содержание

  • Как заблокировать общую ячейку в Excel?
  • Как заблокировать сгруппированные столбцы в Excel?
  • Как разблокировать прокручиваемые ячейки в Excel?
  • Как запереть камеру?
  • Как заблокировать несколько ячеек в Excel F4?
  • Как заблокировать только определенные ячейки в Excel?
  • Как исправить группировку в Excel?
  • Как разрешить группировку и разгруппировку на защищенном листе?
  • Как заблокировать ячейку, не защищая лист?
  • Можно ли скрыть и заблокировать вкладку в Excel?
  • Как заблокировать скрытые вкладки в Excel?

Выделите ячейки, которые хотите заблокировать. На вкладке «Главная» в группе «Выравнивание» щелкните маленькую стрелку, чтобы открыть всплывающее окно «Формат ячеек». На вкладке «Защита» установите флажок «Заблокировано» и нажмите кнопку «ОК», чтобы закрыть всплывающее окно.

Как защитить определенные ячейки в Excel (и получить ярлык для блокировки ячеек)

  1. Выделите ячейки, которые хотите заблокировать, затем нажмите Ctrl + Shift + F (Windows) или Ctrl + 1 (Mac), чтобы открыть окно «Форматирование ячеек». Затем щелкните вкладку «Защита».
  2. Выберите поле «Заблокировано» и нажмите «ОК» в правом нижнем углу, чтобы закончить.

Как заблокировать сгруппированные столбцы в Excel?

Скрытие и защита столбцов

  1. Выберите столбец, который хотите защитить.
  2. Нажмите Ctrl + Shift + F. …
  3. Убедитесь, что отображается вкладка Защита. …
  4. Убедитесь, что установлены флажки «Заблокировано» и «Скрыто». …
  5. Щелкните OK, чтобы закрыть диалоговое окно.
  6. Не снимая выделения с столбца, откройте вкладку «Главная» на ленте.

Как разблокировать прокручиваемые ячейки в Excel?

Снять блокировку прокрутки в Excel с помощью экранной клавиатуры

  1. Нажмите кнопку Windows и начните вводить «экранная клавиатура» в поле поиска. …
  2. Щелкните приложение Экранная клавиатура, чтобы запустить его.
  3. Появится виртуальная клавиатура, и вы нажмете клавишу ScrLk, чтобы снять блокировку прокрутки.

Как запереть камеру?

Выполните следующие действия, чтобы заблокировать ячейки на листе:

  1. Выделите ячейки, которые хотите заблокировать.
  2. На вкладке «Главная» в группе «Выравнивание» щелкните маленькую стрелку, чтобы открыть всплывающее окно «Формат ячеек».
  3. На вкладке «Защита» установите флажок «Заблокировано» и нажмите кнопку «ОК», чтобы закрыть всплывающее окно.

Как заблокировать несколько ячеек в Excel F4?

Выберите ячейку формулы, щелкните одну из ссылок на ячейку на панели формул и нажмите клавишу F4. Затем выбранная ссылка на ячейку блокируется. Продолжайте, чтобы заблокировать другие ссылки на ячейки текущей формулы с помощью того же шага, описанного выше.

Как заблокировать только определенные ячейки в Excel?

Нажмите сочетание клавиш Ctrl + A чтобы выделить все ячейки листа. Щелкните правой кнопкой мыши и выберите Формат ячеек. Перейдите на вкладку «Защита», снимите флажок «Заблокировано» и нажмите «ОК». Теперь выберите только ячейки или столбцы, строки, которые вы хотите защитить.

Как исправить группировку в Excel?

Чтобы удалить группировку определенных строк без удаления всей структуры, выполните следующие действия:

  1. Выберите строки, которые нужно разгруппировать.
  2. Перейдите на вкладку «Данные»> группа «Структура» и нажмите кнопку «Разгруппировать». Или нажмите Shift + Alt + стрелка влево, которая является ярлыком «Разгруппировать» в Excel.
  3. В диалоговом окне «Разгруппировать» выберите «Строки» и нажмите «ОК».

Как разрешить группировку и разгруппировку на защищенном листе?

Нажмите Alt + F11, чтобы активировать редактор Visual Basic. Дважды щелкните ThisWorkbook в разделе «Объекты Microsoft Excel» в проводнике проекта слева. Этот код будет выполняться автоматически каждый раз при открытии книги.

Как заблокировать ячейку, не защищая лист?

Betreff: заблокировать ячейку без защиты рабочего листа

  1. Запустите Excel.
  2. Перейдите на вкладку «Проверить» и выберите «Снять защиту листа». …
  3. Выделите все ячейки, щелкнув в верхнем левом углу таблицы.
  4. На вкладке «Пуск» выберите «Формат> Форматировать ячейки> Защита» и снимите флажок «Заблокировано».

Можно ли скрыть и заблокировать вкладку в Excel?

Если структура книги не защищена паролем, любой скрытый лист может снова легко стать видимым. Чтобы скрыть лист: щелкните правой кнопкой мыши вкладку листа и выберите «Скрыть». … VBE может быть заблокирован паролем, только если книга сохранена в формате файла с поддержкой макросов, Такие как .

Как заблокировать скрытые вкладки в Excel?

Включить защиту рабочего листа

  1. В файле Excel выберите вкладку листа, которую вы хотите защитить.
  2. Выделите ячейки, которые могут редактировать другие. …
  3. Щелкните правой кнопкой мыши в любом месте листа и выберите «Форматировать ячейки» (или используйте Ctrl + 1 или Command + 1 на Mac), а затем перейдите на вкладку «Защита» и снимите флажок «Заблокировано».

Интересные материалы:

Что будет, если датчик угла поворота рулевого колеса неисправен?
Что будет, если ДСП намокнет?
Что будет, если FPS упадет?
Что будет, если я изменю канал Wi-Fi?
Что будет, если я не буду использовать SIM-карту?
Что будет, если я отменю заказ на AliExpress?
Что будет, если я отвечу на неизвестный номер?
Что будет, если я отвечу на звонок со своего номера?
Что будет, если я перейду в режим восстановления?
Что будет, если я перенесу мессенджер на SD-карту?

Содержание

  1. Сдвигаем границу строки
  2. Одновременное скрытие нескольких строк
  3. Используем контекстное меню
  4. Применяем кнопки на ленте
  5. Группировка
  6. Панель инструментов
  7. Фильтр
  8. С помощью возможностей «Условное форматирование»
  9. Настройка правильных параметров в «Настройках» программы
  10. При помощи настроек цвета и параметров печати
  11. Скрытие помеченных строк/столбцов макросом
  12. Скрытие строк/столбцов с заданным цветом
  13. Выборочная защита диапазонов для разных пользователей
  14. Защита листов книги
  15. Блокировка через рецензирование
  16. Заморозка ячейки
  17. Закрепление области
  18. Фиксация формулы в Excel по вертикали
  19. Полезные советы
  20. Как скрыть формулу заблокированной ячейки
  21. Снимаем защиту
  22. Заключение

Сдвигаем границу строки

Данный метод, пожалуй, является самым простым. И вот, в чем он заключается.

  1. На вертикальной координатной панели наводим указатель мыши на нижнюю границу строки, которую планируем скрыть. Когда появится знак в виде плюсика со стрелками вверх и вниз, зажав левую кнопку мыши тянем его вверх, соединив с верхней границей строки.
  2. Таким нехитрым способом нам удалось скрыть выбранную строку.

Одновременное скрытие нескольких строк

Этот способ базируется на том, который мы рассмотрели выше, и также предполагает сдвиг границы, но не отдельной строки, а выделенного диапазона.

  1. На вертикальной координатной панели любым удобным способом (например, с помощью зажатой левой кнопки мыши) выделяем строки, которые планируем спрятать.Если требуется выделить разрозненные строки, выполняем выделение левой кнопкой мыши (щелчком или зажав для идущих подряд строк), удерживая клавишу Ctrl на клавиатуре.
  2. Аналогично скрытию одной строки (действия описали в методе выше), сдвигаем границу любой строки из выделенного диапазона. При этом неважно, тянем ли мы указатель к верхней границе именно этой строки или к границе самой верхней строки отмеченной области.
  3. В итоге мы скрыли сразу весь выделенный диапазон.

Используем контекстное меню

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

  1. На вертикальной панели координат выделяем нужные строки (как это сделать, описано выше).
  2. Щелкаем правой кнопкой мыши по любому месту в выделенном диапазоне на координатной панели, в открывшемся списке выбираем команду “Скрыть”.
  3. Весь выделенный диапазон строк будет спрятан.

Применяем кнопки на ленте

На ленте программы также, предусмотрены кнопки для скрытия строк.

  1. Для начала нужно выделить строки, которые мы планируем спрятать. Сделать это можно по-разному:
  2. Находясь во вкладке “Главная” в группе инструментов “Ячейки” щелкаем по кнопке “Формат”. В открывшемся перечне выбираем команду “Скрыть или отобразить”, затем – “Скрыть строки”.
  3. Получаем скрытый диапазон строк.

Группировка

Чтобы скрыть ячейки с плюсом, необходимо воспользоваться специальным инструментом Excel – группировка. Он расположен во вкладке Данные на Панели инструментов в блоке Структура.

Порядок действий следующий:

  1. Выделяете необходимую область

  1. Переходите во вкладку Данные и нажимаете кнопку Группировать.

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

  1. Чтобы посмотреть скрытую область, нажимаете на плюс и таблица примет первоначальный вид.

На заметку! С помощью этой функции можно делать сложную группировку с несколькими вложениями, каждое из которых будет зависеть от вышестоящей группы.

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

Панель инструментов

Аналогичную операцию можно сделать через главную вкладку. Для этого ищете кнопку Формат и из выпадающего списка выбираете строку Скрыть или отобразить. Далее выбираете нужное действие.

Чтобы отобразить ячейки обратно, выбираете в том же меню функцию Отобразить строки или столбцы, в зависимости от того, что скрывалось.

Фильтр

Фильтрация данных еще один способ сокрытия информации. Ставите курсор в нужную ячейку, переходите к блоку Редактирование на Главной вкладке, нажимаете кнопку Сортировка и фильтр, потом из выпадающего списка выбираете Фильтр. Если все сделано правильно, в ячейке появится стрелочка вниз.

Нажав на этот флажок, убираете галочки с нужных позиций, затем подтверждаете действие кнопкой ОК.

Таблица приняла другой вид, а о применении фильтрации свидетельствует синий цвет номеров строк и небольшая воронка вместо стрелочки.

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

С помощью возможностей «Условное форматирование»

Для того чтобы узнать, как скрыть значение ячеек также можно использовать возможности «Условного форматирования». Для этого нам нужно выделить диапазон ячеек, где мы будем скрывать значения с нулевым результатом. Выбираем вкладку «Главная», блок «Стили», нажимаем иконку «Условное форматирование», в списке который раскрылся, выбираете «Правила выделение ячеек – Равно…». Следующим этапом станет указать какой именно формат вам будет надо, в поле «Форматировать ячейки, которые РАВНЫ:» устанавливаете значение 0. В открывшемся списке выбираете «Пользовательский формат…»,

в диалоговом окне «Формат ячеек» переходим на вкладку «Шрифт», потом в списке меню «Цвет» вы изменяете «Цвет темы: Авто» на «Цвет темы: Белый, Фон 1» и нажимаете «ОК» и снова «ОК».

После ваших манипуляций, если значение в указанном диапазоне будет равно 0, программа закрасит его белый цвет, и оно сольется с фоном листа, проще говоря станет невидимым.

В случае, когда вам будет нужно первоначальное форматирование, вы просто удаляете это правило. А именно: переходите на вкладку «Главная», выбираете «Стили», кликаете на иконку «Условное форматирование», нажимаете «Удалить правило» и «Удалить правила из выделенных ячеек».

Настройка правильных параметров в «Настройках» программы

Скрыть в Excel значение ячеек можно даже проще, всего на всего установить нужный вам параметр в настройках листа Excel.

Для этого вы заходите в меню «Файл» — пункт «Параметры» — пункт «Дополнительно» — раздел показать параметры для следующего листа. Здесь в параметре «Показывать нули в ячейках, которые содержат нулевые значения» вы убираете галочку. Вуаля! Числа со значением 0 не показываются на том листе, для которого был установлен параметр.

При помощи настроек цвета и параметров печати

Самый простой и банальный способ, в котором вы просто берете диапазон и закрашиваете его белым цветом и текст делаете также белым. Типа в темной комнате не видно чёрной кошки, так и в нашем случае, белое на белом незаметно, я бы даже сказал невидимое, а оно есть.

Минус способа в том при печати ваш текст станет видным, поскольку в настройках принтера стоит «Черно-белая печать», и никакие манёвры и извращения с аналогичными цветами ячейки и шрифта не проходят.

Скрытие помеченных строк/столбцов макросом

Этот способ, пожалуй, можно назвать самым универсальным. Добавим пустую строку и пустой столбец в начало нашего листа и отметим любым значком те строки и столбцы, которые мы хотим скрывать:

Теперь откроем редактор Visual Basic (ALT+F11), вставим в нашу книгу новый пустой модуль (меню Insert – Module) и скопируем туда текст двух простых макросов:

Sub Hide() Dim cell As Range Application.ScreenUpdating = False 'отключаем обновление экрана для ускорения For Each cell In ActiveSheet.UsedRange.Rows(1).Cells 'проходим по всем ячейкам первой строки If cell.Value = "x" Then cell.EntireColumn.Hidden = True 'если в ячейке x - скрываем столбец Next For Each cell In ActiveSheet.UsedRange.Columns(1).Cells 'проходим по всем ячейкам первого столбца If cell.Value = "x" Then cell.EntireRow.Hidden = True 'если в ячейке x - скрываем строку Next Application.ScreenUpdating = True End Sub Sub Show() Columns.Hidden = False 'отменяем все скрытия строк и столбцов Rows.Hidden = False End Sub 

Как легко догадаться, макрос Hide скрывает, а макрос Show – отображает обратно помеченные строки и столбцы. При желании, макросам можно назначить горячие клавиши (Alt+F8 и кнопка Параметры), либо создать прямо на листе кнопки для их запуска с вкладки Разработчик – Вставить – Кнопка (Developer – Insert – Button).

Скрытие строк/столбцов с заданным цветом

Допустим, что в приведенном выше примере мы, наоборот, хотим скрыть итоги, т.е. фиолетовые и черные строки и желтые и зеленые столбцы. Тогда наш предыдущий макрос придется немного видоизменить, добавив вместо проверки на наличие “х” проверку на совпадение цвета заливки с произвольно выбранными ячейками-образцами:

Sub HideByColor() Dim cell As Range Application.ScreenUpdating = False For Each cell In ActiveSheet.UsedRange.Rows(2).Cells If cell.Interior.Color = Range("F2").Interior.Color Then cell.EntireColumn.Hidden = True If cell.Interior.Color = Range("K2").Interior.Color Then cell.EntireColumn.Hidden = True Next For Each cell In ActiveSheet.UsedRange.Columns(2).Cells If cell.Interior.Color = Range("D6").Interior.Color Then cell.EntireRow.Hidden = True If cell.Interior.Color = Range("B11").Interior.Color Then cell.EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub 

Однако надо не забывать про один нюанс: этот макрос работает только в том случае, если ячейки исходной таблицы заливались цветом вручную, а не с помощью условного форматирования (это ограничение свойства Interior.Color). Так, например, если вы с помощью условного форматирования автоматически подсветили в своей таблице все сделки, где количество меньше 10:

…и хотите их скрывать одним движением, то предыдущий макрос придется “допилить”. Если у вас Excel 2010-2013, то можно выкрутиться, используя вместо свойства Interior свойство DisplayFormat.Interior, которое выдает цвет ячейки вне зависимости от способа, которым он был задан. Макрос для скрытия синих строк тогда может выглядеть так:

Sub HideByConditionalFormattingColor() Dim cell As Range Application.ScreenUpdating = False For Each cell In ActiveSheet.UsedRange.Columns(1).Cells If cell.DisplayFormat.Interior.Color = Range("G2").DisplayFormat.Interior.Color Then cell.EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub 

Ячейка G2 берется в качестве образца для сравнения цвета. К сожалению, свойство DisplayFormat появилось в Excel только начиная с 2010 версии, поэтому если у вас Excel 2007 или старше, то придется придумывать другие способы.

Выборочная защита диапазонов для разных пользователей

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

Чтобы сделать это выберите на вкладке Рецензирование (Review) кнопку Разрешить изменение диапазонов (Allow users edit ranges). В версии Excel 2003 и старше для этого есть команда в меню Сервис – Защита – Разрешить изменение диапазонов (Tools – Protection – Allow users to change ranges):

В появившемся окне необходимо нажать кнопку Создать (New) и ввести имя диапазона, адреса ячеек, входящих в этот диапазон и пароль для доступа к этому диапазону:

Повторите эти действия для каждого из диапазонов разных пользователей, пока все они не окажутся в списке. Теперь можно нажать кнопку Защитить лист (см. предыдущий пункт) и включить защиту всего листа.

Теперь при попытке доступа к любому из защищенных диапазонов из списка, Excel будет требовать пароль именно для этого диапазона, т.е. каждый пользователь будет работать “в своем огороде”.

Защита листов книги

Если необходимо защититься от:

  • удаления, переименования, перемещения листов в книге
  • изменения закрепленных областей (“шапки” и т.п.)
  • нежелательных изменений структуры (сворачивание строк/столбцов при помощи кнопок группировки “плюс/минус”)
  • возможности сворачивать/перемещать/изменять размеры окна книги внутри окна Excel

то вам необходима защита всех листов книги, с помощью кнопки Защитить книгу (Protect Workbook) на вкладке Рецензирование (Reveiw) или – в старых версиях Excel – через меню Сервис – Защита – Защитить книгу (Tools – Protection – Protect workbook):

Блокировка через рецензирование

Есть ещё метод поставить блок на нужные ячейки программы Excel. Оба метода очень похожи, различия только в разных меню, где мы будем блокировать документ.

  • Проделываем то же, что мы делали в пунктах 1 – 3, то есть убираем и ставим галочку над «Защищаемой ячейкой».
  • Теперь, перейдем в верхнее меню «Рецензирование». Примерно в середине этого меню мы видим команду «Защитить лист». Нажмём на эту кнопку.
  • Затем, мы видим вновь окошко «Защита листа», как в верхнем методе. Далее, поступаем также, как до этого по аналогии.

Заморозка ячейки

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

  1. Закрепление верхней строки.
  2. Заморозка левого крайнего столбца.
  3. Закрепление области, находящейся сверху и слева от выделенной ячейки.

Закрепление области

Если вы хотите оставить в поле зрения ряд строк и столбцов, тогда делайте следующее:

  1. Выделите ячейку, строки выше и столбцы левее которой необходимо заморозить.
  2. Перейдите во вкладку «Вид».
  3. На ленте инструментов кликните по «Закрепить области».
  4. В списке выберите опцию «Закрепить области».

Частичная фиксация по вертикали (пример $A1), это закрепления возможно только для столбцов, вероятность сдвига формулы частично сохраняется, но только по горизонтали (в строке). Как видно со скриншота или скачанного вами файла с примером.

Полезные советы

  • Ячейки, которые необходимо заблокировать, находятся на удалении друг от друга? Excel 2016 и версии до 2007 включительно позволяют выделять их не вручную, а автоматически.
    Для этого во вкладке «Главная» в одном из самых последних полей под названием «Редактирование» нажмите кнопку «Найти и выделить». Выберите пункт «Выделение группы ячеек…»

И установите нужные настройки:

Как скрыть формулу заблокированной ячейки

Если ячейки, которые вы защитили от редактирования содержат формулы, вы также можете их скрыть.

Для этого проделайте следующие шаги:

  • Выделите ячейки, которые вы хотите защитить и скрыть формулы;
  • Перейдем на вкладку “Главная” на панели инструментов и в подразделе “Выравнивание” кликнем по иконке в правом нижнем углу, как мы делали это раннее;
  • Во всплывающем окне, на вкладке “Защита” поставим галочки в пунктах “Защищаемая ячейка” и “Скрыть формулы“:

Снимаем защиту

Если мы попытаемся внести изменения в любую из защищенных ячеек, программа выдаст соответствующе информационное сообщение.

Для снятие блокировки необходимо ввести пароль:

  1. Во вкладке “Рецензирование” в группе инструментов “Защита” жмем кнопку “Снять защиту с листа”.
  2. Откроется небольшое окошко с одним полем, в котором следует ввести пароль, указанный при блокировке ячеек. Нажав кнопку OK мы снимем защиту.

Заключение

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

Источники

  • https://MicroExcel.ru/skrytie-strok-yacheek/
  • https://mir-tehnologiy.ru/kak-skryt-yachejki-v-excel/
  • https://topexcel.ru/kak-skryt-v-excel-znachenie-yacheek/
  • https://www.planetaexcel.ru/techniques/2/121/
  • https://www.planetaexcel.ru/techniques/5/66/
  • https://info-kibersant.ru/kakzaschitit-excel-ot-izmeneniy-html.html
  • https://FB.ru/article/414058/dva-varianta-kak-zamorozit-yacheyku-v-excel
  • https://topexcel.ru/prostoj-sposob-zafiksirovat-znachenie-v-formule-excel/
  • https://profi-user.ru/zashhita-yacheek-ot-redaktirovaniya-v-excel/
  • https://excelhack.ru/kak-zaschitit-yacheiku-ot-izmenenii-v-excel/
  • https://MicroExcel.ru/zashita-yacheek/

Как сгруппировать и разгруппировать строки на защищенном листе?

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

Группировка и разгруппировка строк на защищенном листе с кодом VBA


стрелка синий правый пузырь Группировка и разгруппировка строк на защищенном листе с кодом VBA

Возможно, нет другого хорошего способа решить эту проблему, кроме использования кода VBA, сделайте следующее:

1. Активируйте свой рабочий лист, который вы хотите использовать, убедитесь, что рабочий лист еще не защищен.

2. Затем удерживайте ALT + F11 ключи, и он открывает Окно Microsoft Visual Basic для приложений.

3. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.

Код VBA: группировка и разгруппировка строк на защищенном листе

Sub EnableOutlining()
'Update 20140603
Dim xWs As Worksheet
Set xWs = Application.ActiveSheet
Dim xPws As String
xPws = Application.InputBox("Password:", xTitleId, "", Type:=2)
xWs.Protect Password:=xPws, Userinterfaceonly:=True
xWs.EnableOutlining = True
End Sub

4. Затем нажмите F5 нажмите клавишу для запуска этого кода, и появится диалоговое окно с напоминанием о вводе пароля для защиты текущего рабочего листа. Смотрите скриншот:

doc-группа-в-защищенном-листе1

5. Затем нажмите OK, ваш лист был защищен, но вы можете развернуть и сжать символы структуры на этом защищенном листе, см. снимок экрана:

doc-группа-в-защищенном-листе1

Внимание: Если ваш рабочий лист уже защищен, этот код не будет работать.


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (32)


Оценок пока нет. Оцените первым!

Да, было такое решение в архиве форума. Можно, но только с помощью VBA.

Алексей Б., 12.09.07 02:17:

Доброго дня всем форумчанам! Как всегда нужен совет бывалых и осведомленных. Появилась проблемка которую никак не могу решить. Ситуация: Есть файл-шаблон, который отправляется людям для заполнения. А ручки у некоторых шаловливые и они все время пытаются подстроить под себя шаблончик (меняют формулы, добавляют строки и т.п.), поэтому все листы в этом файле защищены. НО, защитив листы столкнулся с проблемой: невозможно раскрыть/свернуть (+ /-) сгруппированные строчки и столбцы. Может есть какая нибудь фишка в настройках, чтобы это было осуществимо? Буду рад любым советам.

Vasyl Grabovsky, 12.09.07 12:30:

Когда ставишь защиту на шит, там внизу можно галочками выбрать функции которые остаются доступными пользователю после защиты.

Сергей Л., 12.09.07 13:46:

К сожалению, среди этих функций нет тех, которые позволяют скрыть-раскрыть группированные столбцы и строки. Сам сначала подумал об этом, проверил — ничего не подходит… Таким образом, IMHO, только при помощи VBA. То есть, будет запускаться макрос, снимающий защиту листа, раскрывающий(скрывающий) нужные столбцы и ставящий защиту обратно. …Вот только как привязать его запуск к отображению/скрытию деталей (к тем самым «+» и «-«) — не знаю. Можно сделать отдельные кнопки на запуск.

Anton slonik, 24.10.07 07:42:

Не знаю, актуален ли еще этот вопрос, но на всякий случай напишу, что знаю: в листе (Worksheet) есть свойство EnableOutlining, которое отвечает за группировку в защищенном режиме при доступности корректировки через юзеринтерфейс. Его можно засунуть в обработчик события открытия книги или в другое место по вашему желанию. Приведу тут же текст из хелпа:

EnableOutlining Property
True if outlining symbols are enabled when user-interface-only protection is turned on.
Read/write Boolean.

Remarks

This property applies to each worksheet and isn’t saved with the worksheet or session.

Example

This example enables outlining symbols on a protected worksheet.

ActiveSheet.EnableOutlining = True
ActiveSheet.Protect contents:=True, userInterfaceOnly:=True

Алексей Шмуйлович, 24.10.07 17:36:

Потрясающе. Век живи — век учись. Этот вопрос уже не раз на форуме поднимали и ответ не нашли. А вот, оказывается, можно группировку на защищенном листе включить!

Блокировка и разблокировка определенных областей защищенного листа

В этом курсе:

  • Предоставление доступа к книге Excel другим пользователям
    Статья
  • Примечания и заметки
    Статья
  • Одновременная коллективная работа над книгами Excel с помощью функции совместного редактирования
    Статья
  • Просмотр файлов, которыми с вами поделились
    Статья
  • Блокировка и разблокировка определенных областей защищенного листа
    Статья
  • Защита файла Excel
    Статья
  • Сохранение или преобразование в формат PDF
    Статья

Блокировка и разблокировка определенных областей защищенного листа

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

Блокировка только определенных ячеек и диапазонов ячеек на защищенном листе

Если лист защищен, сделайте следующее:

На вкладке Рецензировка нажмите кнопку Отостановка листа (в группе Изменения).

Нажмите кнопку Защитить лист, чтобы отопрестить защиту листа, если лист защищен.

Если будет предложено, введите пароль, чтобы отоблести защиты.

Выделите лист целиком, нажав кнопку Выделить все.

Кнопка Выбрать все

На вкладке Главная щелкните всплывающее кнопку запуска Формат шрифта ячейки. Вы также можете нажать клавиши CTRL+SHIFT+F или CTRL+1.

Во всплываемом окне Формат ячеек на вкладке Защита отоберем поле Блокировка и нажмите кнопку ОК.

Вкладка

При защите листа все ячейки будут разблокированы. Теперь вы можете выбрать конкретные ячейки, которые нужно защитить.

Выделите на листе только те ячейки, которые необходимо заблокировать.

Снова отключим всплывающее окно Формат ячеек (CTRL+SHIFT+F).

В этот раз на вкладке Защита выберите поле Заблокировано и нажмите кнопку ОК.

На вкладке Рецензирование нажмите кнопку Защитить лист.

В списке Разрешить всем пользователям этого таблицы выберите элементы, которые пользователи должны иметь возможность изменять.

Дополнительные сведения об элементах листа

выделение заблокированных ячеек

Перемещение указателя на ячейки, для которых установлен флажок Защищаемая ячейка на вкладке Защита в диалоговом окне Формат ячеек. По умолчанию пользователям разрешено выделять защищенные ячейки.

выделение незаблокированных ячеек

Перемещение указателя на ячейки, для которых снят флажок Защищаемая ячейка на вкладке Защита в диалоговом окне Формат ячеек. По умолчанию пользователям разрешено выделять незаблокированные ячейки, а также перемещаться между незаблокированными ячейками на защищенном листе с помощью клавиши TAB.

Изменение параметров в диалоговых окнах Формат ячеек или Условное форматирование. Если условное форматирование было применено до установки защиты листа, форматирование будет изменяться при вводе значения, удовлетворяющего определенному условию.

Использование любых команд форматирования столбцов, включая изменение ширины столбца или скрытие столбцов (вкладка Главная, группа Ячейки, кнопка Формат).

Использование любых команд форматирования строк, включая изменение высоты строки или скрытие строк (вкладка Главная, группа Ячейки, кнопка Формат).

Вставка новых гиперссылок (даже в незаблокированных ячейках).

Если команда удаление столбцов защищена, а команда вставку столбцов не защищена, пользователь не сможет удалять столбцы, которые он вставит.

Если команда удаление строк защищена, а команда вставку строк не защищена, пользователь не сможет удалять строки, которые он вставит.

Использование команд для сортировки данных (вкладка Данные, группа Сортировка и фильтр).

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

Использование стрелок раскрывающегося списка для изменения фильтра в диапазонах, если применяются автофильтры.

Пользователи не смогут применить или удалить автофильтры на защищенном листе независимо от настройки этого параметра.

использование отчетов сводной таблицы

Форматирование, изменение макета, обновление или изменение отчетов сводной таблицы каким-либо иным образом, а также создание новых отчетов.

Выполнять следующие действия:

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

Внесение каких-либо изменений (например, форматирование) во встроенную диаграмму. Диаграмма по-прежнему будет обновляться при изменениях ее исходных данных.

Добавление или изменение примечаний.

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

Элементы листа диаграммы

Изменение элементов, являющихся частью диаграммы, таких как ряды данных, оси и легенды. При этом в диаграммах будут отображаться изменения, вносимые в исходные данные.

Изменение графических объектов, включая фигуры, текстовые поля и элементы управления (если объекты не были разблокированы до включения защиты листа диаграммы).

В поле Пароль для отключения защиты листа введите пароль для листа, нажмите кнопку ОК, а затем повторно введите пароль для подтверждения.

Пароль необязателен. Если не задать пароль, любой пользователь сможет снять защиту с листа и изменить защищенные элементы.

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

Разблокировка диапазонов ячеек на защищенном листе для их изменения пользователями

Чтобы предоставить определенным пользователям разрешение изменять диапазоны на защищенном листе, на компьютере должна быть установлена операционная система Microsoft Windows XP или более поздней версии, а сам компьютер должен находиться в домене. Вместо использования разрешений, для которых требуется домен, можно также задать пароль для диапазона.

Выберите листы, которые нужно защитить.

На вкладке Рецензирование в группе Изменения нажмите кнопку Разрешить изменение диапазонов.

Эта команда доступна, только если лист не защищен.

Выполните одно из следующих действий:

Чтобы добавить новый редактируемый диапазон, нажмите кнопку Создать.

Чтобы изменить существующий редактируемый диапазон, выберите поле Диапазоны защищенного листа, разблокируемые паролем, затем нажмите кнопку Изменить.

Чтобы удалить редактируемый диапазон, выберите поле Диапазоны защищенного листа, разблокируемые паролем, затем нажмите кнопку Удалить.

В поле Название введите имя диапазона, который необходимо разблокировать.

В поле Содержит ячейки введите знак равенства ( =), а затем ссылку на диапазон, который необходимо разблокировать.

Также можно нажать кнопку Свернуть диалоговое окно, выбрать на листе диапазон, а затем снова нажать кнопку Свернуть диалоговое окно, чтобы вернуться к диалоговому окну.

Для управления доступом с помощью пароля в поле Пароль диапазона введите пароль для доступа к диапазону.

При использовании разрешений на доступ задавать пароль необязательно. Использование пароля позволяет просматривать учетные данные всех полномочных пользователей, изменяющих диапазон.

Для установки разрешений на доступ выберите пункт Разрешения и нажмите кнопку Добавить.

В поле Введите имена объектов для выбора (примеры) введите имена пользователей, которым нужно разрешить изменять диапазоны.

Чтобы посмотреть, как должны вводиться имена пользователей, щелкните примеры. Чтобы проверить правильность имен, нажмите кнопку Проверить имена.

Нажмите кнопку ОК.

Чтобы указать тип разрешений для выбранного пользователя, в поле Разрешения установите или снимите флажок Разрешить или Запретить, а затем нажмите кнопку Применить.

Нажмите кнопку ОК два раза.

При необходимости введите заданный пароль.

В диалоговом окне Разрешить изменение диапазонов нажмите кнопку Защитить лист.

В списке Разрешить всем пользователям этого листа выберите элементы, которые должны изменять пользователи.

Дополнительные сведения об элементах листа

выделение заблокированных ячеек

Перемещение указателя на ячейки, для которых установлен флажок Защищаемая ячейка на вкладке Защита в диалоговом окне Формат ячеек. По умолчанию пользователям разрешено выделять защищенные ячейки.

выделение незаблокированных ячеек

Перемещение указателя на ячейки, для которых снят флажок Защищаемая ячейка на вкладке Защита в диалоговом окне Формат ячеек. По умолчанию пользователям разрешено выделять незаблокированные ячейки, а также перемещаться между незаблокированными ячейками на защищенном листе с помощью клавиши TAB.

Изменение параметров в диалоговых окнах Формат ячеек или Условное форматирование. Если условное форматирование было применено до установки защиты листа, форматирование будет изменяться при вводе значения, удовлетворяющего определенному условию.

Использование любых команд форматирования столбцов, включая изменение ширины столбца или скрытие столбцов (вкладка Главная, группа Ячейки, кнопка Формат).

Использование любых команд форматирования строк, включая изменение высоты строки или скрытие строк (вкладка Главная, группа Ячейки, кнопка Формат).

Вставка новых гиперссылок (даже в незаблокированных ячейках).

Если команда удаление столбцов защищена, а команда вставку столбцов не защищена, пользователь не сможет удалять столбцы, которые он вставит.

Если команда удаление строк защищена, а команда вставку строк не защищена, пользователь не сможет удалять строки, которые он вставит.

Использование команд для сортировки данных (вкладка Данные, группа Сортировка и фильтр).

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

Использование стрелок раскрывающегося списка для изменения фильтра в диапазонах, если применяются автофильтры.

Пользователи не смогут применить или удалить автофильтры на защищенном листе независимо от настройки этого параметра.

использование отчетов сводной таблицы

Форматирование, изменение макета, обновление или изменение отчетов сводной таблицы каким-либо иным образом, а также создание новых отчетов.

Выполнять следующие действия:

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

Внесение каких-либо изменений (например, форматирование) во встроенную диаграмму. Диаграмма по-прежнему будет обновляться при изменениях ее исходных данных.

Добавление или изменение примечаний.

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

Элементы листа диаграммы

Изменение элементов, являющихся частью диаграммы, таких как ряды данных, оси и легенды. При этом в диаграммах будут отображаться изменения, вносимые в исходные данные.

Изменение графических объектов, включая фигуры, текстовые поля и элементы управления (если объекты не были разблокированы до включения защиты листа диаграммы).

В поле Пароль для отключения защиты листа введите пароль, нажмите кнопку ОК, а затем повторно введите пароль для подтверждения.

Пароль необязателен. Если его не задать, любой пользователь сможет снять защиту с листа и изменить защищенные элементы.

Убедитесь, что вы выбрали пароль, который можете запомнить. Если вы потеряете пароль, вы не сможете получить доступ к защищенным элементам на этом сайте.

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

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

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Someone might need this, I think I figured out how to make this work.

First, your code needs to be written in «ThisWorkbook» under Microsoft Excel Objects, as @peachyclean suggests.
Second, take the code that @Sravanthi wrote, and paste to the above mentioned location.

Sub Workbook_Open()
‘Update 20140603
Dim xWs As Worksheet
Set xWs = Application.ActiveSheet
Dim xPws As String
xPws = «rfc» »Application.InputBox(«Password:», xTitleId, «», Type:=2)
xWs.Protect Password:=xPws, Userinterfaceonly:=True
xWs.EnableOutlining = True
End Sub

The thing is that you need to be on the sheet which you want to protect but allowing using grouping, and save the workbook and close, without protecting. Now if you open it, the macro starts automatically, it will make the sheet protected with the password «rfc». Now you can use the grouping, the sheet is protected.

For my solution, I’ve modified the password applied, so you can rewrite any password HERE:
xPws = «WRITEANYPASSWORDHERE» »Application.InputBox(«Password:», xTitleId, «», Type:=2)

Furthermore, I didn’t want the to-be-protected sheet active when opening the file, therefore I’ve modified this part:
Set xWs = Application.ActiveSheet ->
Set xWs = Application.Worksheets(«WRITEANYSHEET’SNAMEHERE»)

Now it works like charm, sheet named ‘WRITEANYSHEET’SNAMEHERE’ is protected but the grouping applicable. On the long run, I think the problem will be that if I want to modify this file and keep the solution, I need to unprotect this sheet to make it work on the next opening. I guess you can write another macro to automatically unprotect when closing 🙂

I hope it helped.

I have gotten this code to work. But when I close and reopen I must go to the developer tab, select the macros button, select run and enter the password.

Is there a way to remove the password from the code OR a auto run code that will automatically run the this marco and enter the password?

Понравилась статья? Поделить с друзьями:
  • Защита vba проектов в excel
  • Защита excel паролем при открытии
  • Защита excel 2007 файла
  • Заштопать носки заделать дыру в заборе give english equivalents of these word combinations and
  • Зашифровать файл excel 2010