3 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11

Разграничение прав доступа на области листа

07.02.2013, 10:48. Показов 2244. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача: сделать так, чтобы лист могли видеть все пользователи, но Группа 1 могла редактировать и добавлять только в одном диапозоне ячеек, а Группа 2 - в другом.
Как это сделать?
Пока смог только прятать листы от разнух групп, в зависимости от Username (пользователи в основном - люди возрастные и в компьютере не особо разбираются, как поменять имя пользователя в exel не найдут). Поскольку в 1-й группе 8 человек, в другой - 12, можно вбить их всех в макрос.

Visual Basic
1
2
3
If Application.UserName = "" Then
Sheets("Доходы").Visible = xlVeryHidden
Sheets("Расходы").Visible = True
Какое свойство можно поставитть вместо Visible (и соответственно какое значение ему придать), чтобы было видно все ячейки, но было раздлеление по диапозонам в части возможности редактирования?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.02.2013, 10:48
Ответы с готовыми решениями:

Разграничение прав доступа в Excel
Добрый день! Как реализовать разграничение прав для пользователей? Допустим у нас имеются 4 пользователя и 1 лист, после захода в лист...

Разграничение прав доступа
Есть таблица, в ней n строк, n столбцов (id integer, gid text, etc...) Как реализовать доступ (select) первого пользователя к первой...

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

8
 Аватар для Апострофф
9902 / 3911 / 740
Регистрация: 11.10.2011
Сообщений: 5,889
07.02.2013, 11:36
Лучший ответ Сообщение было отмечено как решение

Решение

Вариант (в модуль эта книга) -
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Workbook_Open()
ActiveSheet.Unprotect
Cells.Locked = False
Select Case Application.UserName
  Case "user1", "user2", "user3", "user4", "user5" 'для перечисленных пользователей
    Columns(1).Locked = True 'запрещаем редактирование первого стобца
  Case "user11", "user12", "user13", "user14", "user15" 'для перечисленных пользователей
    Columns(2).Locked = True 'запрещаем редактирование второго стобца
  Case Else 'для все прочих
    Cells.Locked = True 'запрещаем редактирование всего листа
End Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
3
3 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
07.02.2013, 13:01  [ТС]
Спасибо! А как отключить всплывающее сообщения? Чтобы не писал "Ячейка защищена от редактирования. Зайдите туда то и отключите то-то". Так даже мои возрастники ее отключят из чистого любопытства.
Строчка Application.DisplayAlerts = False почему-то не помогла.

Добавлено через 12 минут
Отбой. Нашел как сделать.
0
07.02.2013, 13:49

Не по теме:

Цитата Сообщение от BadNV Посмотреть сообщение
Отбой. Нашел как сделать.
Нашел, так поделись со всеми:)

0
3 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
07.02.2013, 13:53  [ТС]
Это не через макрос делается.
Вкладка рецензирование - Защитить лист - убрать галочку напротив "выделение заблокированных ячеек". В итоге, те ячейки, которые макрос блокирует для юзера не могут быть выделены, а значит и сообщений не будет.
0
 Аватар для Апострофф
9902 / 3911 / 740
Регистрация: 11.10.2011
Сообщений: 5,889
07.02.2013, 14:03
Цитата Сообщение от BadNV Посмотреть сообщение
Это не через макрос делается.
Можно и через макрос
Visual Basic
1
ActiveSheet.EnableSelection = xlUnlockedCells
1
3 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
07.02.2013, 15:06  [ТС]
Чей-то не помогает эта строчка, все равно сообщение выскакивает.
0
 Аватар для Апострофф
9902 / 3911 / 740
Регистрация: 11.10.2011
Сообщений: 5,889
07.02.2013, 15:27
Цитата Сообщение от BadNV Посмотреть сообщение
все равно сообщение выскакивает
Я вставил эту строку после 2-й строки своего варианта. Сообщение выскакивает только при двойном клике и при условии, что весь лист заблокирован, иначе происходит вход в активную ячейку. Возможно, что-то не учтено?
0
3 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 11
07.02.2013, 15:29  [ТС]
Пардон, все встало как надо. Так и не понял, где не так сделал. Просто перезалил в VBA твой макрос еще раз.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2013, 15:29
Помогаю со студенческими работами здесь

Разграничение прав доступа
Здравствуйте. Занялся в своей организацией разграничением правд доступа. В ДИ написано, что должен предоставлять права доступа. ...

Разграничение прав доступа к БД
Имеется простенький веб сайт, у которого 3 страницы(homepage, page1, page2), в двух последних располагается по табличке(table1, table2) из...

Разграничение прав доступа.
есть БД в SQL Server 2000 и приложение в Delphi. при запуске приложения появляется форма где запрашивается логин и пароль. Покажите,...

Разграничение прав доступа Windows 7,8
Здравствуйте скажите пожалуйста как правильно сделать разграничение прав доступа для Админа и Юзера. Чтобы нельзя было юзеру в его...

Разграничение прав доступа БД предприятия
Уважаемые Товарищи ! Первый раз открыл Access 2003. Прошу объясните или помогите кто чем может. Суть задания : Создать БД...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
Звёздная пыль
kumehtar 20.06.2025
Я просто это себе представляю: как создавался этот мир. Как энергия слипалась в маленькие частички. Как они собирались в первые звёзды, как во вселенной впервые появился Свет. Как эти звёзды. . .
Создание нейросети с PyTorch
AI_Generated 19.06.2025
Ключевое преимущество PyTorch — его питоновская натура. В отличие от TensorFlow, который изначально был построен как статический вычислительный граф, PyTorch предлагает динамический подход. Это. . .
JWT аутентификация в ASP.NET Core
UnmanagedCoder 18.06.2025
Разрабатывая веб-приложения, я постоянно сталкиваюсь с дилеммой: как обеспечить надежную аутентификацию пользователей без ущерба для производительности и масштабируемости? Классические подходы на. . .
Краткий курс по С#
aaLeXAA 18.06.2025
Здесь вы найдете все необходимые функции чтоб написать програму на C# Задание 1: КЛАСС FORM 1 public partial class Form1 : Form { Spisok listin = new Spisok(); . . .
50 самых полезных примеров кода Python для частых задач
py-thonny 17.06.2025
Эффективность работы разработчика часто измеряется не количеством написаных строк, а скоростью решения задач. Готовые сниппеты значительно ускоряют разработку, помогают избежать типичных ошибок и. . .
C# и продвинутые приемы работы с БД
stackOverflow 17.06.2025
Каждый . NET разработчик рано или поздно сталкивается с ситуацией, когда привычные методы работы с базами данных превращаются в источник бессонных ночей. Я сам неоднократно попадал в такие ситуации,. . .
Angular: Вопросы и ответы на собеседовании
Reangularity 15.06.2025
Готовишься к техническому интервью по Angular? Я собрал самые распространенные вопросы, с которыми сталкиваются разработчики на собеседованиях в этом году. От базовых концепций до продвинутых. . .
Архитектура Onion в ASP.NET Core MVC
stackOverflow 15.06.2025
Что такое эта "луковая" архитектура? Термин предложил Джеффри Палермо (Jeffrey Palermo) в 2008 году, и с тех пор подход только набирал обороты. Суть проста - представьте себе лук с его. . .
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru